gstreamer_analytics/auto/
enums.rs1use crate::ffi;
7#[cfg(feature = "v1_26")]
8#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
9use glib::translate::*;
10
11#[cfg(feature = "v1_28")]
12#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
13#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
14#[non_exhaustive]
15#[doc(alias = "GstAnalyticsModelInfoTensorDirection")]
16pub enum ModelInfoTensorDirection {
17 #[doc(alias = "MODELINFO_DIRECTION_UNKNOWN")]
18 Unknown,
19 #[doc(alias = "MODELINFO_DIRECTION_INPUT")]
20 Input,
21 #[doc(alias = "MODELINFO_DIRECTION_OUTPUT")]
22 Output,
23 #[doc(hidden)]
24 __Unknown(i32),
25}
26
27#[cfg(feature = "v1_28")]
28#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
29#[doc(hidden)]
30impl IntoGlib for ModelInfoTensorDirection {
31 type GlibType = ffi::GstAnalyticsModelInfoTensorDirection;
32
33 #[inline]
34 fn into_glib(self) -> ffi::GstAnalyticsModelInfoTensorDirection {
35 match self {
36 Self::Unknown => ffi::MODELINFO_DIRECTION_UNKNOWN,
37 Self::Input => ffi::MODELINFO_DIRECTION_INPUT,
38 Self::Output => ffi::MODELINFO_DIRECTION_OUTPUT,
39 Self::__Unknown(value) => value,
40 }
41 }
42}
43
44#[cfg(feature = "v1_28")]
45#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
46#[doc(hidden)]
47impl FromGlib<ffi::GstAnalyticsModelInfoTensorDirection> for ModelInfoTensorDirection {
48 #[inline]
49 unsafe fn from_glib(value: ffi::GstAnalyticsModelInfoTensorDirection) -> Self {
50 skip_assert_initialized!();
51
52 match value {
53 ffi::MODELINFO_DIRECTION_UNKNOWN => Self::Unknown,
54 ffi::MODELINFO_DIRECTION_INPUT => Self::Input,
55 ffi::MODELINFO_DIRECTION_OUTPUT => Self::Output,
56 value => Self::__Unknown(value),
57 }
58 }
59}
60
61#[cfg(feature = "v1_26")]
62#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
63#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
64#[non_exhaustive]
65#[doc(alias = "GstTensorDataType")]
66pub enum TensorDataType {
67 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT4")]
68 Int4,
69 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT8")]
70 Int8,
71 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT16")]
72 Int16,
73 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT32")]
74 Int32,
75 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT64")]
76 Int64,
77 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT4")]
78 Uint4,
79 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT8")]
80 Uint8,
81 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT16")]
82 Uint16,
83 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT32")]
84 Uint32,
85 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT64")]
86 Uint64,
87 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT16")]
88 Float16,
89 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT32")]
90 Float32,
91 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT64")]
92 Float64,
93 #[doc(alias = "GST_TENSOR_DATA_TYPE_BFLOAT16")]
94 Bfloat16,
95 #[cfg(feature = "v1_28")]
96 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
97 #[doc(alias = "GST_TENSOR_DATA_TYPE_STRING")]
98 String,
99 #[cfg(feature = "v1_28")]
100 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
101 #[doc(alias = "GST_TENSOR_DATA_TYPE_BOOL")]
102 Bool,
103 #[cfg(feature = "v1_28")]
104 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
105 #[doc(alias = "GST_TENSOR_DATA_TYPE_COMPLEX64")]
106 Complex64,
107 #[cfg(feature = "v1_28")]
108 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
109 #[doc(alias = "GST_TENSOR_DATA_TYPE_COMPLEX128")]
110 Complex128,
111 #[cfg(feature = "v1_28")]
112 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
113 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN")]
114 Float8e4m3fn,
115 #[cfg(feature = "v1_28")]
116 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
117 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ")]
118 Float8e4m3fnuz,
119 #[cfg(feature = "v1_28")]
120 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
121 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E5M2")]
122 Float8e5m2,
123 #[cfg(feature = "v1_28")]
124 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
125 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ")]
126 Float8e5m2fnuz,
127 #[doc(hidden)]
128 __Unknown(i32),
129}
130
131#[cfg(feature = "v1_26")]
132#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
133#[doc(hidden)]
134impl IntoGlib for TensorDataType {
135 type GlibType = ffi::GstTensorDataType;
136
137 fn into_glib(self) -> ffi::GstTensorDataType {
138 match self {
139 Self::Int4 => ffi::GST_TENSOR_DATA_TYPE_INT4,
140 Self::Int8 => ffi::GST_TENSOR_DATA_TYPE_INT8,
141 Self::Int16 => ffi::GST_TENSOR_DATA_TYPE_INT16,
142 Self::Int32 => ffi::GST_TENSOR_DATA_TYPE_INT32,
143 Self::Int64 => ffi::GST_TENSOR_DATA_TYPE_INT64,
144 Self::Uint4 => ffi::GST_TENSOR_DATA_TYPE_UINT4,
145 Self::Uint8 => ffi::GST_TENSOR_DATA_TYPE_UINT8,
146 Self::Uint16 => ffi::GST_TENSOR_DATA_TYPE_UINT16,
147 Self::Uint32 => ffi::GST_TENSOR_DATA_TYPE_UINT32,
148 Self::Uint64 => ffi::GST_TENSOR_DATA_TYPE_UINT64,
149 Self::Float16 => ffi::GST_TENSOR_DATA_TYPE_FLOAT16,
150 Self::Float32 => ffi::GST_TENSOR_DATA_TYPE_FLOAT32,
151 Self::Float64 => ffi::GST_TENSOR_DATA_TYPE_FLOAT64,
152 Self::Bfloat16 => ffi::GST_TENSOR_DATA_TYPE_BFLOAT16,
153 #[cfg(feature = "v1_28")]
154 Self::String => ffi::GST_TENSOR_DATA_TYPE_STRING,
155 #[cfg(feature = "v1_28")]
156 Self::Bool => ffi::GST_TENSOR_DATA_TYPE_BOOL,
157 #[cfg(feature = "v1_28")]
158 Self::Complex64 => ffi::GST_TENSOR_DATA_TYPE_COMPLEX64,
159 #[cfg(feature = "v1_28")]
160 Self::Complex128 => ffi::GST_TENSOR_DATA_TYPE_COMPLEX128,
161 #[cfg(feature = "v1_28")]
162 Self::Float8e4m3fn => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN,
163 #[cfg(feature = "v1_28")]
164 Self::Float8e4m3fnuz => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ,
165 #[cfg(feature = "v1_28")]
166 Self::Float8e5m2 => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2,
167 #[cfg(feature = "v1_28")]
168 Self::Float8e5m2fnuz => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ,
169 Self::__Unknown(value) => value,
170 }
171 }
172}
173
174#[cfg(feature = "v1_26")]
175#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
176#[doc(hidden)]
177impl FromGlib<ffi::GstTensorDataType> for TensorDataType {
178 unsafe fn from_glib(value: ffi::GstTensorDataType) -> Self {
179 skip_assert_initialized!();
180
181 match value {
182 ffi::GST_TENSOR_DATA_TYPE_INT4 => Self::Int4,
183 ffi::GST_TENSOR_DATA_TYPE_INT8 => Self::Int8,
184 ffi::GST_TENSOR_DATA_TYPE_INT16 => Self::Int16,
185 ffi::GST_TENSOR_DATA_TYPE_INT32 => Self::Int32,
186 ffi::GST_TENSOR_DATA_TYPE_INT64 => Self::Int64,
187 ffi::GST_TENSOR_DATA_TYPE_UINT4 => Self::Uint4,
188 ffi::GST_TENSOR_DATA_TYPE_UINT8 => Self::Uint8,
189 ffi::GST_TENSOR_DATA_TYPE_UINT16 => Self::Uint16,
190 ffi::GST_TENSOR_DATA_TYPE_UINT32 => Self::Uint32,
191 ffi::GST_TENSOR_DATA_TYPE_UINT64 => Self::Uint64,
192 ffi::GST_TENSOR_DATA_TYPE_FLOAT16 => Self::Float16,
193 ffi::GST_TENSOR_DATA_TYPE_FLOAT32 => Self::Float32,
194 ffi::GST_TENSOR_DATA_TYPE_FLOAT64 => Self::Float64,
195 ffi::GST_TENSOR_DATA_TYPE_BFLOAT16 => Self::Bfloat16,
196 #[cfg(feature = "v1_28")]
197 ffi::GST_TENSOR_DATA_TYPE_STRING => Self::String,
198 #[cfg(feature = "v1_28")]
199 ffi::GST_TENSOR_DATA_TYPE_BOOL => Self::Bool,
200 #[cfg(feature = "v1_28")]
201 ffi::GST_TENSOR_DATA_TYPE_COMPLEX64 => Self::Complex64,
202 #[cfg(feature = "v1_28")]
203 ffi::GST_TENSOR_DATA_TYPE_COMPLEX128 => Self::Complex128,
204 #[cfg(feature = "v1_28")]
205 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN => Self::Float8e4m3fn,
206 #[cfg(feature = "v1_28")]
207 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ => Self::Float8e4m3fnuz,
208 #[cfg(feature = "v1_28")]
209 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2 => Self::Float8e5m2,
210 #[cfg(feature = "v1_28")]
211 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ => Self::Float8e5m2fnuz,
212 value => Self::__Unknown(value),
213 }
214 }
215}
216
217#[cfg(feature = "v1_26")]
218#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
219#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
220#[non_exhaustive]
221#[doc(alias = "GstTensorDimOrder")]
222pub enum TensorDimOrder {
223 #[doc(alias = "GST_TENSOR_DIM_ORDER_ROW_MAJOR")]
224 RowMajor,
225 #[doc(alias = "GST_TENSOR_DIM_ORDER_COL_MAJOR")]
226 ColMajor,
227 #[doc(hidden)]
228 __Unknown(i32),
229}
230
231#[cfg(feature = "v1_26")]
232#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
233#[doc(hidden)]
234impl IntoGlib for TensorDimOrder {
235 type GlibType = ffi::GstTensorDimOrder;
236
237 #[inline]
238 fn into_glib(self) -> ffi::GstTensorDimOrder {
239 match self {
240 Self::RowMajor => ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR,
241 Self::ColMajor => ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR,
242 Self::__Unknown(value) => value,
243 }
244 }
245}
246
247#[cfg(feature = "v1_26")]
248#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
249#[doc(hidden)]
250impl FromGlib<ffi::GstTensorDimOrder> for TensorDimOrder {
251 #[inline]
252 unsafe fn from_glib(value: ffi::GstTensorDimOrder) -> Self {
253 skip_assert_initialized!();
254
255 match value {
256 ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR => Self::RowMajor,
257 ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR => Self::ColMajor,
258 value => Self::__Unknown(value),
259 }
260 }
261}