[][src]Struct passerine::compiler::gen::Chunk

pub struct Chunk {
    pub code: Vec<u8>,
    pub offsets: Vec<usize>,
    pub constants: Vec<Data>,
    pub locals: Vec<Local>,
}

Represents a single interpretable chunk of bytecode, Think a function.

Fields

code: Vec<u8>offsets: Vec<usize>constants: Vec<Data>locals: Vec<Local>

Implementations

impl Chunk[src]

pub fn empty() -> Chunk[src]

Creates a new empty chunk to be filled.

pub fn index_data(&mut self, data: Data) -> usize[src]

Given some data, this function adds it to the constants table, and returns the data's index. The constants table is push only, so constants are identified by their index. The resulting usize can be split up into a number byte stream, and be inserted into the bytecode.

Trait Implementations

impl Clone for Chunk[src]

impl Debug for Chunk[src]

impl Eq for Chunk[src]

impl PartialEq<Chunk> for Chunk[src]

impl StructuralEq for Chunk[src]

impl StructuralPartialEq for Chunk[src]

Auto Trait Implementations

impl !RefUnwindSafe for Chunk

impl !Send for Chunk

impl !Sync for Chunk

impl Unpin for Chunk

impl !UnwindSafe for Chunk

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.