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    #[doc(hidden)]
61    __Unknown(i32),
62}
63
64#[cfg(feature = "v1_26")]
65#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
66#[doc(hidden)]
67impl IntoGlib for TensorDataType {
68    type GlibType = ffi::GstTensorDataType;
69
70    fn into_glib(self) -> ffi::GstTensorDataType {
71        match self {
72            Self::Int4 => ffi::GST_TENSOR_DATA_TYPE_INT4,
73            Self::Int8 => ffi::GST_TENSOR_DATA_TYPE_INT8,
74            Self::Int16 => ffi::GST_TENSOR_DATA_TYPE_INT16,
75            Self::Int32 => ffi::GST_TENSOR_DATA_TYPE_INT32,
76            Self::Int64 => ffi::GST_TENSOR_DATA_TYPE_INT64,
77            Self::Uint4 => ffi::GST_TENSOR_DATA_TYPE_UINT4,
78            Self::Uint8 => ffi::GST_TENSOR_DATA_TYPE_UINT8,
79            Self::Uint16 => ffi::GST_TENSOR_DATA_TYPE_UINT16,
80            Self::Uint32 => ffi::GST_TENSOR_DATA_TYPE_UINT32,
81            Self::Uint64 => ffi::GST_TENSOR_DATA_TYPE_UINT64,
82            Self::Float16 => ffi::GST_TENSOR_DATA_TYPE_FLOAT16,
83            Self::Float32 => ffi::GST_TENSOR_DATA_TYPE_FLOAT32,
84            Self::Float64 => ffi::GST_TENSOR_DATA_TYPE_FLOAT64,
85            Self::Bfloat16 => ffi::GST_TENSOR_DATA_TYPE_BFLOAT16,
86            Self::__Unknown(value) => value,
87        }
88    }
89}
90
91#[cfg(feature = "v1_26")]
92#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
93#[doc(hidden)]
94impl FromGlib<ffi::GstTensorDataType> for TensorDataType {
95    unsafe fn from_glib(value: ffi::GstTensorDataType) -> Self {
96        skip_assert_initialized!();
97
98        match value {
99            ffi::GST_TENSOR_DATA_TYPE_INT4 => Self::Int4,
100            ffi::GST_TENSOR_DATA_TYPE_INT8 => Self::Int8,
101            ffi::GST_TENSOR_DATA_TYPE_INT16 => Self::Int16,
102            ffi::GST_TENSOR_DATA_TYPE_INT32 => Self::Int32,
103            ffi::GST_TENSOR_DATA_TYPE_INT64 => Self::Int64,
104            ffi::GST_TENSOR_DATA_TYPE_UINT4 => Self::Uint4,
105            ffi::GST_TENSOR_DATA_TYPE_UINT8 => Self::Uint8,
106            ffi::GST_TENSOR_DATA_TYPE_UINT16 => Self::Uint16,
107            ffi::GST_TENSOR_DATA_TYPE_UINT32 => Self::Uint32,
108            ffi::GST_TENSOR_DATA_TYPE_UINT64 => Self::Uint64,
109            ffi::GST_TENSOR_DATA_TYPE_FLOAT16 => Self::Float16,
110            ffi::GST_TENSOR_DATA_TYPE_FLOAT32 => Self::Float32,
111            ffi::GST_TENSOR_DATA_TYPE_FLOAT64 => Self::Float64,
112            ffi::GST_TENSOR_DATA_TYPE_BFLOAT16 => Self::Bfloat16,
113            value => Self::__Unknown(value),
114        }
115    }
116}
117
118/// Indicate to read tensor from memory in row-major or column-major order.
119#[cfg(feature = "v1_26")]
120#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
121#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
122#[non_exhaustive]
123#[doc(alias = "GstTensorDimOrder")]
124pub enum TensorDimOrder {
125    /// elements along a row are consecutive in memory
126    #[doc(alias = "GST_TENSOR_DIM_ORDER_ROW_MAJOR")]
127    RowMajor,
128    /// elements along a column are consecutive in memory
129    #[doc(alias = "GST_TENSOR_DIM_ORDER_COL_MAJOR")]
130    ColMajor,
131    #[doc(hidden)]
132    __Unknown(i32),
133}
134
135#[cfg(feature = "v1_26")]
136#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
137#[doc(hidden)]
138impl IntoGlib for TensorDimOrder {
139    type GlibType = ffi::GstTensorDimOrder;
140
141    #[inline]
142    fn into_glib(self) -> ffi::GstTensorDimOrder {
143        match self {
144            Self::RowMajor => ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR,
145            Self::ColMajor => ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR,
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::GstTensorDimOrder> for TensorDimOrder {
155    #[inline]
156    unsafe fn from_glib(value: ffi::GstTensorDimOrder) -> Self {
157        skip_assert_initialized!();
158
159        match value {
160            ffi::GST_TENSOR_DIM_ORDER_ROW_MAJOR => Self::RowMajor,
161            ffi::GST_TENSOR_DIM_ORDER_COL_MAJOR => Self::ColMajor,
162            value => Self::__Unknown(value),
163        }
164    }
165}