Struct ExprRange

pub struct ExprRange { pub attrs: Vec<Attribute>, pub start: Option<Box<Expr>>, pub limits: RangeLimits, pub end: Option<Box<Expr>> }

A range expression: 1..2, 1.., ..2, 1..=2, ..=2.

Fields

attrs: Vec<Attribute>
start: Option<Box<Expr>>
limits: RangeLimits
end: Option<Box<Expr>>

Trait Implementations

impl Clone for ExprRange

fn clone(&self) -> Self

impl Parse for ExprRange

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

impl ToTokens for ExprRange

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

Auto Trait Implementations

impl !Send for ExprRange

impl !Sync for ExprRange

impl Freeze for ExprRange

impl RefUnwindSafe for ExprRange

impl Unpin for ExprRange

impl UnsafeUnpin for ExprRange

impl UnwindSafe for ExprRange

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

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

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

impl<T> From<T> for ExprRange

fn from(t: T) -> T

Returns the argument unchanged.

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

fn span(&self) -> Span

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

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

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

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

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

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