gstreamer_validate/auto/
flags.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;
7use glib::{bitflags::bitflags, prelude::*, translate::*};
8
9bitflags! {
10    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
11    #[doc(alias = "GstValidateActionTypeFlags")]
12    pub struct ActionTypeFlags: u32 {
13        /// No special flag
14        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_NONE")]
15        const NONE = ffi::GST_VALIDATE_ACTION_TYPE_NONE as _;
16        /// The action is a config
17        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_CONFIG")]
18        const CONFIG = ffi::GST_VALIDATE_ACTION_TYPE_CONFIG as _;
19        /// The action can be executed ASYNC
20        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_ASYNC")]
21        const ASYNC = ffi::GST_VALIDATE_ACTION_TYPE_ASYNC as _;
22        /// The action can be executed asynchronously but without blocking further
23        /// actions execution.
24        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_NON_BLOCKING")]
25        const NON_BLOCKING = ffi::GST_VALIDATE_ACTION_TYPE_NON_BLOCKING as _;
26        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_INTERLACED")]
27        const INTERLACED = ffi::GST_VALIDATE_ACTION_TYPE_INTERLACED as _;
28        /// The action will be executed on 'element-added'
29        ///  for a particular element type if no playback-time
30        ///  is specified
31        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_CAN_EXECUTE_ON_ADDITION")]
32        const CAN_EXECUTE_ON_ADDITION = ffi::GST_VALIDATE_ACTION_TYPE_CAN_EXECUTE_ON_ADDITION as _;
33        /// The pipeline will need to be synchronized with the clock
34        ///  for that action type to be used.
35        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_NEEDS_CLOCK")]
36        const NEEDS_CLOCK = ffi::GST_VALIDATE_ACTION_TYPE_NEEDS_CLOCK as _;
37        /// Do not consider the non execution of the action
38        ///  as a fatal error.
39        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_NO_EXECUTION_NOT_FATAL")]
40        const NO_EXECUTION_NOT_FATAL = ffi::GST_VALIDATE_ACTION_TYPE_NO_EXECUTION_NOT_FATAL as _;
41        /// The action can use the 'optional' keyword. Such action
42        ///  instances will have the [`NO_EXECUTION_NOT_FATAL`][Self::NO_EXECUTION_NOT_FATAL]
43        ///  flag set and won't be considered as fatal if they fail.
44        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_CAN_BE_OPTIONAL")]
45        const CAN_BE_OPTIONAL = ffi::GST_VALIDATE_ACTION_TYPE_CAN_BE_OPTIONAL as _;
46        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_DOESNT_NEED_PIPELINE")]
47        const DOESNT_NEED_PIPELINE = ffi::GST_VALIDATE_ACTION_TYPE_DOESNT_NEED_PIPELINE as _;
48        /// The action can be used in config files even if it is not strictly a config
49        ///  action (ie. it needs a scenario to run).
50        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_HANDLED_IN_CONFIG")]
51        const HANDLED_IN_CONFIG = ffi::GST_VALIDATE_ACTION_TYPE_HANDLED_IN_CONFIG as _;
52        /// The action is checking some state from objects in the pipeline. It means that it can
53        /// be used as 'check' in different action which have a `check` "sub action", such as the 'wait' action type.
54        /// This implies that the action can be executed from any thread and not only from the scenario thread as other
55        /// types.
56        #[doc(alias = "GST_VALIDATE_ACTION_TYPE_CHECK")]
57        const CHECK = ffi::GST_VALIDATE_ACTION_TYPE_CHECK as _;
58    }
59}
60
61#[doc(hidden)]
62impl IntoGlib for ActionTypeFlags {
63    type GlibType = ffi::GstValidateActionTypeFlags;
64
65    #[inline]
66    fn into_glib(self) -> ffi::GstValidateActionTypeFlags {
67        self.bits()
68    }
69}
70
71#[doc(hidden)]
72impl FromGlib<ffi::GstValidateActionTypeFlags> for ActionTypeFlags {
73    #[inline]
74    unsafe fn from_glib(value: ffi::GstValidateActionTypeFlags) -> Self {
75        skip_assert_initialized!();
76        Self::from_bits_truncate(value)
77    }
78}
79
80impl StaticType for ActionTypeFlags {
81    #[inline]
82    #[doc(alias = "gst_validate_action_type_flags_get_type")]
83    fn static_type() -> glib::Type {
84        unsafe { from_glib(ffi::gst_validate_action_type_flags_get_type()) }
85    }
86}
87
88impl glib::HasParamSpec for ActionTypeFlags {
89    type ParamSpec = glib::ParamSpecFlags;
90    type SetValue = Self;
91    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
92
93    fn param_spec_builder() -> Self::BuilderFn {
94        Self::ParamSpec::builder
95    }
96}
97
98impl glib::value::ValueType for ActionTypeFlags {
99    type Type = Self;
100}
101
102unsafe impl<'a> glib::value::FromValue<'a> for ActionTypeFlags {
103    type Checker = glib::value::GenericValueTypeChecker<Self>;
104
105    #[inline]
106    unsafe fn from_value(value: &'a glib::Value) -> Self {
107        skip_assert_initialized!();
108        from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
109    }
110}
111
112impl ToValue for ActionTypeFlags {
113    #[inline]
114    fn to_value(&self) -> glib::Value {
115        let mut value = glib::Value::for_value_type::<Self>();
116        unsafe {
117            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
118        }
119        value
120    }
121
122    #[inline]
123    fn value_type(&self) -> glib::Type {
124        Self::static_type()
125    }
126}
127
128impl From<ActionTypeFlags> for glib::Value {
129    #[inline]
130    fn from(v: ActionTypeFlags) -> Self {
131        skip_assert_initialized!();
132        ToValue::to_value(&v)
133    }
134}
135
136bitflags! {
137    /// GST_VALIDATE_ISSUE_FLAGS_NONE: No special flags for the issue type
138    /// GST_VALIDATE_ISSUE_FLAGS_FULL_DETAILS: Always show all occurrences of the issue in full details
139    /// GST_VALIDATE_ISSUE_FLAGS_NO_BACKTRACE: Do not generate backtrace for the issue type
140    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
141    #[doc(alias = "GstValidateIssueFlags")]
142    pub struct IssueFlags: u32 {
143        #[doc(alias = "GST_VALIDATE_ISSUE_FLAGS_NONE")]
144        const NONE = ffi::GST_VALIDATE_ISSUE_FLAGS_NONE as _;
145        #[doc(alias = "GST_VALIDATE_ISSUE_FLAGS_FULL_DETAILS")]
146        const FULL_DETAILS = ffi::GST_VALIDATE_ISSUE_FLAGS_FULL_DETAILS as _;
147        #[doc(alias = "GST_VALIDATE_ISSUE_FLAGS_NO_BACKTRACE")]
148        const NO_BACKTRACE = ffi::GST_VALIDATE_ISSUE_FLAGS_NO_BACKTRACE as _;
149        /// Always generate backtrace, even if not a critical issue
150        #[doc(alias = "GST_VALIDATE_ISSUE_FLAGS_FORCE_BACKTRACE")]
151        const FORCE_BACKTRACE = ffi::GST_VALIDATE_ISSUE_FLAGS_FORCE_BACKTRACE as _;
152    }
153}
154
155#[doc(hidden)]
156impl IntoGlib for IssueFlags {
157    type GlibType = ffi::GstValidateIssueFlags;
158
159    #[inline]
160    fn into_glib(self) -> ffi::GstValidateIssueFlags {
161        self.bits()
162    }
163}
164
165#[doc(hidden)]
166impl FromGlib<ffi::GstValidateIssueFlags> for IssueFlags {
167    #[inline]
168    unsafe fn from_glib(value: ffi::GstValidateIssueFlags) -> Self {
169        skip_assert_initialized!();
170        Self::from_bits_truncate(value)
171    }
172}
173
174impl StaticType for IssueFlags {
175    #[inline]
176    #[doc(alias = "gst_validate_issue_flags_get_type")]
177    fn static_type() -> glib::Type {
178        unsafe { from_glib(ffi::gst_validate_issue_flags_get_type()) }
179    }
180}
181
182impl glib::HasParamSpec for IssueFlags {
183    type ParamSpec = glib::ParamSpecFlags;
184    type SetValue = Self;
185    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
186
187    fn param_spec_builder() -> Self::BuilderFn {
188        Self::ParamSpec::builder
189    }
190}
191
192impl glib::value::ValueType for IssueFlags {
193    type Type = Self;
194}
195
196unsafe impl<'a> glib::value::FromValue<'a> for IssueFlags {
197    type Checker = glib::value::GenericValueTypeChecker<Self>;
198
199    #[inline]
200    unsafe fn from_value(value: &'a glib::Value) -> Self {
201        skip_assert_initialized!();
202        from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
203    }
204}
205
206impl ToValue for IssueFlags {
207    #[inline]
208    fn to_value(&self) -> glib::Value {
209        let mut value = glib::Value::for_value_type::<Self>();
210        unsafe {
211            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
212        }
213        value
214    }
215
216    #[inline]
217    fn value_type(&self) -> glib::Type {
218        Self::static_type()
219    }
220}
221
222impl From<IssueFlags> for glib::Value {
223    #[inline]
224    fn from(v: IssueFlags) -> Self {
225        skip_assert_initialized!();
226        ToValue::to_value(&v)
227    }
228}