Skip to main content

kotonoha_core/
session.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(tag = "role", content = "text", rename_all = "lowercase")]
5pub enum Turn {
6    Student(String),
7    Teacher(String),
8}
9
10#[derive(Debug, Clone, Default)]
11pub struct Session {
12    pub turns: Vec<Turn>,
13}
14
15impl Session {
16    pub fn push_student(&mut self, text: impl Into<String>) {
17        self.turns.push(Turn::Student(text.into()));
18    }
19
20    pub fn push_teacher(&mut self, text: impl Into<String>) {
21        self.turns.push(Turn::Teacher(text.into()));
22    }
23
24    pub fn reset(&mut self) {
25        self.turns.clear();
26    }
27}