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