Expand description
The relevant main crate is optionable. The docs can be found there.
§Purpose
This code generation proc_macro2 library serves two purposes:
- Used by optionable_derive to implement the
#[derive(Optionable)]-macro re-exported by optionable. - Used by the bin/codegen.rs crate to support generating
Optionable-implementations for external packages. Due to the orphan rule the generated code has to be added to theOptionable-package (PRs welcome).
It has to be a separate crate from optionable_derive as the proc-macro crates
can’t export its non-macro functions (even the proc_macro2 ones) for the usage by the codegen part.
Structs§
- Codegen
Settings - Settings that are only available to be set via the rust function signature of
derive_optionablebut not via the derive macro (as they are not useful in that context and would lead to an increased but not useful API surface of the derive macro helpers). - Field
Attribute ToCopy - Forwards the specified
attrto the definition of the optioned type. Ifsub_namesis set it filters the configuration of the forwarded attribure for the specified configuration names. E.g.attr=serde,sub_names=renamewill only forward therenamesub-attribute of serde.
Functions§
- attribute_
derives - Returns the attribute for setting that the given identifiers should be added as derive macro to the optioned struct/enum.
- attribute_
no_ convert - Returns the attribute for opting-out of
OptionableConvert-impl generation. - attribute_
suffix - Returns the attribute for setting a custom struct/enum name suffix instead of
Opt. - derive_
optionable - Derives the
Optionable-trait from the mainoptionable-library.