Struct darling_core::util::SpannedValue
source · pub struct SpannedValue<T> { /* private fields */ }
Expand description
A value and an associated position in source code. The main use case for this is
to preserve position information to emit warnings from proc macros. You can use
a SpannedValue<T>
as a field in any struct that implements or derives any of
darling
’s core traits.
To access the underlying value, use the struct’s Deref
implementation.
§Defaulting
This type is meant to be used in conjunction with attribute-extracted options,
but the user may not always explicitly set those options in their source code.
In this case, using Default::default()
will create an instance which points
to Span::call_site()
.
Implementations§
source§impl<T> SpannedValue<T>
impl<T> SpannedValue<T>
Trait Implementations§
source§impl<T> AsRef<T> for SpannedValue<T>
impl<T> AsRef<T> for SpannedValue<T>
source§impl<T: Clone> Clone for SpannedValue<T>
impl<T: Clone> Clone for SpannedValue<T>
source§fn clone(&self) -> SpannedValue<T>
fn clone(&self) -> SpannedValue<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<T: Debug> Debug for SpannedValue<T>
impl<T: Debug> Debug for SpannedValue<T>
source§impl<T: Default> Default for SpannedValue<T>
impl<T: Default> Default for SpannedValue<T>
source§impl<T> Deref for SpannedValue<T>
impl<T> Deref for SpannedValue<T>
source§impl<T> DerefMut for SpannedValue<T>
impl<T> DerefMut for SpannedValue<T>
source§impl<T: Spanned> From<T> for SpannedValue<T>
impl<T: Spanned> From<T> for SpannedValue<T>
source§impl<T: FromDeriveInput> FromDeriveInput for SpannedValue<T>
impl<T: FromDeriveInput> FromDeriveInput for SpannedValue<T>
source§fn from_derive_input(value: &DeriveInput) -> Result<Self>
fn from_derive_input(value: &DeriveInput) -> Result<Self>
Create an instance from
syn::DeriveInput
, or return an error.source§impl<T: FromField> FromField for SpannedValue<T>
impl<T: FromField> FromField for SpannedValue<T>
fn from_field(value: &Field) -> Result<Self>
source§impl<T: FromGenericParam> FromGenericParam for SpannedValue<T>
impl<T: FromGenericParam> FromGenericParam for SpannedValue<T>
fn from_generic_param(value: &GenericParam) -> Result<Self>
source§impl<T: FromGenerics> FromGenerics for SpannedValue<T>
impl<T: FromGenerics> FromGenerics for SpannedValue<T>
fn from_generics(value: &Generics) -> Result<Self>
source§impl<T: FromMeta> FromMeta for SpannedValue<T>
impl<T: FromMeta> FromMeta for SpannedValue<T>
source§fn from_meta(item: &Meta) -> Result<Self>
fn from_meta(item: &Meta) -> Result<Self>
Create an instance from a
syn::Meta
by dispatching to the format-appropriate
trait function. This generally should not be overridden by implementers. Read morefn from_nested_meta(item: &NestedMeta) -> Result<Self>
source§fn from_none() -> Option<Self>
fn from_none() -> Option<Self>
When a field is omitted from a parent meta-item,
from_none
is used to attempt
recovery before a missing field error is generated. Read moresource§fn from_word() -> Result<Self>
fn from_word() -> Result<Self>
Create an instance from the presence of the word in the attribute with no
additional options specified.
source§fn from_list(items: &[NestedMeta]) -> Result<Self>
fn from_list(items: &[NestedMeta]) -> Result<Self>
Create an instance from a list of nested meta items.
source§fn from_value(value: &Lit) -> Result<Self>
fn from_value(value: &Lit) -> Result<Self>
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. Read morefn from_expr(expr: &Expr) -> Result<Self>
source§fn from_char(value: char) -> Result<Self>
fn from_char(value: char) -> Result<Self>
Create an instance from a char literal in a value position.
source§fn from_string(value: &str) -> Result<Self>
fn from_string(value: &str) -> Result<Self>
Create an instance from a string literal in a value position.
source§impl<T: FromTypeParam> FromTypeParam for SpannedValue<T>
impl<T: FromTypeParam> FromTypeParam for SpannedValue<T>
fn from_type_param(value: &TypeParam) -> Result<Self>
source§impl<T: FromVariant> FromVariant for SpannedValue<T>
impl<T: FromVariant> FromVariant for SpannedValue<T>
source§fn from_variant(value: &Variant) -> Result<Self>
fn from_variant(value: &Variant) -> Result<Self>
Create an instance from
syn::Variant
, or return an error.impl<T: Copy> Copy for SpannedValue<T>
Auto Trait Implementations§
impl<T> Freeze for SpannedValue<T>where
T: Freeze,
impl<T> RefUnwindSafe for SpannedValue<T>where
T: RefUnwindSafe,
impl<T> !Send for SpannedValue<T>
impl<T> !Sync for SpannedValue<T>
impl<T> Unpin for SpannedValue<T>where
T: Unpin,
impl<T> UnwindSafe for SpannedValue<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)