wasefire_protocol/
applet.rs1use core::fmt::Display;
16
17use wasefire_wire::Wire;
18
19#[derive(Debug, Wire)]
20pub struct Request<'a> {
21 pub applet_id: AppletId,
22 pub request: &'a [u8],
23}
24
25#[derive(Debug, Copy, Clone, Wire)]
26pub struct AppletId;
27
28#[derive(Debug, Wire)]
29pub struct Tunnel<'a> {
30 pub applet_id: AppletId,
31 pub delimiter: &'a [u8],
32}
33
34#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Wire)]
35#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
36pub enum ExitStatus {
37 Exit,
39
40 Abort,
42
43 Trap,
45
46 Kill,
48}
49
50impl Display for ExitStatus {
51 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
52 match self {
53 ExitStatus::Exit => write!(f, "The applet exited"),
54 ExitStatus::Abort => write!(f, "The applet aborted"),
55 ExitStatus::Trap => write!(f, "The applet trapped"),
56 ExitStatus::Kill => write!(f, "The applet was killed"),
57 }
58 }
59}