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