mur_common/companion/
mod.rs1pub mod content_seed;
4pub mod voice_template;
5
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
9#[serde(rename_all = "snake_case")]
10pub enum Relationship {
11 #[default]
12 Friend,
13 Coach,
14 AccountabilityBuddy,
15 Mentor,
16}
17
18#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
19#[serde(rename_all = "snake_case")]
20pub enum Formality {
21 Casual,
22 #[default]
23 Neutral,
24 Formal,
25}
26
27#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
28#[serde(rename_all = "snake_case")]
29pub enum Situation {
30 MorningGreeting,
31 GentleCheckIn,
32 ShareQuote,
33 ShareLink,
34 WorkflowNudge,
35}
36
37#[cfg(test)]
38mod tests {
39 use super::*;
40
41 #[test]
42 fn workflow_nudge_situation_serializes_snake_case() {
43 assert_eq!(
44 serde_json::to_string(&Situation::WorkflowNudge).unwrap(),
45 "\"workflow_nudge\""
46 );
47 let back: Situation = serde_json::from_str("\"workflow_nudge\"").unwrap();
48 assert_eq!(back, Situation::WorkflowNudge);
49 }
50}
51
52#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
53#[serde(rename_all = "snake_case")]
54pub enum Signal {
55 Positive,
56 Negative,
57 Dismiss,
58 Sent,
59}