Struct LocalInit

pub struct LocalInit { pub eq_token: Eq, pub expr: Box<Expr>, pub diverge: Option<(Else, Box<Expr>)> }

The expression assigned in a local let binding, including optional diverging else block.

LocalInit represents = s.parse()? in let x: u64 = s.parse()? and = r else { return } in let Ok(x) = r else { return }.

Fields

eq_token: Eq
expr: Box<Expr>
diverge: Option<(Else, Box<Expr>)>

Trait Implementations

impl Clone for LocalInit

fn clone(&self) -> Self

Auto Trait Implementations

impl !Send for LocalInit

impl !Sync for LocalInit

impl Freeze for LocalInit

impl RefUnwindSafe for LocalInit

impl Unpin for LocalInit

impl UnsafeUnpin for LocalInit

impl UnwindSafe for LocalInit

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

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

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

impl<T> From<T> for LocalInit

fn from(t: T) -> T

Returns the argument unchanged.

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

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

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

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

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

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