aranya_policy_module/instructions/
meta.rs1use core::fmt;
2
3use aranya_policy_ast::Identifier;
4use serde::{Deserialize, Serialize};
5
6#[derive(
8 Debug,
9 Clone,
10 PartialEq,
11 Eq,
12 Serialize,
13 Deserialize,
14 rkyv::Archive,
15 rkyv::Deserialize,
16 rkyv::Serialize,
17)]
18pub enum Meta {
19 Let(Identifier),
21 Get(Identifier),
23 Finish(bool),
25 FFI(Identifier, Identifier),
27}
28
29impl fmt::Display for Meta {
30 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
31 match self {
32 Self::Let(n) => write!(f, "Set `{n}`"),
33 Self::Get(n) => write!(f, "Get `{n}`"),
34 Self::Finish(b) => {
35 if *b {
36 write!(f, "finish enabled")
37 } else {
38 write!(f, "finish disabled")
39 }
40 }
41 Self::FFI(module, procedure) => write!(f, "FFI call `{module}.{procedure}"),
42 }
43 }
44}