Struct litrs::IntegerLit [−][src]
#[non_exhaustive]pub struct IntegerLit<B: Buffer> { /* fields omitted */ }
Expand description
An integer literal, e.g. 27, 0x7F, 0b101010u8 or 5_000_000i64.
An integer literal consists of an optional base prefix (0b, 0o, 0x),
the main part (digits and underscores), and an optional type suffix
(e.g. u64 or i8). See the reference for more information.
Note that integer literals are always positive: the grammar does not contain
the minus sign at all. The minus sign is just the unary negate operator,
not part of the literal. Which is interesting for cases like - 128i8:
here, the literal itself would overflow the specified type (i8 cannot
represent 128). That’s why in rustc, the literal overflow check is
performed as a lint after parsing, not during the lexing stage. Similarly,
IntegerLit::parse does not perform an overflow check.
Implementations
Parses the input as an integer literal. Returns an error if the input is invalid or represents a different kind of literal.
Performs the actual string to int conversion to obtain the integer
value. The optional type suffix of the literal is ignored by this
method. This means N does not need to match the type suffix!
Returns None if the literal overflows N.
The base of this integer literal.
The main part containing the digits and potentially _. Do not try to
parse this directly as that would ignore the base!
The type suffix, if specified.
Makes a copy of the underlying buffer and returns the owned version of
Self.
Trait Implementations
Performs the conversion.
This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
Auto Trait Implementations
impl<B> RefUnwindSafe for IntegerLit<B> where
B: RefUnwindSafe, impl<B> Send for IntegerLit<B> where
B: Send, impl<B> Sync for IntegerLit<B> where
B: Sync, impl<B> Unpin for IntegerLit<B> where
B: Unpin, impl<B> UnwindSafe for IntegerLit<B> where
B: UnwindSafe, Blanket Implementations
Mutably borrows from an owned value. Read more