1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: net.mmatt.vitals.car
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[jacquard_derive::lexicon]
9#[derive(
10 serde::Serialize,
11 serde::Deserialize,
12 Debug,
13 Clone,
14 PartialEq,
15 Eq,
16 jacquard_derive::IntoStatic,
17 bon::Builder
18)]
19#[serde(rename_all = "camelCase")]
20pub struct Car<'a> {
21 /// The car fuel amount remaining value (floating point string)
22 #[serde(borrow)]
23 #[builder(into)]
24 pub amount_remaining: jacquard_common::CowStr<'a>,
25 /// The car fuel range value in miles
26 pub car_fuel_range: i64,
27 /// The car make value
28 #[serde(skip_serializing_if = "std::option::Option::is_none")]
29 #[builder(into)]
30 #[serde(borrow)]
31 pub car_make: Option<jacquard_common::CowStr<'a>>,
32 /// The car model value
33 #[serde(skip_serializing_if = "std::option::Option::is_none")]
34 #[builder(into)]
35 #[serde(borrow)]
36 pub car_model: Option<jacquard_common::CowStr<'a>>,
37 /// The car fuel level value in percentage (floating point string)
38 #[serde(borrow)]
39 #[builder(into)]
40 pub car_percent_fuel_remaining: jacquard_common::CowStr<'a>,
41 /// The car traveled distance value
42 pub car_traveled_distance: i64,
43 /// The car year value
44 #[serde(skip_serializing_if = "std::option::Option::is_none")]
45 #[builder(into)]
46 pub car_year: Option<i64>,
47 /// The unix timestamp of when the vital was recorded
48 pub created_at: jacquard_common::types::string::Datetime,
49}
50
51/// Typed wrapper for GetRecord response with this collection's record type.
52#[derive(
53 serde::Serialize,
54 serde::Deserialize,
55 Debug,
56 Clone,
57 PartialEq,
58 Eq,
59 jacquard_derive::IntoStatic
60)]
61#[serde(rename_all = "camelCase")]
62pub struct CarGetRecordOutput<'a> {
63 #[serde(skip_serializing_if = "std::option::Option::is_none")]
64 #[serde(borrow)]
65 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
66 #[serde(borrow)]
67 pub uri: jacquard_common::types::string::AtUri<'a>,
68 #[serde(borrow)]
69 pub value: Car<'a>,
70}
71
72/// Marker type for deserializing records from this collection.
73pub struct CarRecord;
74impl jacquard_common::xrpc::XrpcResp for CarRecord {
75 const NSID: &'static str = "net.mmatt.vitals.car";
76 const ENCODING: &'static str = "application/json";
77 type Output<'de> = CarGetRecordOutput<'de>;
78 type Err<'de> = jacquard_common::types::collection::RecordError<'de>;
79}
80
81impl jacquard_common::types::collection::Collection for Car<'_> {
82 const NSID: &'static str = "net.mmatt.vitals.car";
83 type Record = CarRecord;
84}
85
86impl From<CarGetRecordOutput<'_>> for Car<'_> {
87 fn from(output: CarGetRecordOutput<'_>) -> Self {
88 use jacquard_common::IntoStatic;
89 output.value.into_static()
90 }
91}