Comments (4)
By the way, I checked with profiling and in my case the clone calls for those Vecs do not get optimised away unfortunately.
from rust-derive-builder.
This should be straightforward to implement.
API
We'd allow setting the pattern
in #[builder(build_fn(pattern = "..."))]
. if present, this would override the one set at the #[builder(pattern = "...")]
level; if absent, the builder-level pattern will be used.
Implementation
Options::as_build_method
would be updated to use the new build_fn
override when initializing BuildMethod
's pattern
field.
from rust-derive-builder.
Looking at this again, I'm now second-guessing my original thought on the API. It feels like it might be better for the top-level pattern
field to be the one that controls the signature of the build function, while allowing the override of the setters in the #[builder(setter(pattern = "..."))]
meta item at the struct level.
from rust-derive-builder.
Okay, so I think the reason this is proving more challenging than expected is that the current behavior of the pattern
field is weird.
Currently, that field can be set on the struct or on a field. The strange part is how setting it on a field interacts with the build
method. I don't understand the rationale behind the current design, so I'm hesitant to change it too much.
from rust-derive-builder.
Related Issues (20)
- 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
- 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
- Feature request: infallible `build` HOT 1
- public builder private struct 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.