langfuse_client_base/models/
trace.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Trace {
16 #[serde(rename = "id")]
18 pub id: String,
19 #[serde(rename = "timestamp")]
21 pub timestamp: String,
22 #[serde(
24 rename = "name",
25 default,
26 with = "::serde_with::rust::double_option",
27 skip_serializing_if = "Option::is_none"
28 )]
29 pub name: Option<Option<String>>,
30 #[serde(
32 rename = "input",
33 default,
34 with = "::serde_with::rust::double_option",
35 skip_serializing_if = "Option::is_none"
36 )]
37 pub input: Option<Option<serde_json::Value>>,
38 #[serde(
40 rename = "output",
41 default,
42 with = "::serde_with::rust::double_option",
43 skip_serializing_if = "Option::is_none"
44 )]
45 pub output: Option<Option<serde_json::Value>>,
46 #[serde(
48 rename = "sessionId",
49 default,
50 with = "::serde_with::rust::double_option",
51 skip_serializing_if = "Option::is_none"
52 )]
53 pub session_id: Option<Option<String>>,
54 #[serde(
56 rename = "release",
57 default,
58 with = "::serde_with::rust::double_option",
59 skip_serializing_if = "Option::is_none"
60 )]
61 pub release: Option<Option<String>>,
62 #[serde(
64 rename = "version",
65 default,
66 with = "::serde_with::rust::double_option",
67 skip_serializing_if = "Option::is_none"
68 )]
69 pub version: Option<Option<String>>,
70 #[serde(
72 rename = "userId",
73 default,
74 with = "::serde_with::rust::double_option",
75 skip_serializing_if = "Option::is_none"
76 )]
77 pub user_id: Option<Option<String>>,
78 #[serde(
80 rename = "metadata",
81 default,
82 with = "::serde_with::rust::double_option",
83 skip_serializing_if = "Option::is_none"
84 )]
85 pub metadata: Option<Option<serde_json::Value>>,
86 #[serde(
88 rename = "tags",
89 default,
90 with = "::serde_with::rust::double_option",
91 skip_serializing_if = "Option::is_none"
92 )]
93 pub tags: Option<Option<Vec<String>>>,
94 #[serde(
96 rename = "public",
97 default,
98 with = "::serde_with::rust::double_option",
99 skip_serializing_if = "Option::is_none"
100 )]
101 pub public: Option<Option<bool>>,
102 #[serde(
104 rename = "environment",
105 default,
106 with = "::serde_with::rust::double_option",
107 skip_serializing_if = "Option::is_none"
108 )]
109 pub environment: Option<Option<String>>,
110}
111
112impl Trace {
113 pub fn new(id: String, timestamp: String) -> Trace {
114 Trace {
115 id,
116 timestamp,
117 name: None,
118 input: None,
119 output: None,
120 session_id: None,
121 release: None,
122 version: None,
123 user_id: None,
124 metadata: None,
125 tags: None,
126 public: None,
127 environment: None,
128 }
129 }
130}