[][src]Struct contrail::mem::MemoryBuilder

pub struct MemoryBuilder { /* fields omitted */ }

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]

impl PartialEq<MemoryBuilder> for MemoryBuilder[src]

impl Debug for MemoryBuilder[src]

Auto Trait Implementations

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.