Trait darling::FromMetaItem
[−]
pub trait FromMetaItem { fn from_nested_meta_item(item: &NestedMetaItem) -> Result<Self, Error> { ... } fn from_meta_item(item: &MetaItem) -> Result<Self, Error> { ... } fn from_word() -> Result<Self, Error> { ... } fn from_list(items: &[NestedMetaItem]) -> Result<Self, Error> { ... } fn from_value(value: &Lit) -> Result<Self, Error> { ... } fn from_char(value: char) -> Result<Self, Error> { ... } fn from_string(value: &str) -> Result<Self, Error> { ... } fn from_bool(value: bool) -> Result<Self, Error> { ... } }
Create an instance from an item in an attribute declaration.
Implementing FromMetaItem
- Do not take a dependency on the
ident
of the passed-in meta item. The ident will be set by the field name of the containing struct. - Implement only the
from_*
methods that you intend to support. The default implementations will return useful errors.
Provided Implementations
bool
- Word with no value specified - becomes
true
. - As a boolean literal, e.g.
foo = true
. - As a string literal, e.g.
foo = "true"
.
String
- As a string literal, e.g.
foo = "hello"
. - As a raw string literal, e.g.
foo = r#"hello "world""#
.
()
- Word with no value specified, e.g.
foo
. This is best used withOption
.
Option
- Any format produces
Some
.
Result<T, darling::Error>
- Allows for fallible parsing; will populate the target field with the result of the parse attempt.
Provided Methods
fn from_nested_meta_item(item: &NestedMetaItem) -> Result<Self, Error>
fn from_meta_item(item: &MetaItem) -> Result<Self, Error>
Create an instance from a syn::MetaItem
by dispatching to the format-appropriate
trait function. This generally should not be overridden by implementers.
fn from_word() -> Result<Self, Error>
Create an instance from the presence of the word in the attribute with no additional options specified.
fn from_list(items: &[NestedMetaItem]) -> Result<Self, Error>
Create an instance from a list of nested meta items.
fn from_value(value: &Lit) -> Result<Self, Error>
Create an instance from a literal value of either foo = "bar"
or foo("bar")
.
This dispatches to the appropriate method based on the type of literal encountered,
and generally should not be overridden by implementers.
fn from_char(value: char) -> Result<Self, Error>
Create an instance from a char literal in a value position.
fn from_string(value: &str) -> Result<Self, Error>
Create an instance from a string literal in a value position.
fn from_bool(value: bool) -> Result<Self, Error>
Create an instance from a bool literal in a value position.
Implementors
impl FromMetaItem for ()
impl FromMetaItem for bool
impl FromMetaItem for AtomicBool
impl FromMetaItem for String
impl FromMetaItem for Ident
impl FromMetaItem for Path
impl FromMetaItem for TyParamBound
impl FromMetaItem for MetaItem
impl FromMetaItem for WhereClause
impl FromMetaItem for Vec<WherePredicate>
impl FromMetaItem for RenameRule
impl<T> FromMetaItem for Option<T> where
T: FromMetaItem,impl<T> FromMetaItem for Box<T> where
T: FromMetaItem,impl<T> FromMetaItem for Result<T, Error> where
T: FromMetaItem,impl<T> FromMetaItem for Rc<T> where
T: FromMetaItem,impl<T> FromMetaItem for Arc<T> where
T: FromMetaItem,impl<T> FromMetaItem for RefCell<T> where
T: FromMetaItem,impl<V> FromMetaItem for HashMap<String, V, RandomState> where
V: FromMetaItem,impl FromMetaItem for ForwardAttrs
impl FromMetaItem for Shape
impl FromMetaItem for DataShape
impl FromMetaItem for IdentList
impl FromMetaItem for Ignored
impl<T> FromMetaItem for Override<T> where
T: FromMetaItem,impl FromMetaItem for Flag