Comments (4)
Similar to @faern's comment here on #67, having to write the struct definition manually (and keep all fields and docs in sync) would lose a lot of the value of having the builder. That sort of setter generation could be done without proc macros.
To me, the benefit of proc macros is not just LOC saved, it's time saved keeping names in sync, and time saved reading code because boilerplate isn't presented.
from rust-derive-builder.
Maybe this should be a separate derive(...)
trait that goes on the handcrafted Builder
struct? Something like #[derive(Setter)]
? The downside then is that it's weird to have the #[builder(...)]
attributes take effect on something that isn't a builder.
from rust-derive-builder.
Hm, if we put the derive on the builder struct, I'd expect that most, if not all, attributes would require a different interpretation (e.g. skip,
name`). This could nearly double our amount of testcases. That would be the main problem with that IMO.
from rust-derive-builder.
I don't see this happening; closing the issue to maintain repo hygiene.
from rust-derive-builder.
Related Issues (20)
- initialize builder from existing struct instance HOT 1
- Option for generating both `strip_option` + non-`strip_option` versions of a setter? HOT 2
- Update syn dependency? HOT 9
- Feature request: infallible build() HOT 3
- Provides builder functions that consume ownership HOT 5
- Owned pattern does not compile with custom default function. HOT 5
- Question: shorthand fields HOT 3
- Potential to allow for arguments in custom validator function HOT 4
- Allow way to prevent dependency on crate `alloc`. HOT 4
- Document `custom_constructor` and `create_empty` flags
- Non-chaining `&mut` pattern HOT 3
- This library is brilliant!
- Please advise: toBuilder functionality HOT 4
- Builder + Figment HOT 5
- Feature request: `impl fn builder() -> Builder` for the struct that is derived from HOT 1
- Consuming build but by mut setters? HOT 4
- Add conditional setters for options HOT 1
- Allow builder_struct_attr to set attributes before #[derive(...)]
- enh: support infallible builders HOT 1
- support suppressing default `Clone` derivation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust-derive-builder.