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_26")]
12#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
13#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
14#[non_exhaustive]
15#[doc(alias = "GstTensorDataType")]
16pub enum TensorDataType {
17 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT4")]
18 Int4,
19 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT8")]
20 Int8,
21 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT16")]
22 Int16,
23 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT32")]
24 Int32,
25 #[doc(alias = "GST_TENSOR_DATA_TYPE_INT64")]
26 Int64,
27 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT4")]
28 Uint4,
29 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT8")]
30 Uint8,
31 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT16")]
32 Uint16,
33 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT32")]
34 Uint32,
35 #[doc(alias = "GST_TENSOR_DATA_TYPE_UINT64")]
36 Uint64,
37 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT16")]
38 Float16,
39 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT32")]
40 Float32,
41 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT64")]
42 Float64,
43 #[doc(alias = "GST_TENSOR_DATA_TYPE_BFLOAT16")]
44 Bfloat16,
45 #[cfg(feature = "v1_28")]
46 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
47 #[doc(alias = "GST_TENSOR_DATA_TYPE_STRING")]
48 String,
49 #[cfg(feature = "v1_28")]
50 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
51 #[doc(alias = "GST_TENSOR_DATA_TYPE_BOOL")]
52 Bool,
53 #[cfg(feature = "v1_28")]
54 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
55 #[doc(alias = "GST_TENSOR_DATA_TYPE_COMPLEX64")]
56 Complex64,
57 #[cfg(feature = "v1_28")]
58 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
59 #[doc(alias = "GST_TENSOR_DATA_TYPE_COMPLEX128")]
60 Complex128,
61 #[cfg(feature = "v1_28")]
62 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
63 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN")]
64 Float8e4m3fn,
65 #[cfg(feature = "v1_28")]
66 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
67 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ")]
68 Float8e4m3fnuz,
69 #[cfg(feature = "v1_28")]
70 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
71 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E5M2")]
72 Float8e5m2,
73 #[cfg(feature = "v1_28")]
74 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
75 #[doc(alias = "GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ")]
76 Float8e5m2fnuz,
77 #[doc(hidden)]
78 __Unknown(i32),
79}
80
81#[cfg(feature = "v1_26")]
82#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
83#[doc(hidden)]
84impl IntoGlib for TensorDataType {
85 type GlibType = ffi::GstTensorDataType;
86
87 fn into_glib(self) -> ffi::GstTensorDataType {
88 match self {
89 Self::Int4 => ffi::GST_TENSOR_DATA_TYPE_INT4,
90 Self::Int8 => ffi::GST_TENSOR_DATA_TYPE_INT8,
91 Self::Int16 => ffi::GST_TENSOR_DATA_TYPE_INT16,
92 Self::Int32 => ffi::GST_TENSOR_DATA_TYPE_INT32,
93 Self::Int64 => ffi::GST_TENSOR_DATA_TYPE_INT64,
94 Self::Uint4 => ffi::GST_TENSOR_DATA_TYPE_UINT4,
95 Self::Uint8 => ffi::GST_TENSOR_DATA_TYPE_UINT8,
96 Self::Uint16 => ffi::GST_TENSOR_DATA_TYPE_UINT16,
97 Self::Uint32 => ffi::GST_TENSOR_DATA_TYPE_UINT32,
98 Self::Uint64 => ffi::GST_TENSOR_DATA_TYPE_UINT64,
99 Self::Float16 => ffi::GST_TENSOR_DATA_TYPE_FLOAT16,
100 Self::Float32 => ffi::GST_TENSOR_DATA_TYPE_FLOAT32,
101 Self::Float64 => ffi::GST_TENSOR_DATA_TYPE_FLOAT64,
102 Self::Bfloat16 => ffi::GST_TENSOR_DATA_TYPE_BFLOAT16,
103 #[cfg(feature = "v1_28")]
104 Self::String => ffi::GST_TENSOR_DATA_TYPE_STRING,
105 #[cfg(feature = "v1_28")]
106 Self::Bool => ffi::GST_TENSOR_DATA_TYPE_BOOL,
107 #[cfg(feature = "v1_28")]
108 Self::Complex64 => ffi::GST_TENSOR_DATA_TYPE_COMPLEX64,
109 #[cfg(feature = "v1_28")]
110 Self::Complex128 => ffi::GST_TENSOR_DATA_TYPE_COMPLEX128,
111 #[cfg(feature = "v1_28")]
112 Self::Float8e4m3fn => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN,
113 #[cfg(feature = "v1_28")]
114 Self::Float8e4m3fnuz => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ,
115 #[cfg(feature = "v1_28")]
116 Self::Float8e5m2 => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2,
117 #[cfg(feature = "v1_28")]
118 Self::Float8e5m2fnuz => ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ,
119 Self::__Unknown(value) => value,
120 }
121 }
122}
123
124#[cfg(feature = "v1_26")]
125#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
126#[doc(hidden)]
127impl FromGlib<ffi::GstTensorDataType> for TensorDataType {
128 unsafe fn from_glib(value: ffi::GstTensorDataType) -> Self {
129 skip_assert_initialized!();
130
131 match value {
132 ffi::GST_TENSOR_DATA_TYPE_INT4 => Self::Int4,
133 ffi::GST_TENSOR_DATA_TYPE_INT8 => Self::Int8,
134 ffi::GST_TENSOR_DATA_TYPE_INT16 => Self::Int16,
135 ffi::GST_TENSOR_DATA_TYPE_INT32 => Self::Int32,
136 ffi::GST_TENSOR_DATA_TYPE_INT64 => Self::Int64,
137 ffi::GST_TENSOR_DATA_TYPE_UINT4 => Self::Uint4,
138 ffi::GST_TENSOR_DATA_TYPE_UINT8 => Self::Uint8,
139 ffi::GST_TENSOR_DATA_TYPE_UINT16 => Self::Uint16,
140 ffi::GST_TENSOR_DATA_TYPE_UINT32 => Self::Uint32,
141 ffi::GST_TENSOR_DATA_TYPE_UINT64 => Self::Uint64,
142 ffi::GST_TENSOR_DATA_TYPE_FLOAT16 => Self::Float16,
143 ffi::GST_TENSOR_DATA_TYPE_FLOAT32 => Self::Float32,
144 ffi::GST_TENSOR_DATA_TYPE_FLOAT64 => Self::Float64,
145 ffi::GST_TENSOR_DATA_TYPE_BFLOAT16 => Self::Bfloat16,
146 #[cfg(feature = "v1_28")]
147 ffi::GST_TENSOR_DATA_TYPE_STRING => Self::String,
148 #[cfg(feature = "v1_28")]
149 ffi::GST_TENSOR_DATA_TYPE_BOOL => Self::Bool,
150 #[cfg(feature = "v1_28")]
151 ffi::GST_TENSOR_DATA_TYPE_COMPLEX64 => Self::Complex64,
152 #[cfg(feature = "v1_28")]
153 ffi::GST_TENSOR_DATA_TYPE_COMPLEX128 => Self::Complex128,
154 #[cfg(feature = "v1_28")]
155 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FN => Self::Float8e4m3fn,
156 #[cfg(feature = "v1_28")]
157 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E4M3FNUZ => Self::Float8e4m3fnuz,
158 #[cfg(feature = "v1_28")]
159 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2 => Self::Float8e5m2,
160 #[cfg(feature = "v1_28")]
161 ffi::GST_TENSOR_DATA_TYPE_FLOAT8E5M2FNUZ => Self::Float8e5m2fnuz,
162 value => Self::__Unknown(value),
163 }
164 }
165}
166
167#[cfg(feature = "v1_26")]
168#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
169#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
170#[non_exhaustive]
171#[doc(alias = "GstTensorDimOrder")]
172pub enum TensorDimOrder {
173 #[doc(alias = "GST_TENSOR_DIM_ORDER_ROW_MAJOR")]
174 RowMajor,
175 #[doc(alias = "GST_TENSOR_DIM_ORDER_COL_MAJOR")]
176 ColMajor,
177 #[doc(hidden)]
178 __Unknown(i32),
179}
180
181#[cfg(feature = "v1_26")]
182#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
183#[doc(hidden)]
184impl IntoGlib for TensorDimOrder {
185 type GlibType = ffi::GstTensorDimOrder;
186
187 #[inline]
188 fn into_glib(self) -> ffi::GstTensorDimOrder {
189 match self {
190 Self::RowMajor => ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR,
191 Self::ColMajor => ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR,
192 Self::__Unknown(value) => value,
193 }
194 }
195}
196
197#[cfg(feature = "v1_26")]
198#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
199#[doc(hidden)]
200impl FromGlib<ffi::GstTensorDimOrder> for TensorDimOrder {
201 #[inline]
202 unsafe fn from_glib(value: ffi::GstTensorDimOrder) -> Self {
203 skip_assert_initialized!();
204
205 match value {
206 ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR => Self::RowMajor,
207 ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR => Self::ColMajor,
208 value => Self::__Unknown(value),
209 }
210 }
211}