Skip to main content

cairo_lang_sierra/simulation/
value.rs

1#![expect(clippy::disallowed_types)]
2
3use std::collections::HashMap;
4
5use starknet_types_core::felt::Felt as Felt252;
6
7/// The logical value of a variable for Sierra simulation.
8#[derive(Clone, Debug, Eq, PartialEq)]
9pub enum CoreValue {
10    EcPoint(Felt252, Felt252),
11    Felt252(Felt252),
12    GasBuiltin(i64),
13    Uint8(u8),
14    Uint16(u16),
15    Uint32(u32),
16    Uint64(u64),
17    Uint128(u128),
18    Array(Vec<CoreValue>),
19    Dict(HashMap<Felt252, CoreValue>),
20    Enum {
21        value: Box<CoreValue>,
22        /// The index of the relevant variant.
23        index: usize,
24    },
25    Struct(Vec<CoreValue>),
26    // The untracked types - do not carry any value.
27    Uninitialized,
28    RangeCheck,
29    Bitwise,
30    U128MulGuarantee,
31}