use crate::native_types::{Expression, Witness};
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Hash, Copy, Default)]
pub struct BlockId(pub u32);
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]
pub struct MemOp {
pub operation: Expression,
pub index: Expression,
pub value: Expression,
}
impl MemOp {
pub fn read_at_mem_index(index: Expression, witness: Witness) -> Self {
MemOp { operation: Expression::zero(), index, value: witness.into() }
}
pub fn write_to_mem_index(index: Expression, value: Expression) -> Self {
MemOp { operation: Expression::one(), index, value }
}
}