1use move_trace_format::{format::TypeTagWithRefs, value::SerializableMoveValue};
5
6use serde::Serialize;
7
8#[derive(Clone, Debug, Serialize)]
11pub enum PTBEvent {
12 Summary(SummaryEvent),
13 ExternalEvent(ExternalEvent),
14 MoveCallStart, MoveCallEnd, }
17
18#[derive(Clone, Debug, Serialize)]
19pub struct SummaryEvent {
20 pub name: String,
21 pub events: Vec<PTBCommandInfo>,
22}
23
24#[derive(Clone, Debug, Serialize)]
26pub struct ExternalEvent {
27 pub description: String,
29 pub name: String,
31 pub values: Vec<ExtMoveValue>,
33}
34
35#[derive(Clone, Debug, Serialize)]
38pub enum PTBCommandInfo {
39 MoveCall {
40 pkg: String,
41 module: String,
42 function: String,
43 },
44 ExternalEvent(String),
45}
46
47#[derive(Clone, Debug, Serialize)]
49pub struct ExtMoveValueInfo {
50 pub type_: TypeTagWithRefs,
51 pub value: SerializableMoveValue,
52}
53
54#[derive(Clone, Debug, Serialize)]
56pub enum ExtMoveValue {
57 Single {
58 name: String,
59 info: ExtMoveValueInfo,
60 },
61 Vector {
62 name: String,
63 type_: TypeTagWithRefs,
64 value: Vec<SerializableMoveValue>,
65 },
66}