tape-api 0.1.9

Your data, permanently recorded — uncensorable, uneditable, and here for good.
Documentation
use bytemuck::{Pod, Zeroable};
use num_enum::TryFromPrimitive;
use crate::event;

#[repr(u8)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive)]
pub enum EventType {
    Unknown = 0,

    WriteEvent,
    FinalizeEvent,
}


#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
pub struct WriteEvent {
    pub segment: u64,
    pub address: [u8; 32],
}

#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
pub struct FinalizeEvent {
    pub tape: u64,
    pub address: [u8; 32],
}

event!(EventType, WriteEvent);
event!(EventType, FinalizeEvent);