pub struct Callable { /* private fields */ }Expand description
Either a path or a closure.
This type is useful for options that historically took a path,
e.g. #[darling(with = ...)] or #[serde(skip_serializing_if = ...)]
and now want to also allow using a closure to avoid needing a separate
function declaration.
In darling, this value is wrapped in core::convert::identity before usage;
this allows treatment of the closure and path cases as equivalent, and prevents
a closure from accessing locals in the generated code.
Trait Implementations§
Source§impl From<ExprClosure> for Callable
impl From<ExprClosure> for Callable
Source§fn from(value: ExprClosure) -> Self
fn from(value: ExprClosure) -> Self
Converts to this type from the input type.
Source§impl FromMeta for Callable
impl FromMeta for Callable
fn from_expr(expr: &Expr) -> Result<Self>
fn from_nested_meta(item: &NestedMeta) -> Result<Self>
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 moreSource§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 moreSource§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 ToTokens for Callable
impl ToTokens for Callable
Source§fn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
Source§fn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
Source§fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
Auto Trait Implementations§
impl Freeze for Callable
impl RefUnwindSafe for Callable
impl !Send for Callable
impl !Sync for Callable
impl Unpin for Callable
impl UnsafeUnpin for Callable
impl UnwindSafe for Callable
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§impl<T> Spanned for Twhere
T: Spanned + ?Sized,
impl<T> Spanned for Twhere
T: Spanned + ?Sized,
Source§fn span(&self) -> Span
fn span(&self) -> Span
Returns a
Span covering the complete contents of this syntax tree
node, or Span::call_site() if this node is empty.