Amplifying Rust language capabilities: multiple generic trait
implementations, type wrappers, derive macros.
AsAny | Trait [amplify::AsAny ] allows simple conversion of any type into a generic
"thick" pointer &dyn Any (see ::core::any::Any ), that can be later
converted back to the original type with a graceful failing for all other
conversions. AsAny derive macro allows to implement this trait for
arbitrary time without much hussle:
|
Display | Usage
|
Error | Error derive macro works to the full extend only when other derive macros
are used. With #[derive(Display)] and [display(doc_comments)] it uses
doc comments for generating error descriptions; with #[derive(From)] it
may automatically implement transofrations from other error types.
|
From | Implements From trait for the whole entity and/or its separate fields.
Works well with #[derive(Error)] and, in many cases may require
Default implementation (for details, pls see Examples below)
|
Getters | Creates getter methods matching field names for all fields within a
structure (including public and private fields). Getters return reference
types.
|
Wrapper | Creates rust new type wrapping existing type. Can be used in sturctures
containing multiple named or unnamed fields; in this case the field you'd
like to wrap should be marked with #[wrap] attribute; otherwise the first
field is assumed to be the wrapped one.
|