Crate amplify_derive[][src]

Amplifying Rust language capabilities: multiple generic trait implementations, type wrappers, derive macros.

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

Derives getter methods for structures. The return type and naming of the methods depends on the provided attribute arguments.

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.