langfuse_client_base/models/
usage.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Usage {
17 #[serde(
19 rename = "input",
20 default,
21 with = "::serde_with::rust::double_option",
22 skip_serializing_if = "Option::is_none"
23 )]
24 pub input: Option<Option<i32>>,
25 #[serde(
27 rename = "output",
28 default,
29 with = "::serde_with::rust::double_option",
30 skip_serializing_if = "Option::is_none"
31 )]
32 pub output: Option<Option<i32>>,
33 #[serde(
35 rename = "total",
36 default,
37 with = "::serde_with::rust::double_option",
38 skip_serializing_if = "Option::is_none"
39 )]
40 pub total: Option<Option<i32>>,
41 #[serde(rename = "unit", skip_serializing_if = "Option::is_none")]
42 pub unit: Option<models::ModelUsageUnit>,
43 #[serde(
45 rename = "inputCost",
46 default,
47 with = "::serde_with::rust::double_option",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub input_cost: Option<Option<f64>>,
51 #[serde(
53 rename = "outputCost",
54 default,
55 with = "::serde_with::rust::double_option",
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub output_cost: Option<Option<f64>>,
59 #[serde(
61 rename = "totalCost",
62 default,
63 with = "::serde_with::rust::double_option",
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub total_cost: Option<Option<f64>>,
67}
68
69impl Usage {
70 pub fn new() -> Usage {
72 Usage {
73 input: None,
74 output: None,
75 total: None,
76 unit: None,
77 input_cost: None,
78 output_cost: None,
79 total_cost: None,
80 }
81 }
82}