pub struct PartialClosure {
pub lifetimes: Option<BoundLifetimes>,
pub constness: Option<Const>,
pub movability: Option<Static>,
pub asyncness: Option<Async>,
pub capture: Option<Move>,
pub or1_token: Or,
pub inputs: Punctuated<Pat, Comma>,
pub or2_token: Or,
pub output: ReturnType,
pub body: PartialExpr,
}
Expand description
A closure whose body might not be valid rust code but we want to interpret it regardless. This lets us provide expansions in way more cases than normal closures at the expense of an increased mainteance burden and complexity.
We do our best to reuse the same logic from partial exprs for the body of the PartialClosure.
The code here is simply stolen from syn::ExprClosure
and lightly modified to work with
PartialExprs. We only removed the attrs field and changed the body to be a PartialExpr.
Otherwise, it’s a direct copy of the original.
Fields§
§lifetimes: Option<BoundLifetimes>
§constness: Option<Const>
§movability: Option<Static>
§asyncness: Option<Async>
§capture: Option<Move>
§or1_token: Or
§inputs: Punctuated<Pat, Comma>
§or2_token: Or
§output: ReturnType
§body: PartialExpr
Implementations§
Trait Implementations§
Source§impl Clone for PartialClosure
impl Clone for PartialClosure
Source§fn clone(&self) -> PartialClosure
fn clone(&self) -> PartialClosure
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 Debug for PartialClosure
impl Debug for PartialClosure
Source§impl Hash for PartialClosure
impl Hash for PartialClosure
Source§impl Parse for PartialClosure
impl Parse for PartialClosure
fn parse(input: ParseStream<'_>) -> Result<Self>
Source§impl PartialEq for PartialClosure
impl PartialEq for PartialClosure
Source§impl ToTokens for PartialClosure
impl ToTokens for PartialClosure
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,
impl Eq for PartialClosure
Auto Trait Implementations§
impl Freeze for PartialClosure
impl RefUnwindSafe for PartialClosure
impl !Send for PartialClosure
impl !Sync for PartialClosure
impl Unpin for PartialClosure
impl UnwindSafe for PartialClosure
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.