main
 1use serde::{Deserialize, Serialize};
 2
 3#[derive(Debug, Deserialize)]
 4#[serde(tag = "type")]
 5pub enum Event {
 6    #[serde(rename = "say")]
 7    Say {
 8        text: String,
 9        #[serde(rename = "as")]
10        _as: Option<String>,
11    },
12    #[serde(rename = "print")]
13    Print { text: String },
14    #[serde(rename = "thinking")]
15    Thinking { text: String },
16    #[serde(rename = "doing")]
17    Doing { header: String },
18    #[serde(rename = "waiting")]
19    Waiting,
20    #[serde(rename = "oops")]
21    Oops { message: String },
22    #[serde(rename = "display_file")]
23    DisplayFile {
24        path: String,
25        fallback: Option<String>,
26    },
27    #[serde(rename = "ask")]
28    Ask { prompt: String },
29}
30
31#[derive(Debug, Serialize)]
32pub struct Line {
33    pub line: Option<String>,
34}