[][src]Enum lincoln_ir::Entry

pub enum Entry {
    Jmp {
        cont: EntryRef,
        per: Permutation,
    },
    Call {
        callee: EntryRef,
        callcnt: u8,
        callcont: EntryRef,
    },
    Ret {
        variant: u8,
    },
    Group {
        elements: Vec<EntryRef>,
    },
    Extern {
        name: String,
    },
}

5 types of entries correspond to 5 different instructions the use type.

Jmp: permutate the context to have specific order, then jump to another entry (not a group!)

Call: keep a specific amount of values from context, then build a closure with the rest, and add the closure into the context. Finally, jump to another entry.

Ret: The first variable must be a closure to extract the context. The specified variant of the closure group entry will be invoked.

Group: Define a group of entries. Being used to create closures.

Extern: Denotes a function that to be executed in the outside world.

Variants

Jmp

Fields of Jmp

cont: EntryRefper: Permutation
Call

Fields of Call

callee: EntryRefcallcnt: u8callcont: EntryRef
Ret

Fields of Ret

variant: u8
Group

Fields of Group

elements: Vec<EntryRef>
Extern

Fields of Extern

name: String

Trait Implementations

impl Display for Entry[src]

impl Debug for Entry[src]

impl Serialize for Entry[src]

impl<'de> Deserialize<'de> for Entry[src]

Auto Trait Implementations

impl Send for Entry

impl Sync for Entry

Blanket Implementations

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

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?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

The type returned in the event of a conversion error.

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

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> AnyDebugDisplay for T where
    T: Any + Debug + Display
[src]