This issue is based on prior thoughts in the alternatives section of the docs.
Design
I don't have a good design for the attribute yet. There are many unresolved questions.
- What should be the name of the attribute? The name should make it clear that it generates setter(s?) that extend a collection (
push (front or back? for VecDeque), insert).
- Where should the attribute reside? Should it be at the level of
#[builder(attr_name)] or #[builder(setters(attr_name))]?
- Should the setter accept
Self by &mut or by value? The typestate won't change after a value is pushed into a colleciton, so &mut self is possible. However by value seems like a more natural fit to the current design where the setters always require self by value.
- Maybe we should generate a couple of setters for
&mut and by-value self?
- What name pattern would this couple of setters use?
- How much configrability should we provide for this?
Do We Need This At All?
How often would people want such setters? If that would be needed at a rare occasion, then people could use custom fields (#189) with custom methods to implement this.
I'll keep this issue on hold
Prior Art
A note for the community from the maintainers
Please vote on this issue by adding a 👍 reaction to help the maintainers with prioritizing it. You may add a comment describing your real use case related to this issue for us to better understand the problem domain.
This issue is based on prior thoughts in the alternatives section of the docs.
Design
I don't have a good design for the attribute yet. There are many unresolved questions.
push(front or back? forVecDeque),insert).#[builder(attr_name)]or#[builder(setters(attr_name))]?Selfby&mutor by value? The typestate won't change after a value is pushed into a colleciton, so&mut selfis possible. However by value seems like a more natural fit to the current design where the setters always requireselfby value.&mutand by-valueself?Do We Need This At All?
How often would people want such setters? If that would be needed at a rare occasion, then people could use custom fields (#189) with custom methods to implement this.
I'll keep this issue on hold
Prior Art
#[builder(setter(each))]inderive_builderbuildstructorA note for the community from the maintainers
Please vote on this issue by adding a 👍 reaction to help the maintainers with prioritizing it. You may add a comment describing your real use case related to this issue for us to better understand the problem domain.