-
Notifications
You must be signed in to change notification settings - Fork 39
Future of the library #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks for bringing this topic up for discussion. I agree that In That being said, I don't think points 1. and 2. are necessarily mutually exclusive. As you said 2. could easily be an addon, if, say, it was procedural macro based. As for point 3., it may be worthwhile getting in contact with the authors of My suggestion would be as follows:
|
I have updated numbers now that include (unit is bytes) With default settings: When optimizing for size (opt-level = "z", lto = true, codegen-units = 1, incremental = false): We can see that while |
It's still not clear how much argparse adds. In my expericence, it's ~100Kb, which isn't too small either :( Other than that, I haven't had time to investigate it myself, yet... |
Yeah, I first wanted to address the argparse: 301280 (d-e-s-o/dictcc-cli@e64a968) So that's a bit more than |
I read through the two articles that the author of |
I like this crate more than |
I am using this library primarily because I would love to have something more declarative, structopt-style. I don't care about the code size very much :-). To go back to this library, my view is:
Some of these changes would be API breaks. |
@ijackson I agree with most of what you have said. I think this was my first project in Rust and dates back to Rust ~0.7, so certainly needs updating. And I'm also not happy with some of the clap's limitations. However, I do not have enough time to work on this now. |
Well I think you have done well for your first project then! Thank you :-).
I may find time to do so. If I do, should I submit MRs, or pick a new name and fork it, or what? I guess the first step would be an MR with a branch containing proposed changes. |
BTW this can be done with overrides_with in clap. |
I was used to thinking that this library is not needed anymore because clap and structopt do the job just well. But there are valid points by @d-e-s-o, the most important of it is that clap is very large in size.
On the other hand, I very much like the model structopt provides (i.e. parse in the structure instead of complex borrows). The actual semantics of structopt annotations are sometimes ugly though because it is a thin wrapper around clap (with different actual syntax).
So we have a few options:
The text was updated successfully, but these errors were encountered: