lift-core 0.4.2

LIFT-CORE: SSA IR foundation — types, values, operations, blocks, regions, verifier
Documentation
use crate::interning::StringId;
use crate::types::TypeId;
use serde::{Deserialize, Serialize};
use slotmap::new_key_type;

new_key_type! {
    pub struct ValueKey;
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ValueData {
    pub ty: TypeId,
    pub name: Option<StringId>,
    pub def: DefSite,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum DefSite {
    OpResult {
        op: crate::operations::OpKey,
        result_index: u32,
    },
    BlockArg {
        block: crate::blocks::BlockKey,
        arg_index: u32,
    },
}