use deepsize2::DeepSizeOf;
use serde::{Deserialize, Serialize};
use crate::events::{
memory::{MemoryReadRecord, MemoryWriteRecord},
MemoryLocalEvent, PageProtLocalEvent, PageProtRecord,
};
#[derive(Default, Debug, Clone, Serialize, Deserialize, DeepSizeOf)]
pub struct Uint256MulPageProtRecords {
pub write_x_page_prot_records: Vec<PageProtRecord>,
pub read_y_modulus_page_prot_records: Vec<PageProtRecord>,
}
#[derive(Default, Debug, Clone, Serialize, Deserialize, DeepSizeOf)]
pub struct Uint256MulEvent {
pub clk: u64,
pub x_ptr: u64,
pub x: Vec<u64>,
pub y_ptr: u64,
pub y: Vec<u64>,
pub modulus: Vec<u64>,
pub x_memory_records: Vec<MemoryWriteRecord>,
pub y_memory_records: Vec<MemoryReadRecord>,
pub modulus_memory_records: Vec<MemoryReadRecord>,
pub local_mem_access: Vec<MemoryLocalEvent>,
pub page_prot_records: Uint256MulPageProtRecords,
pub local_page_prot_access: Vec<PageProtLocalEvent>,
}