7 stable releases
Uses old Rust 2015
1.0.6 | Apr 27, 2018 |
---|---|
1.0.5 | Apr 4, 2018 |
1.0.3 | Apr 3, 2018 |
1.0.2 | Feb 4, 2018 |
1.0.1 | Jan 26, 2018 |
#242 in #identifier
16KB
270 lines
Value from Type -Macros
Procedural macro attribute to match structure types with an enum variant.
This macro can be applied on a module to make a connection between each defined struct and a newly created enum type. This enum is built into the same module as the macro is invocated upon. The macro will also implement value_from_type_traits::FromType on the enum for each struct (within the module) as generic argument.
Examples
See the documentation or value_from_type_macros/src/lib.rs for usage example(s).
lib.rs
:
Procedural macro attribute to match structure types with an enum variant.
This macro can be applied on a module to make a connection between each defined struct
and a newly created enum type. This enum is built into the same module as
the macro is invocated upon.
The macro will also implement value_from_type_traits::FromType
on the enum
for each struct (within the module) as generic argument.
Examples
// Attribute macro must be imported through a use statement.
use value_from_type_macros::value_from_type;
// Implemented trait on `EnumName`
use value_from_type_traits::IntoEnum;
mod temp {
// The parameter indicates the enum identifier.
#![value_from_type(EnumName)]
#[derive(Debug)]
pub struct X();
}
// Explicit import for sake of example.
use self::temp::{EnumName, X};
// use self::temp::*;
assert_eq!(EnumName::X, X::into_enum());
Dependencies
~2.5MB
~53K SLoC