tape_api/
event.rs

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);