JelteF / derive_more

Some more derive(Trait) options
MIT License
1.68k stars 117 forks source link

Exposing macros for reuse #407

Open Porges opened 2 weeks ago

Porges commented 2 weeks ago

It'd be really handy to be able to reuse some of the derive_more macros, for example I'd like to be able to reuse the display-like formatting in my own macros so I can utilize them in something like this without reimplementing it from scratch (and also for consistency with e.g. #[derive(derive_more::Display)]):

#[derive(Error)]
struct SomeErr {
    #[error(label = "this should be greater than {target}")]
    span: Span,

    target: usize,
}

Is this something that's been considered?

JelteF commented 2 weeks ago

What would you need to be exported that isn't exported now?

Porges commented 2 days ago

@JelteF not sure exactly, but I was wondering if you were open to the idea before I investigated more. I had a quick look and I think some (minor) refactoring would be required to export the string-formatting macros in a reusable fashion since at the moment they're essentially embedded with the actual trait generation, but it shouldn't be too hard to expose the reusable bits.

JelteF commented 1 day ago

This is vague enough that it's hard to answer. Feel free to create a PR though with what you need, if it's a small change I'm definitely open to it.