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: Ifcond: Box<Expr>then_branch: Blockelse_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) -> TReturns 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) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for ExprIf
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses 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>