Trait darling::FromMetaItem
[−]
[src]
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
. Seedarling::util::Flag
for a more strongly-typed alternative.
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<T> FromMetaItem for Override<T> where
T: FromMetaItem,impl FromMetaItem for ForwardAttrs
impl<T> FromMetaItem for Result<T, MetaItem> where
T: FromMetaItem,impl FromMetaItem for Ignored
impl FromMetaItem for Shape
impl FromMetaItem for TyParamBound
impl<T> FromMetaItem for Result<T, Error> where
T: FromMetaItem,impl FromMetaItem for Flag
impl FromMetaItem for IdentList
impl<T> FromMetaItem for Box<T> where
T: FromMetaItem,impl FromMetaItem for WhereClause
impl<T> FromMetaItem for RefCell<T> where
T: FromMetaItem,impl FromMetaItem for Vec<WherePredicate>
impl<T> FromMetaItem for Option<T> where
T: FromMetaItem,impl FromMetaItem for DataShape
impl FromMetaItem for AtomicBool
impl<T> FromMetaItem for Rc<T> where
T: FromMetaItem,impl FromMetaItem for RenameRule
impl FromMetaItem for ()
impl FromMetaItem for String
impl FromMetaItem for MetaItem
impl FromMetaItem for Ident
impl FromMetaItem for bool
impl FromMetaItem for Path
impl<T> FromMetaItem for Arc<T> where
T: FromMetaItem,impl<V> FromMetaItem for HashMap<String, V, RandomState> where
V: FromMetaItem,