Struct PatGuard

pub struct PatGuard { pub attrs: Vec<Attribute>, pub pat: Box<Pat>, pub if_token: If, pub guard: Box<Expr> }

A pattern with guard predicate: Some(x) if x > 0.

Fields

attrs: Vec<Attribute>
pat: Box<Pat>
if_token: If
guard: Box<Expr>

Trait Implementations

impl Clone for PatGuard

fn clone(&self) -> Self

impl ToTokens for PatGuard

fn to_tokens(&self, tokens: &mut TokenStream)

Auto Trait Implementations

impl !Send for PatGuard

impl !Sync for PatGuard

impl Freeze for PatGuard

impl RefUnwindSafe for PatGuard

impl Unpin for PatGuard

impl UnsafeUnpin for PatGuard

impl UnwindSafe for PatGuard

Blanket Implementations

impl<T> Any for PatGuard where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for PatGuard where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for PatGuard where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> CloneToUninit for PatGuard where T: Clone,

unsafe fn clone_to_uninit(&self, dest: *mut u8)

impl<T> From<T> for PatGuard

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Spanned for PatGuard where T: Spanned + ?Sized,

fn span(&self) -> Span

impl<T> ToOwned for PatGuard where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T, U> Into<U> for PatGuard where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for PatGuard where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for PatGuard where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>