pub enum Memory {
Alloc,
Free,
Load,
Store,
LoadRange,
StoreRange,
}
Expand description
Operations for memory.
Variants§
Alloc
0x70
: ALOC
Allocate a new block of memory to the end.
Sets new memory to 0.
Returns the index to the start of the new block of memory.
Allocate 0 to get the current length of the memory.
§Stack Input
[size]
§Stack Output
[index]
§Panics
- Max memory size reached.
Free
0x71
Truncate memory to the specified new length, freeing all that follows.
§Stack Input
[new_length]
§Panics
- The new length is negative.
- The new length is greater than the existing length.
Load
0x72
: LOD
Load the value at the given index from memory onto the stack.
§Stack Input
[index]
§Stack Output
[value]
§Panics
- Index is out of bounds.
Store
0x73
: STO
Store the value at the given index within memory.
§Stack Input
[value, index]
§Panics
- Index is out of bounds.
LoadRange
0x74
: LODR
Load a range of words starting at the index within memory.
§Stack Input
[index, len]
§Stack Output
[values]
§Panics
- Index is out of bounds.
- Index + len is out of bounds.
StoreRange
Trait Implementations§
Source§impl Ord for Memory
impl Ord for Memory
Source§impl PartialOrd for Memory
impl PartialOrd for Memory
Source§impl TryFromBytes for Memory
impl TryFromBytes for Memory
Source§type Error = FromBytesError
type Error = FromBytesError
Represents any error that might occur while parsing an op from bytes.
impl Copy for Memory
impl Eq for Memory
impl StructuralPartialEq for Memory
Auto Trait Implementations§
impl Freeze for Memory
impl RefUnwindSafe for Memory
impl Send for Memory
impl Sync for Memory
impl Unpin for Memory
impl UnwindSafe for Memory
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> 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