[−][src]Struct contrail::mem::MemoryBuilder
A growable chunk of bytes that can be built into Memory
.
Values and arrays are not added to the MemoryBuilder
directly; rather, the new
methods for
Pointer
and ArrayPointer
take &mut MemoryBuilder
as
the first parameter. After everything is added to the MemoryBuilder
, the
finish
method consumes the MemoryBuilder
and creates a Memory
,
which is usable with the pointers created with the original MemoryBuilder
.
Warning
It is unsafe behavior to use pointers with Memory
other than the Memory
from the
MemoryBuilder
used to initialize the pointer.
Examples
use contrail::mem::{MemoryBuilder, Pointer}; let mut builder = MemoryBuilder::new(); let pointer = Pointer::new(&mut builder, 'R'); let mut memory = builder.finish(); // the pointer is usable with the memory after the builder finishes assert_eq!(pointer.get(&memory), 'R');
Methods
impl MemoryBuilder
[src]
pub fn new() -> Self
[src]
Creates a new empty MemoryBuilder
.
Examples
use contrail::mem::MemoryBuilder; let mut builder = MemoryBuilder::new();
pub fn finish(self) -> Memory
[src]
Consumes the MemoryBuilder
to create a Memory
.
After calling finish
, all pointers created using the MemoryBuilder
can safely read to
and write from the returned Memory
.
Examples
use contrail::mem::{ArrayPointer, MemoryBuilder, Pointer}; let mut builder = MemoryBuilder::new(); let pointer = Pointer::new(&mut builder, 42); let array = ArrayPointer::new(&mut builder, &[0, 1, 1, 2, 3, 5, 8]); let memory = builder.finish(); // `pointer` and `array` are usable now assert_eq!(pointer.get(&memory), 42); assert_eq!(array.get(&memory, 5), 5);
Trait Implementations
impl Eq for MemoryBuilder
[src]
impl Default for MemoryBuilder
[src]
fn default() -> MemoryBuilder
[src]
impl PartialEq<MemoryBuilder> for MemoryBuilder
[src]
fn eq(&self, other: &MemoryBuilder) -> bool
[src]
fn ne(&self, other: &MemoryBuilder) -> bool
[src]
impl Debug for MemoryBuilder
[src]
Auto Trait Implementations
impl Send for MemoryBuilder
impl Sync for MemoryBuilder
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,