1use bytemuck::{Pod, Zeroable};
2use num_enum::TryFromPrimitive;
3use crate::event;
4
5#[repr(u8)]
6#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)]
7pub enum EventType {
8 Unknown = 0,
9
10 WriteEvent,
11 FinalizeEvent,
12}
13
14
15#[repr(C)]
16#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
17pub struct WriteEvent {
18 pub segment: u64,
19 pub address: [u8; 32],
20}
21
22#[repr(C)]
23#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
24pub struct FinalizeEvent {
25 pub tape: u64,
26 pub address: [u8; 32],
27}
28
29event!(EventType, WriteEvent);
30event!(EventType, FinalizeEvent);