ragrig_gpui/model/
session.rs1#[derive(Clone, Debug, PartialEq, Eq)]
8pub struct SessionEntry {
9 pub id: String,
11 pub label: String,
13 pub detail: Option<String>,
15}
16
17impl SessionEntry {
18 pub fn new(id: impl Into<String>, label: impl Into<String>) -> Self {
20 Self {
21 id: id.into(),
22 label: label.into(),
23 detail: None,
24 }
25 }
26
27 pub fn detail(mut self, detail: impl Into<String>) -> Self {
29 self.detail = Some(detail.into());
30 self
31 }
32}
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[test]
39 fn a_session_carries_an_id_and_preformatted_text() {
40 let session = SessionEntry::new("s1", "3 turns").detail("yesterday");
41 assert_eq!(session.id, "s1");
42 assert_eq!(session.label, "3 turns");
43 assert_eq!(session.detail.as_deref(), Some("yesterday"));
44 }
45}