1use rkyv::{Archive, Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Archive, Serialize, Deserialize)]
5#[rkyv(bytecheck())]
6#[repr(u8)]
7pub enum ChannelBackpressure {
8 Park = 0,
10 Drop = 1,
12}
13
14#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
16#[rkyv(bytecheck())]
17pub struct ChannelCreate {
18 pub capacity: crate::GuestUint,
20 pub backpressure: ChannelBackpressure,
22}
23
24#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
26#[rkyv(bytecheck())]
27pub struct IoRead {
28 pub handle: crate::GuestUint,
30 pub len: crate::GuestUint,
32}
33
34#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
36#[rkyv(bytecheck())]
37pub struct IoWrite {
38 pub handle: crate::GuestUint,
40 pub payload: Vec<u8>,
42}
43
44#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
46#[rkyv(bytecheck())]
47pub struct IoFrame {
48 pub writer_id: u16,
50 pub payload: Vec<u8>,
52}