Comments (3)
The project became something I didn't feel ownership of, had several features I never wanted to merge to begin with, and I hadn't used it since one around 2018, so I wasn't the right person to maintain it. I am incredibly glad to have a friend in @jbaublitz who was willing to take this over.
from getset.
Hi @pnevyk! I'm so sorry for the delay. I'm the new maintainer of this crate, and there are certain features I would be willing to discuss, but my personal feelings about builder patterns in this library is that there are already a number of crates that do this quite well. I'm actually using this crate in another library I maintain, and I've found great success of using this library with a combination of a builder pattern library. I still need to go through the backlog of issues which I intend to do soon and close the ones that I likely won't implement. Other features like Option
fields, etc. sound like features I'd be more willing to implement if there's a way to do it. Thanks for reaching out, and I'd be happy to discuss whatever features you're interested in in a separate issue!
from getset.
Hi @jbaublitz, no worries about the delay! I can see how fluent setters feature would overlap with builder pattern libraries, it did not occur to me before, thanks. The difference between hypothetical getset
fluent setters and builder pattern libraries (at least those that I saw) would be this:
// getset
let options = MyOptions::default().option_x(value);
// builder pattern
let options = MyOptions::builder().option_x(value).build();
The getset approach feels a bit more lightweight and would be useful in cases where the default
value of a struct satisfies most of the situations and only sometimes changing a few options out of many is needed, whereas builder pattern is imho better for situations where one wants to construct a complicated struct where none or only a few fields are optional. But this subtle difference is probably not worth the complexity added to this crate. I am fine with that.
I actually don't have any feature requests, I am a happy user that reaches for this crate whenever I have big structs for which I want to have getters. Thanks for undertaking the maintenance of this crate 👍
from getset.
Related Issues (20)
- with_prefix does not work on struct HOT 2
- Raw identifiers are not supported
- Please do a release with the updated dependency for proc-macro-error HOT 3
- Placing generated getters/setters into impl block? HOT 1
- Documentation HOT 1
- Confusing error when `#[getset(get_copy = "pub")]` is specified but not `derive(CopyGetters)` HOT 3
- Allowing override when using struct-level annotation HOT 1
- Getter (and Setter?) not compatible with serde(flatten)
- document how to ignore/skip field from getting getter
- oto parameters have milliseconds as unit but not seconds HOT 1
- Duplicate definitions when overwriting `get` with `get_copy` HOT 2
- Fluent Setters HOT 2
- Provide ability to create getters that return `A<&T>` instead of `&A<T>` HOT 1
- Raw identifiers identifiers don't work properly HOT 3
- 2 getter impl's for same field HOT 1
- Getters/setters for specific traits HOT 1
- Unary tuple struct getter/setter
- Feature request: Getters and Setters that implement a Trait HOT 1
- syn v2
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 getset.