Proposed simplified syntax for invoking macros and metas
Please just close this issue if these proposals are unreasonable or unfeasible.
Simplifying macro invocation
Would it be possible and/or reasonable to replace this
#[derive(Deftly)]
#[derive_deftly(Widget)]
with this
#[derive(Deftly(Widget))]
?
Simplifying metavar collection
As I worked on build-deftly
, I found myself saying fmeta(builder(X))
and deftly(builder(X))
a lot, to the point of exhaustion.
Would it be possible to say, when defining the macro, something like:
define_derive_deftly! {
Builder for struct, with meta_root: builder =
...
}
And then use tmeta(X)
and fmeta(X)
to refer to #[deftly(builder(X))]
? Or even to refer to #[builder(X)]
?
This change would:
- Make the macros terser and less error-prone to write, since we could just say
fmeta(X)
, and not have to worry about forgetting to saybuilder
. - Encourage attribute namespacing.
- Possibly, make macros easier to invoke, by letting the caller say
#[builder(X)]
.