pub enum MirType {
UInt(u16),
Int(u16),
Bool,
Address,
FixedBytes(u8),
MemPtr,
StoragePtr,
CalldataPtr,
Function,
Void,
}Expand description
Types used in MIR.
Variants§
UInt(u16)
Unsigned integer with a given bit width (8, 16, 32, …, 256).
Int(u16)
Signed integer with a given bit width.
Bool
Boolean type.
Address
Address type (20 bytes).
FixedBytes(u8)
Fixed-size byte array.
MemPtr
Memory pointer.
StoragePtr
Storage pointer.
CalldataPtr
Calldata pointer.
Function
Function type.
Void
Void/unit type (for functions that don’t return).
Implementations§
Source§impl MirType
impl MirType
Sourcepub const fn stack_size(&self) -> usize
pub const fn stack_size(&self) -> usize
Returns the size in bytes for this type on the stack.
Sourcepub const fn fits_in_word(&self) -> bool
pub const fn fits_in_word(&self) -> bool
Returns true if this type fits in a single EVM word (32 bytes).
Trait Implementations§
impl Copy for MirType
impl Eq for MirType
impl StructuralPartialEq for MirType
Auto Trait Implementations§
impl Freeze for MirType
impl RefUnwindSafe for MirType
impl Send for MirType
impl Sync for MirType
impl Unpin for MirType
impl UnsafeUnpin for MirType
impl UnwindSafe for MirType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
fn equivalent(&self, key: &K) -> bool
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more