[][src]Enum peepmatic_runtime::linear::Action

pub enum Action {
    GetLhs {
        path: PathId,
    },
    UnaryUnquote {
        operator: UnquoteOperator,
        operand: RhsId,
    },
    BinaryUnquote {
        operator: UnquoteOperator,
        operands: [RhsId; 2],
    },
    MakeIntegerConst {
        value: IntegerId,
        bit_width: BitWidth,
    },
    MakeBooleanConst {
        value: bool,
        bit_width: BitWidth,
    },
    MakeConditionCode {
        cc: ConditionCode,
    },
    MakeUnaryInst {
        operand: RhsId,
        type: Type,
        operator: Operator,
    },
    MakeBinaryInst {
        operator: Operator,
        type: Type,
        operands: [RhsId; 2],
    },
    MakeTernaryInst {
        operator: Operator,
        type: Type,
        operands: [RhsId; 3],
    },
}

An action to perform when transitioning between states in the automata.

When evaluating actions, the i^th action implicitly defines the RhsId(i).

Variants

GetLhs

Reuse something from the left-hand side.

Fields of GetLhs

path: PathId

The path to the instruction or value.

UnaryUnquote

Perform compile-time evaluation.

Fields of UnaryUnquote

operator: UnquoteOperator

The unquote operator.

operand: RhsId

The constant operand to this unquote.

BinaryUnquote

Perform compile-time evaluation.

Fields of BinaryUnquote

operator: UnquoteOperator

The unquote operator.

operands: [RhsId; 2]

The constant operands to this unquote.

MakeIntegerConst

Create an integer constant.

Fields of MakeIntegerConst

value: IntegerId

The constant integer value.

bit_width: BitWidth

The bit width of this constant.

MakeBooleanConst

Create a boolean constant.

Fields of MakeBooleanConst

value: bool

The constant boolean value.

bit_width: BitWidth

The bit width of this constant.

MakeConditionCode

Create a condition code.

Fields of MakeConditionCode

cc: ConditionCode

The condition code.

MakeUnaryInst

Make a unary instruction.

Fields of MakeUnaryInst

operand: RhsId

The operand for this instruction.

type: Type

The type of this instruction's result.

operator: Operator

The operator for this instruction.

MakeBinaryInst

Make a binary instruction.

Fields of MakeBinaryInst

operator: Operator

The opcode for this instruction.

type: Type

The type of this instruction's result.

operands: [RhsId; 2]

The operands for this instruction.

MakeTernaryInst

Make a ternary instruction.

Fields of MakeTernaryInst

operator: Operator

The opcode for this instruction.

type: Type

The type of this instruction's result.

operands: [RhsId; 3]

The operands for this instruction.

Trait Implementations

impl Clone for Action[src]

impl Copy for Action[src]

impl Debug for Action[src]

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

impl Eq for Action[src]

impl Hash for Action[src]

impl PartialEq<Action> for Action[src]

impl Serialize for Action[src]

impl StructuralEq for Action[src]

impl StructuralPartialEq for Action[src]

Auto Trait Implementations

impl RefUnwindSafe for Action

impl Send for Action

impl Sync for Action

impl Unpin for Action

impl UnwindSafe for Action

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> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[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.