openvm_circuit/system/memory/merkle/
columns.rs
1use openvm_circuit_primitives_derive::AlignedBorrow;
2
3#[derive(Debug, AlignedBorrow)]
4#[repr(C)]
5pub struct MemoryMerkleCols<T, const CHUNK: usize> {
6 pub expand_direction: T,
10
11 pub height_section: T,
14 pub parent_height: T,
15 pub is_root: T,
16
17 pub parent_as_label: T,
18 pub parent_address_label: T,
19
20 pub parent_hash: [T; CHUNK],
21 pub left_child_hash: [T; CHUNK],
22 pub right_child_hash: [T; CHUNK],
23
24 pub left_direction_different: T,
27 pub right_direction_different: T,
28}
29
30#[derive(Debug, Clone, Copy, AlignedBorrow)]
31#[repr(C)]
32pub struct MemoryMerklePvs<T, const CHUNK: usize> {
33 pub initial_root: [T; CHUNK],
35 pub final_root: [T; CHUNK],
37}