Skip to main content

gstreamer_analytics/auto/
enums.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::ffi;
7#[cfg(feature = "v1_26")]
8#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
9use glib::translate::*;
10
11/// Enum value describing supported keypoint dimension.
12#[cfg(feature = "v1_30")]
13#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
14#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
15#[non_exhaustive]
16#[doc(alias = "GstAnalyticsKeypointDimensions")]
17pub enum KeypointDimensions {
18    /// keypoints in 2D space with (x,y) coordinates.
19    #[doc(alias = "GST_ANALYTICS_KEYPOINT_DIMENSIONS_2D")]
20    _2d,
21    /// keypoints in 3D space with (x,y,z) coordinates.
22    #[doc(alias = "GST_ANALYTICS_KEYPOINT_DIMENSIONS_3D")]
23    _3d,
24    #[doc(hidden)]
25    __Unknown(i32),
26}
27
28#[cfg(feature = "v1_30")]
29#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
30#[doc(hidden)]
31impl IntoGlib for KeypointDimensions {
32    type GlibType = ffi::GstAnalyticsKeypointDimensions;
33
34    #[inline]
35    fn into_glib(self) -> ffi::GstAnalyticsKeypointDimensions {
36        match self {
37            Self::_2d => ffi::GST_ANALYTICS_KEYPOINT_DIMENSIONS_2D,
38            Self::_3d => ffi::GST_ANALYTICS_KEYPOINT_DIMENSIONS_3D,
39            Self::__Unknown(value) => value,
40        }
41    }
42}
43
44#[cfg(feature = "v1_30")]
45#[cfg_attr(docsrs, doc(cfg(feature = "v1_30")))]
46#[doc(hidden)]
47impl FromGlib<ffi::GstAnalyticsKeypointDimensions> for KeypointDimensions {
48    #[inline]
49    unsafe fn from_glib(value: ffi::GstAnalyticsKeypointDimensions) -> Self {
50        skip_assert_initialized!();
51
52        match value {
53            ffi::GST_ANALYTICS_KEYPOINT_DIMENSIONS_2D => Self::_2d,
54            ffi::GST_ANALYTICS_KEYPOINT_DIMENSIONS_3D => Self::_3d,
55            value => Self::__Unknown(value),
56        }
57    }
58}
59
60#[cfg(feature = "v1_28")]
61#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
62#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
63#[non_exhaustive]
64#[doc(alias = "GstAnalyticsModelInfoTensorDirection")]
65pub enum ModelInfoTensorDirection {
66    /// Tensor location is unknown
67    #[doc(alias = "MODELINFO_DIRECTION_UNKNOWN")]
68    Unknown,
69    /// Input tensor
70    #[doc(alias = "MODELINFO_DIRECTION_INPUT")]
71    Input,
72    /// Output tensor
73    #[doc(alias = "MODELINFO_DIRECTION_OUTPUT")]
74    Output,
75    #[doc(hidden)]
76    __Unknown(i32),
77}
78
79#[cfg(feature = "v1_28")]
80#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
81#[doc(hidden)]
82impl IntoGlib for ModelInfoTensorDirection {
83    type GlibType = ffi::GstAnalyticsModelInfoTensorDirection;
84
85    #[inline]
86    fn into_glib(self) -> ffi::GstAnalyticsModelInfoTensorDirection {
87        match self {
88            Self::Unknown => ffi::MODELINFO_DIRECTION_UNKNOWN,
89            Self::Input => ffi::MODELINFO_DIRECTION_INPUT,
90            Self::Output => ffi::MODELINFO_DIRECTION_OUTPUT,
91            Self::__Unknown(value) => value,
92        }
93    }
94}
95
96#[cfg(feature = "v1_28")]
97#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
98#[doc(hidden)]
99impl FromGlib<ffi::GstAnalyticsModelInfoTensorDirection> for ModelInfoTensorDirection {
100    #[inline]
101    unsafe fn from_glib(value: ffi::GstAnalyticsModelInfoTensorDirection) -> Self {
102        skip_assert_initialized!();
103
104        match value {
105            ffi::MODELINFO_DIRECTION_UNKNOWN => Self::Unknown,
106            ffi::MODELINFO_DIRECTION_INPUT => Self::Input,
107            ffi::MODELINFO_DIRECTION_OUTPUT => Self::Output,
108            value => Self::__Unknown(value),
109        }
110    }
111}
112
113/// Describe the type of data contain in the tensor.
114#[cfg(feature = "v1_26")]
115#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
116#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
117#[non_exhaustive]
118#[doc(alias = "GstTensorDataType")]
119pub enum TensorDataType {
120    /// signed 4 bit integer tensor data
121    #[doc(alias = "GST_TENSOR_DATA_TYPE_INT4")]
122    Int4,
123    /// signed 8 bit integer tensor data
124    #[doc(alias = "GST_TENSOR_DATA_TYPE_INT8")]
125    Int8,
126    /// signed 16 bit integer tensor data
127    #[doc(alias = "GST_TENSOR_DATA_TYPE_INT16")]
128    Int16,
129    /// signed 32 bit integer tensor data
130    #[doc(alias = "GST_TENSOR_DATA_TYPE_INT32")]
131    Int32,
132    /// signed 64 bit integer tensor data
133    #[doc(alias = "GST_TENSOR_DATA_TYPE_INT64")]
134    Int64,
135    /// unsigned 4 bit integer tensor data
136    #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT4")]
137    Uint4,
138    /// unsigned 8 bit integer tensor data
139    #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT8")]
140    Uint8,
141    /// unsigned 16 bit integer tensor data
142    #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT16")]
143    Uint16,
144    /// unsigned 32 bit integer tensor data
145    #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT32")]
146    Uint32,
147    /// unsigned 64 bit integer tensor data
148    #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT64")]
149    Uint64,
150    /// 16 bit floating point tensor data
151    #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT16")]
152    Float16,
153    /// 32 bit floating point tensor data
154    #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT32")]
155    Float32,
156    /// 64 bit floating point tensor data
157    #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT64")]
158    Float64,
159    /// "brain" 16 bit floating point tensor data
160    #[doc(alias = "GST_TENSOR_DATA_TYPE_BFLOAT16")]
161    Bfloat16,
162    /// UTF-8 string
163    #[cfg(feature = "v1_28")]
164    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
165    #[doc(alias = "GST_TENSOR_DATA_TYPE_STRING")]
166    String,
167    /// A boolean value stored in 1 byte.
168    #[cfg(feature = "v1_28")]
169    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
170    #[doc(alias = "GST_TENSOR_DATA_TYPE_BOOL")]
171    Bool,
172    /// A 64-bit complex number stored in 2 32-bit values.
173    #[cfg(feature = "v1_28")]
174    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
175    #[doc(alias = "GST_TENSOR_DATA_TYPE_COMPLEX64")]
176    Complex64,
177    /// A 128-bit complex number stored in 2 64-bit values.
178    #[cfg(feature = "v1_28")]
179    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
180    #[doc(alias = "GST_TENSOR_DATA_TYPE_COMPLEX128")]
181    Complex128,
182    /// A non-IEEE 8-bit floating point format with 4 exponent bits and 3 mantissa bits, with NaN and no infinite values (FN).
183    /// See [this paper for more details](https://onnx.ai/onnx/technical/float8.html)
184    #[cfg(feature = "v1_28")]
185    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
186    #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN")]
187    Float8e4m3fn,
188    /// A non-IEEE 8-bit floating point format with 4 exponent bits and 3 mantissa bits, with NaN, no infinite values (FN) and no negative zero (UZ).
189    /// See [this paper for more details](https://onnx.ai/onnx/technical/float8.html)
190    #[cfg(feature = "v1_28")]
191    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
192    #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ")]
193    Float8e4m3fnuz,
194    /// A non-IEEE 8-bit floating point format with 5 exponent bits and 2 mantissa bits.
195    /// See [this paper for more details](https://onnx.ai/onnx/technical/float8.html)
196    #[cfg(feature = "v1_28")]
197    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
198    #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E5M2")]
199    Float8e5m2,
200    /// A non-IEEE 8-bit floating point format with 5 exponent bits and 2 mantissa bits, with NaN, no infinite values (FN) and no negative zero (UZ).
201    /// See [this paper for more details](https://onnx.ai/onnx/technical/float8.html)
202    #[cfg(feature = "v1_28")]
203    #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
204    #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ")]
205    Float8e5m2fnuz,
206    #[doc(hidden)]
207    __Unknown(i32),
208}
209
210#[cfg(feature = "v1_26")]
211#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
212#[doc(hidden)]
213impl IntoGlib for TensorDataType {
214    type GlibType = ffi::GstTensorDataType;
215
216    fn into_glib(self) -> ffi::GstTensorDataType {
217        match self {
218            Self::Int4 => ffi::GST_TENSOR_DATA_TYPE_INT4,
219            Self::Int8 => ffi::GST_TENSOR_DATA_TYPE_INT8,
220            Self::Int16 => ffi::GST_TENSOR_DATA_TYPE_INT16,
221            Self::Int32 => ffi::GST_TENSOR_DATA_TYPE_INT32,
222            Self::Int64 => ffi::GST_TENSOR_DATA_TYPE_INT64,
223            Self::Uint4 => ffi::GST_TENSOR_DATA_TYPE_UINT4,
224            Self::Uint8 => ffi::GST_TENSOR_DATA_TYPE_UINT8,
225            Self::Uint16 => ffi::GST_TENSOR_DATA_TYPE_UINT16,
226            Self::Uint32 => ffi::GST_TENSOR_DATA_TYPE_UINT32,
227            Self::Uint64 => ffi::GST_TENSOR_DATA_TYPE_UINT64,
228            Self::Float16 => ffi::GST_TENSOR_DATA_TYPE_FLOAT16,
229            Self::Float32 => ffi::GST_TENSOR_DATA_TYPE_FLOAT32,
230            Self::Float64 => ffi::GST_TENSOR_DATA_TYPE_FLOAT64,
231            Self::Bfloat16 => ffi::GST_TENSOR_DATA_TYPE_BFLOAT16,
232            #[cfg(feature = "v1_28")]
233            Self::String => ffi::GST_TENSOR_DATA_TYPE_STRING,
234            #[cfg(feature = "v1_28")]
235            Self::Bool => ffi::GST_TENSOR_DATA_TYPE_BOOL,
236            #[cfg(feature = "v1_28")]
237            Self::Complex64 => ffi::GST_TENSOR_DATA_TYPE_COMPLEX64,
238            #[cfg(feature = "v1_28")]
239            Self::Complex128 => ffi::GST_TENSOR_DATA_TYPE_COMPLEX128,
240            #[cfg(feature = "v1_28")]
241            Self::Float8e4m3fn => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN,
242            #[cfg(feature = "v1_28")]
243            Self::Float8e4m3fnuz => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ,
244            #[cfg(feature = "v1_28")]
245            Self::Float8e5m2 => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2,
246            #[cfg(feature = "v1_28")]
247            Self::Float8e5m2fnuz => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ,
248            Self::__Unknown(value) => value,
249        }
250    }
251}
252
253#[cfg(feature = "v1_26")]
254#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
255#[doc(hidden)]
256impl FromGlib<ffi::GstTensorDataType> for TensorDataType {
257    unsafe fn from_glib(value: ffi::GstTensorDataType) -> Self {
258        skip_assert_initialized!();
259
260        match value {
261            ffi::GST_TENSOR_DATA_TYPE_INT4 => Self::Int4,
262            ffi::GST_TENSOR_DATA_TYPE_INT8 => Self::Int8,
263            ffi::GST_TENSOR_DATA_TYPE_INT16 => Self::Int16,
264            ffi::GST_TENSOR_DATA_TYPE_INT32 => Self::Int32,
265            ffi::GST_TENSOR_DATA_TYPE_INT64 => Self::Int64,
266            ffi::GST_TENSOR_DATA_TYPE_UINT4 => Self::Uint4,
267            ffi::GST_TENSOR_DATA_TYPE_UINT8 => Self::Uint8,
268            ffi::GST_TENSOR_DATA_TYPE_UINT16 => Self::Uint16,
269            ffi::GST_TENSOR_DATA_TYPE_UINT32 => Self::Uint32,
270            ffi::GST_TENSOR_DATA_TYPE_UINT64 => Self::Uint64,
271            ffi::GST_TENSOR_DATA_TYPE_FLOAT16 => Self::Float16,
272            ffi::GST_TENSOR_DATA_TYPE_FLOAT32 => Self::Float32,
273            ffi::GST_TENSOR_DATA_TYPE_FLOAT64 => Self::Float64,
274            ffi::GST_TENSOR_DATA_TYPE_BFLOAT16 => Self::Bfloat16,
275            #[cfg(feature = "v1_28")]
276            ffi::GST_TENSOR_DATA_TYPE_STRING => Self::String,
277            #[cfg(feature = "v1_28")]
278            ffi::GST_TENSOR_DATA_TYPE_BOOL => Self::Bool,
279            #[cfg(feature = "v1_28")]
280            ffi::GST_TENSOR_DATA_TYPE_COMPLEX64 => Self::Complex64,
281            #[cfg(feature = "v1_28")]
282            ffi::GST_TENSOR_DATA_TYPE_COMPLEX128 => Self::Complex128,
283            #[cfg(feature = "v1_28")]
284            ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN => Self::Float8e4m3fn,
285            #[cfg(feature = "v1_28")]
286            ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ => Self::Float8e4m3fnuz,
287            #[cfg(feature = "v1_28")]
288            ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2 => Self::Float8e5m2,
289            #[cfg(feature = "v1_28")]
290            ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ => Self::Float8e5m2fnuz,
291            value => Self::__Unknown(value),
292        }
293    }
294}
295
296/// Indicate to read tensor from memory in row-major or column-major order.
297#[cfg(feature = "v1_26")]
298#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
299#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
300#[non_exhaustive]
301#[doc(alias = "GstTensorDimOrder")]
302pub enum TensorDimOrder {
303    /// elements along a row are consecutive in memory
304    #[doc(alias = "GST_TENSOR_DIM_ORDER_ROW_MAJOR")]
305    RowMajor,
306    /// elements along a column are consecutive in memory
307    #[doc(alias = "GST_TENSOR_DIM_ORDER_COL_MAJOR")]
308    ColMajor,
309    #[doc(hidden)]
310    __Unknown(i32),
311}
312
313#[cfg(feature = "v1_26")]
314#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
315#[doc(hidden)]
316impl IntoGlib for TensorDimOrder {
317    type GlibType = ffi::GstTensorDimOrder;
318
319    #[inline]
320    fn into_glib(self) -> ffi::GstTensorDimOrder {
321        match self {
322            Self::RowMajor => ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR,
323            Self::ColMajor => ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR,
324            Self::__Unknown(value) => value,
325        }
326    }
327}
328
329#[cfg(feature = "v1_26")]
330#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
331#[doc(hidden)]
332impl FromGlib<ffi::GstTensorDimOrder> for TensorDimOrder {
333    #[inline]
334    unsafe fn from_glib(value: ffi::GstTensorDimOrder) -> Self {
335        skip_assert_initialized!();
336
337        match value {
338            ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR => Self::RowMajor,
339            ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR => Self::ColMajor,
340            value => Self::__Unknown(value),
341        }
342    }
343}