use rkyv::{Archive, Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
#[repr(u8)]
pub enum ChannelBackpressure {
Park = 0,
Drop = 1,
}
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct ChannelCreate {
pub capacity: crate::GuestUint,
pub backpressure: ChannelBackpressure,
}
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct IoRead {
pub handle: crate::GuestUint,
pub len: crate::GuestUint,
}
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct IoWrite {
pub handle: crate::GuestUint,
pub payload: Vec<u8>,
}
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct IoFrame {
pub writer_id: u16,
pub payload: Vec<u8>,
}