Trait darling_core::FromMeta [−][src]
pub trait FromMeta: Sized { fn from_nested_meta(item: &NestedMeta) -> Result<Self> { ... } fn from_meta(item: &Meta) -> Result<Self> { ... } fn from_word() -> Result<Self> { ... } fn from_list(items: &[NestedMeta]) -> Result<Self> { ... } fn from_value(value: &Lit) -> Result<Self> { ... } fn from_char(value: char) -> Result<Self> { ... } fn from_string(value: &str) -> Result<Self> { ... } fn from_bool(value: bool) -> Result<Self> { ... } }
Create an instance from an item in an attribute declaration.
Implementing FromMeta
- 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""#
.
Number
- As a string literal, e.g.
foo = "-25"
. - As an unquoted positive value, e.g.
foo = 404
. Negative numbers must be in quotation marks.
()
- 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: &NestedMeta) -> Result<Self>
[src]
fn from_meta(item: &Meta) -> Result<Self>
[src]
Create an instance from a syn::Meta
by dispatching to the format-appropriate
trait function. This generally should not be overridden by implementers.
Error Spans
If this method is overridden and can introduce errors that weren’t passed up from
other from_meta
calls, the override must call with_span
on the error using the
item
to make sure that the emitted diagnostic points to the correct location in
source code.
fn from_word() -> Result<Self>
[src]
Create an instance from the presence of the word in the attribute with no additional options specified.
fn from_list(items: &[NestedMeta]) -> Result<Self>
[src]
Create an instance from a list of nested meta items.
fn from_value(value: &Lit) -> Result<Self>
[src]
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.
Error Spans
If this method is overridden, the override must make sure to add value
’s span
information to the returned error by calling with_span(value)
on the Error
instance.
fn from_char(value: char) -> Result<Self>
[src]
Create an instance from a char literal in a value position.
fn from_string(value: &str) -> Result<Self>
[src]
Create an instance from a string literal in a value position.
fn from_bool(value: bool) -> Result<Self>
[src]
Create an instance from a bool literal in a value position.
Implementations on Foreign Types
impl FromMeta for bool
[src]
impl FromMeta for bool
[src]impl FromMeta for String
[src]
impl FromMeta for String
[src]fn from_string(s: &str) -> Result<Self>
[src]
impl FromMeta for u8
[src]
impl FromMeta for u8
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for u16
[src]
impl FromMeta for u16
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for u32
[src]
impl FromMeta for u32
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for u64
[src]
impl FromMeta for u64
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for usize
[src]
impl FromMeta for usize
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for i8
[src]
impl FromMeta for i8
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for i16
[src]
impl FromMeta for i16
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for i32
[src]
impl FromMeta for i32
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for i64
[src]
impl FromMeta for i64
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for isize
[src]
impl FromMeta for isize
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for f32
[src]
impl FromMeta for f32
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for f64
[src]
impl FromMeta for f64
[src]fn from_string(s: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for Ident
[src]
impl FromMeta for Ident
[src]Parsing support for identifiers. This attempts to preserve span information when available, but also supports parsing strings with the call site as the emitted span.
fn from_string(value: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for Path
[src]
impl FromMeta for Path
[src]Parsing support for paths. This attempts to preserve span information when available, but also supports parsing strings with the call site as the emitted span.
fn from_string(value: &str) -> Result<Self>
[src]
fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for Lit
[src]
impl FromMeta for Lit
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for LitInt
[src]
impl FromMeta for LitInt
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for LitFloat
[src]
impl FromMeta for LitFloat
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for LitStr
[src]
impl FromMeta for LitStr
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for LitByte
[src]
impl FromMeta for LitByte
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for LitByteStr
[src]
impl FromMeta for LitByteStr
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for LitChar
[src]
impl FromMeta for LitChar
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for LitBool
[src]
impl FromMeta for LitBool
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for Literal
[src]
impl FromMeta for Literal
[src]fn from_value(value: &Lit) -> Result<Self>
[src]
impl FromMeta for WhereClause
[src]
impl FromMeta for WhereClause
[src]fn from_string(value: &str) -> Result<Self>
[src]
impl FromMeta for Vec<WherePredicate>
[src]
impl FromMeta for Vec<WherePredicate>
[src]fn from_string(value: &str) -> Result<Self>
[src]
impl FromMeta for RenameRule
[src]
impl FromMeta for RenameRule
[src]fn from_string(value: &str) -> Result<Self>
[src]
impl<T: FromMeta> FromMeta for Result<T, Meta>
[src]
impl<T: FromMeta> FromMeta for Result<T, Meta>
[src]Parses the meta-item, and in case of error preserves a copy of the input for later analysis.
impl<V: FromMeta, S: BuildHasher + Default> FromMeta for HashMap<String, V, S>
[src]
impl<V: FromMeta, S: BuildHasher + Default> FromMeta for HashMap<String, V, S>
[src]Implementors
impl<T: FromMeta> FromMeta for Override<T>
[src]
impl<T: FromMeta> FromMeta for Override<T>
[src]Parses a Meta
. A bare word will produce Override::Inherit
, while
any value will be forwarded to T::from_meta
.
impl<T: FromMeta> FromMeta for WithOriginal<T, Meta>
[src]
impl<T: FromMeta> FromMeta for WithOriginal<T, Meta>
[src]