Trait attribute_derive::ConvertParsed
source · pub trait ConvertParsedwhere
Self: Sized,
Self::Type: Error,{
type Type;
// Required method
fn convert(value: Self::Type) -> Result<Self>;
// Provided methods
fn default_by_default() -> bool { ... }
fn default() -> Self { ... }
fn as_flag() -> Option<Self::Type> { ... }
fn aggregate(
this: Option<IdentValue<Self::Type>>,
other: Option<IdentValue<Self::Type>>,
error_msg: &str
) -> Result<Option<IdentValue<Self::Type>>> { ... }
}
Expand description
Helper trait to convert syn types implementing Parse
like
LitStr
to rust types like String
You probably don’t need to implement this trait, as most syn types like
LitStr
and Type
or that have a direct equivalent in
those like String
, char
or f32
are already implemented. A
special treatment have Vecs
which are parsed using the helper
Array
with the syntax [a, b, c]
and Options
that will be
None
if not specified and Some
when the value is specified via the
attribute. It is not specified via Some(value)
but as just value
.
Required Associated Types§
Required Methods§
Provided Methods§
sourcefn default_by_default() -> bool
fn default_by_default() -> bool
sourcefn as_flag() -> Option<Self::Type>
fn as_flag() -> Option<Self::Type>
Returns the value when this type is specified as flag i.e. just
#[attr(default)]
instead of #[attr(default=true)]
. This relies
on Self::default
.
sourcefn aggregate(
this: Option<IdentValue<Self::Type>>,
other: Option<IdentValue<Self::Type>>,
error_msg: &str
) -> Result<Option<IdentValue<Self::Type>>>
fn aggregate( this: Option<IdentValue<Self::Type>>, other: Option<IdentValue<Self::Type>>, error_msg: &str ) -> Result<Option<IdentValue<Self::Type>>>
Should values of this type be aggregated instead of conflict if specified multiple times
Currently this is only implemented for Arrays
Implementations on Foreign Types§
source§impl ConvertParsed for ExprContinue
impl ConvertParsed for ExprContinue
source§impl ConvertParsed for ExprBlock
impl ConvertParsed for ExprBlock
source§impl ConvertParsed for f32
impl ConvertParsed for f32
source§impl ConvertParsed for GenericParam
impl ConvertParsed for GenericParam
source§impl ConvertParsed for ExprPath
impl ConvertParsed for ExprPath
source§impl ConvertParsed for LitFloat
impl ConvertParsed for LitFloat
source§impl ConvertParsed for ImplItemMethod
impl ConvertParsed for ImplItemMethod
source§impl ConvertParsed for ExprBinary
impl ConvertParsed for ExprBinary
source§impl ConvertParsed for Receiver
impl ConvertParsed for Receiver
source§impl ConvertParsed for usize
impl ConvertParsed for usize
source§impl ConvertParsed for TypeReference
impl ConvertParsed for TypeReference
source§impl ConvertParsed for ItemMacro2
impl ConvertParsed for ItemMacro2
source§impl ConvertParsed for BareFnArg
impl ConvertParsed for BareFnArg
source§impl ConvertParsed for TraitItem
impl ConvertParsed for TraitItem
source§impl ConvertParsed for ForeignItemStatic
impl ConvertParsed for ForeignItemStatic
source§impl ConvertParsed for ImplItem
impl ConvertParsed for ImplItem
source§impl ConvertParsed for PathSegment
impl ConvertParsed for PathSegment
source§impl ConvertParsed for TypeBareFn
impl ConvertParsed for TypeBareFn
source§impl ConvertParsed for FieldsUnnamed
impl ConvertParsed for FieldsUnnamed
source§impl ConvertParsed for ExprRange
impl ConvertParsed for ExprRange
source§impl ConvertParsed for ItemTrait
impl ConvertParsed for ItemTrait
source§impl ConvertParsed for ExprMatch
impl ConvertParsed for ExprMatch
source§impl ConvertParsed for Signature
impl ConvertParsed for Signature
source§impl ConvertParsed for ExprCall
impl ConvertParsed for ExprCall
source§impl ConvertParsed for WherePredicate
impl ConvertParsed for WherePredicate
source§impl ConvertParsed for ReturnType
impl ConvertParsed for ReturnType
source§impl ConvertParsed for ExprStruct
impl ConvertParsed for ExprStruct
source§impl ConvertParsed for ExprAsync
impl ConvertParsed for ExprAsync
source§impl ConvertParsed for TypeMacro
impl ConvertParsed for TypeMacro
source§impl ConvertParsed for ExprReturn
impl ConvertParsed for ExprReturn
source§impl ConvertParsed for FatArrow
impl ConvertParsed for FatArrow
source§impl ConvertParsed for ItemTraitAlias
impl ConvertParsed for ItemTraitAlias
source§impl<Output, Parsed> ConvertParsed for Option<Output>where
Output: ConvertParsed<Type = Parsed>,
Parsed: Error + Clone,
impl<Output, Parsed> ConvertParsed for Option<Output>where Output: ConvertParsed<Type = Parsed>, Parsed: Error + Clone,
source§impl ConvertParsed for ImplItemMacro
impl ConvertParsed for ImplItemMacro
source§impl ConvertParsed for ItemUnion
impl ConvertParsed for ItemUnion
source§impl ConvertParsed for ExprClosure
impl ConvertParsed for ExprClosure
source§impl<Output, Parsed> ConvertParsed for Vec<Output>where
Output: ConvertParsed<Type = Parsed>,
Parsed: Clone,
impl<Output, Parsed> ConvertParsed for Vec<Output>where Output: ConvertParsed<Type = Parsed>, Parsed: Clone,
source§impl ConvertParsed for ExprRepeat
impl ConvertParsed for ExprRepeat
source§impl ConvertParsed for LifetimeDef
impl ConvertParsed for LifetimeDef
source§impl ConvertParsed for TypeParamBound
impl ConvertParsed for TypeParamBound
source§impl ConvertParsed for DeriveInput
impl ConvertParsed for DeriveInput
source§impl ConvertParsed for ExprUnsafe
impl ConvertParsed for ExprUnsafe
source§impl ConvertParsed for SelfValue
impl ConvertParsed for SelfValue
source§impl ConvertParsed for MetaList
impl ConvertParsed for MetaList
source§impl ConvertParsed for String
impl ConvertParsed for String
source§impl ConvertParsed for TypeImplTrait
impl ConvertParsed for TypeImplTrait
source§impl ConvertParsed for ItemStruct
impl ConvertParsed for ItemStruct
source§impl ConvertParsed for ItemImpl
impl ConvertParsed for ItemImpl
source§impl ConvertParsed for TraitBoundModifier
impl ConvertParsed for TraitBoundModifier
source§impl ConvertParsed for TraitItemMethod
impl ConvertParsed for TraitItemMethod
source§impl ConvertParsed for ExprTryBlock
impl ConvertParsed for ExprTryBlock
source§impl ConvertParsed for BoundLifetimes
impl ConvertParsed for BoundLifetimes
source§impl ConvertParsed for TraitItemConst
impl ConvertParsed for TraitItemConst
source§impl ConvertParsed for TypeGroup
impl ConvertParsed for TypeGroup
source§impl ConvertParsed for FieldValue
impl ConvertParsed for FieldValue
source§impl ConvertParsed for isize
impl ConvertParsed for isize
source§impl ConvertParsed for bool
impl ConvertParsed for bool
source§impl ConvertParsed for TypeSlice
impl ConvertParsed for TypeSlice
source§impl ConvertParsed for ExprAssignOp
impl ConvertParsed for ExprAssignOp
source§impl ConvertParsed for ItemEnum
impl ConvertParsed for ItemEnum
source§impl ConvertParsed for ForeignItemMacro
impl ConvertParsed for ForeignItemMacro
source§impl ConvertParsed for Override
impl ConvertParsed for Override
source§impl ConvertParsed for TypePath
impl ConvertParsed for TypePath
source§impl ConvertParsed for TypeTraitObject
impl ConvertParsed for TypeTraitObject
source§impl ConvertParsed for Question
impl ConvertParsed for Question
source§impl ConvertParsed for Continue
impl ConvertParsed for Continue
source§impl ConvertParsed for TokenTree
impl ConvertParsed for TokenTree
source§impl ConvertParsed for Abstract
impl ConvertParsed for Abstract
source§impl ConvertParsed for Visibility
impl ConvertParsed for Visibility
source§impl ConvertParsed for ItemExternCrate
impl ConvertParsed for ItemExternCrate
source§impl ConvertParsed for ExprLoop
impl ConvertParsed for ExprLoop
source§impl ConvertParsed for MetaNameValue
impl ConvertParsed for MetaNameValue
source§impl ConvertParsed for FieldsNamed
impl ConvertParsed for FieldsNamed
source§impl ConvertParsed for LitByteStr
impl ConvertParsed for LitByteStr
source§impl ConvertParsed for ForeignItem
impl ConvertParsed for ForeignItem
source§impl ConvertParsed for ExprWhile
impl ConvertParsed for ExprWhile
source§impl ConvertParsed for ExprType
impl ConvertParsed for ExprType
source§impl ConvertParsed for ExprBreak
impl ConvertParsed for ExprBreak
source§impl ConvertParsed for ForeignItemFn
impl ConvertParsed for ForeignItemFn
source§impl ConvertParsed for i128
impl ConvertParsed for i128
source§impl ConvertParsed for ExprForLoop
impl ConvertParsed for ExprForLoop
source§impl ConvertParsed for Constraint
impl ConvertParsed for Constraint
source§impl ConvertParsed for Generics
impl ConvertParsed for Generics
source§impl ConvertParsed for ExprArray
impl ConvertParsed for ExprArray
source§impl ConvertParsed for TypeParam
impl ConvertParsed for TypeParam
source§impl ConvertParsed for Lifetime
impl ConvertParsed for Lifetime
source§impl ConvertParsed for Underscore
impl ConvertParsed for Underscore
source§impl ConvertParsed for TokenStream
impl ConvertParsed for TokenStream
Try to avoid using this, as it will consume everything behind, so it needs to be defined as the last parameter.
In the future there might be something to allow better handling of this (maybe by putting it
into ()
)