Struct ExprIf

pub struct ExprIf { pub attrs: Vec<Attribute>, pub if_token: If, pub cond: Box<Expr>, pub then_branch: Block, pub else_branch: Option<(Else, Box<Expr>)> }

An if expression with an optional else block: if expr { ... } else { ... }.

The else branch expression may only be an If or Block expression, not any of the other types of expression.

Fields

attrs: Vec<Attribute>
if_token: If
cond: Box<Expr>
then_branch: Block
else_branch: Option<(Else, Box<Expr>)>

Trait Implementations

impl Clone for ExprIf

fn clone(&self) -> Self

impl Parse for ExprIf

fn parse(input: ParseStream<'_>) -> Result<Self>

impl ToTokens for ExprIf

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

Auto Trait Implementations

impl !Send for ExprIf

impl !Sync for ExprIf

impl Freeze for ExprIf

impl RefUnwindSafe for ExprIf

impl Unpin for ExprIf

impl UnsafeUnpin for ExprIf

impl UnwindSafe for ExprIf

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

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

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

impl<T> From<T> for ExprIf

fn from(t: T) -> T

Returns the argument unchanged.

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

fn span(&self) -> Span

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

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

impl<T, U> Into<U> for ExprIf 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 ExprIf where U: Into<T>,

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

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

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