jacquard_api/place_stream/
segment.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: place.stream.segment
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)]
18#[serde(rename_all = "camelCase")]
19pub struct Audio<'a> {
20    pub channels: i64,
21    #[serde(borrow)]
22    pub codec: jacquard_common::CowStr<'a>,
23    pub rate: i64,
24}
25
26#[jacquard_derive::lexicon]
27#[derive(
28    serde::Serialize,
29    serde::Deserialize,
30    Debug,
31    Clone,
32    PartialEq,
33    Eq,
34    jacquard_derive::IntoStatic
35)]
36#[serde(rename_all = "camelCase")]
37pub struct Framerate<'a> {
38    pub den: i64,
39    pub num: i64,
40}
41
42///Media file representing a segment of a livestream
43#[jacquard_derive::lexicon]
44#[derive(
45    serde::Serialize,
46    serde::Deserialize,
47    Debug,
48    Clone,
49    PartialEq,
50    Eq,
51    jacquard_derive::IntoStatic
52)]
53#[serde(rename_all = "camelCase")]
54pub struct Segment<'a> {
55    #[serde(skip_serializing_if = "std::option::Option::is_none")]
56    #[serde(borrow)]
57    pub audio: std::option::Option<Vec<crate::place_stream::segment::Audio<'a>>>,
58    #[serde(borrow)]
59    pub creator: jacquard_common::types::string::Did<'a>,
60    ///The duration of the segment in nanoseconds
61    #[serde(skip_serializing_if = "std::option::Option::is_none")]
62    pub duration: std::option::Option<i64>,
63    ///Unique identifier for the segment
64    #[serde(borrow)]
65    pub id: jacquard_common::CowStr<'a>,
66    ///The DID of the signing key used for this segment
67    #[serde(borrow)]
68    pub signing_key: jacquard_common::CowStr<'a>,
69    ///The size of the segment in bytes
70    #[serde(skip_serializing_if = "std::option::Option::is_none")]
71    pub size: std::option::Option<i64>,
72    ///When this segment started
73    pub start_time: jacquard_common::types::string::Datetime,
74    #[serde(skip_serializing_if = "std::option::Option::is_none")]
75    #[serde(borrow)]
76    pub video: std::option::Option<Vec<crate::place_stream::segment::Video<'a>>>,
77}
78
79impl jacquard_common::types::collection::Collection for Segment<'_> {
80    const NSID: &'static str = "place.stream.segment";
81}
82
83#[jacquard_derive::lexicon]
84#[derive(
85    serde::Serialize,
86    serde::Deserialize,
87    Debug,
88    Clone,
89    PartialEq,
90    Eq,
91    jacquard_derive::IntoStatic
92)]
93#[serde(rename_all = "camelCase")]
94pub struct SegmentView<'a> {
95    #[serde(borrow)]
96    pub cid: jacquard_common::types::string::Cid<'a>,
97    #[serde(borrow)]
98    pub record: jacquard_common::types::value::Data<'a>,
99}
100
101#[jacquard_derive::lexicon]
102#[derive(
103    serde::Serialize,
104    serde::Deserialize,
105    Debug,
106    Clone,
107    PartialEq,
108    Eq,
109    jacquard_derive::IntoStatic
110)]
111#[serde(rename_all = "camelCase")]
112pub struct Video<'a> {
113    #[serde(skip_serializing_if = "std::option::Option::is_none")]
114    pub bframes: std::option::Option<bool>,
115    #[serde(borrow)]
116    pub codec: jacquard_common::CowStr<'a>,
117    #[serde(skip_serializing_if = "std::option::Option::is_none")]
118    #[serde(borrow)]
119    pub framerate: std::option::Option<crate::place_stream::segment::Framerate<'a>>,
120    pub height: i64,
121    pub width: i64,
122}