Skip to main content

gio/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// DO NOT EDIT
4
5use crate::ffi;
6use glib::{bitflags::bitflags, prelude::*, translate::*};
7
8bitflags! {
9    /// Flags used when creating a #GAppInfo.
10    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
11    #[doc(alias = "GAppInfoCreateFlags")]
12    pub struct AppInfoCreateFlags: u32 {
13        /// No flags.
14        #[doc(alias = "G_APP_INFO_CREATE_NONE")]
15        const NONE = ffi::G_APP_INFO_CREATE_NONE as _;
16        /// Application opens in a terminal window.
17        #[doc(alias = "G_APP_INFO_CREATE_NEEDS_TERMINAL")]
18        const NEEDS_TERMINAL = ffi::G_APP_INFO_CREATE_NEEDS_TERMINAL as _;
19        /// Application supports URI arguments.
20        #[doc(alias = "G_APP_INFO_CREATE_SUPPORTS_URIS")]
21        const SUPPORTS_URIS = ffi::G_APP_INFO_CREATE_SUPPORTS_URIS as _;
22        /// Application supports startup notification. Since 2.26
23        #[doc(alias = "G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION")]
24        const SUPPORTS_STARTUP_NOTIFICATION = ffi::G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION as _;
25    }
26}
27
28#[doc(hidden)]
29impl IntoGlib for AppInfoCreateFlags {
30    type GlibType = ffi::GAppInfoCreateFlags;
31
32    #[inline]
33    fn into_glib(self) -> ffi::GAppInfoCreateFlags {
34        self.bits()
35    }
36}
37
38#[doc(hidden)]
39impl FromGlib<ffi::GAppInfoCreateFlags> for AppInfoCreateFlags {
40    #[inline]
41    unsafe fn from_glib(value: ffi::GAppInfoCreateFlags) -> Self {
42        Self::from_bits_truncate(value)
43    }
44}
45
46impl StaticType for AppInfoCreateFlags {
47    #[inline]
48    #[doc(alias = "g_app_info_create_flags_get_type")]
49    fn static_type() -> glib::Type {
50        unsafe { from_glib(ffi::g_app_info_create_flags_get_type()) }
51    }
52}
53
54impl glib::HasParamSpec for AppInfoCreateFlags {
55    type ParamSpec = glib::ParamSpecFlags;
56    type SetValue = Self;
57    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
58
59    fn param_spec_builder() -> Self::BuilderFn {
60        Self::ParamSpec::builder
61    }
62}
63
64impl glib::value::ValueType for AppInfoCreateFlags {
65    type Type = Self;
66}
67
68unsafe impl<'a> glib::value::FromValue<'a> for AppInfoCreateFlags {
69    type Checker = glib::value::GenericValueTypeChecker<Self>;
70
71    #[inline]
72    unsafe fn from_value(value: &'a glib::Value) -> Self {
73        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
74    }
75}
76
77impl ToValue for AppInfoCreateFlags {
78    #[inline]
79    fn to_value(&self) -> glib::Value {
80        let mut value = glib::Value::for_value_type::<Self>();
81        unsafe {
82            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
83        }
84        value
85    }
86
87    #[inline]
88    fn value_type(&self) -> glib::Type {
89        Self::static_type()
90    }
91}
92
93impl From<AppInfoCreateFlags> for glib::Value {
94    #[inline]
95    fn from(v: AppInfoCreateFlags) -> Self {
96        ToValue::to_value(&v)
97    }
98}
99
100bitflags! {
101    /// Flags used to define the behaviour of a #GApplication.
102    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
103    #[doc(alias = "GApplicationFlags")]
104    pub struct ApplicationFlags: u32 {
105        /// Default flags.
106        /// Use [flags@Gio.ApplicationFlags.DEFAULT_FLAGS].
107        #[cfg_attr(feature = "v2_74", deprecated = "Since 2.74")]
108        #[doc(alias = "G_APPLICATION_FLAGS_NONE")]
109        const FLAGS_NONE = ffi::G_APPLICATION_FLAGS_NONE as _;
110        /// Run as a service. In this mode, registration
111        ///      fails if the service is already running, and the application
112        ///      will initially wait up to 10 seconds for an initial activation
113        ///      message to arrive.
114        #[doc(alias = "G_APPLICATION_IS_SERVICE")]
115        const IS_SERVICE = ffi::G_APPLICATION_IS_SERVICE as _;
116        /// Don't try to become the primary instance.
117        #[doc(alias = "G_APPLICATION_IS_LAUNCHER")]
118        const IS_LAUNCHER = ffi::G_APPLICATION_IS_LAUNCHER as _;
119        /// This application handles opening files (in
120        ///     the primary instance). Note that this flag only affects the default
121        ///     implementation of local_command_line(). It can be useful even when
122        ///     using `G_APPLICATION_HANDLES_COMMAND_LINE` to handle
123        ///     `org.freedesktop.Application.open`.
124        ///     See g_application_run() for details.
125        #[doc(alias = "G_APPLICATION_HANDLES_OPEN")]
126        const HANDLES_OPEN = ffi::G_APPLICATION_HANDLES_OPEN as _;
127        /// This application handles command line
128        ///     arguments (in the primary instance). Note that this flag only affect
129        ///     the default implementation of local_command_line().
130        ///     See g_application_run() for details.
131        #[doc(alias = "G_APPLICATION_HANDLES_COMMAND_LINE")]
132        const HANDLES_COMMAND_LINE = ffi::G_APPLICATION_HANDLES_COMMAND_LINE as _;
133        /// Send the environment of the
134        ///     launching process to the primary instance. Set this flag if your
135        ///     application is expected to behave differently depending on certain
136        ///     environment variables. For instance, an editor might be expected
137        ///     to use the `GIT_COMMITTER_NAME` environment variable
138        ///     when editing a git commit message. The environment is available
139        ///     to the #GApplication::command-line signal handler, via
140        ///     g_application_command_line_getenv().
141        #[doc(alias = "G_APPLICATION_SEND_ENVIRONMENT")]
142        const SEND_ENVIRONMENT = ffi::G_APPLICATION_SEND_ENVIRONMENT as _;
143        /// Make no attempts to do any of the typical
144        ///     single-instance application negotiation, even if the application
145        ///     ID is given.  The application neither attempts to become the
146        ///     owner of the application ID nor does it check if an existing
147        ///     owner already exists.  Everything occurs in the local process.
148        ///     Since: 2.30.
149        #[doc(alias = "G_APPLICATION_NON_UNIQUE")]
150        const NON_UNIQUE = ffi::G_APPLICATION_NON_UNIQUE as _;
151        /// Allow users to override the
152        ///     application ID from the command line with `--gapplication-app-id`.
153        ///     Since: 2.48
154        #[doc(alias = "G_APPLICATION_CAN_OVERRIDE_APP_ID")]
155        const CAN_OVERRIDE_APP_ID = ffi::G_APPLICATION_CAN_OVERRIDE_APP_ID as _;
156        /// Allow another instance to take over
157        ///     the bus name. Since: 2.60
158        #[doc(alias = "G_APPLICATION_ALLOW_REPLACEMENT")]
159        const ALLOW_REPLACEMENT = ffi::G_APPLICATION_ALLOW_REPLACEMENT as _;
160        /// Take over from another instance. This flag is
161        ///     usually set by passing `--gapplication-replace` on the commandline.
162        ///     Since: 2.60
163        #[doc(alias = "G_APPLICATION_REPLACE")]
164        const REPLACE = ffi::G_APPLICATION_REPLACE as _;
165    }
166}
167
168#[doc(hidden)]
169impl IntoGlib for ApplicationFlags {
170    type GlibType = ffi::GApplicationFlags;
171
172    #[inline]
173    fn into_glib(self) -> ffi::GApplicationFlags {
174        self.bits()
175    }
176}
177
178#[doc(hidden)]
179impl FromGlib<ffi::GApplicationFlags> for ApplicationFlags {
180    #[inline]
181    unsafe fn from_glib(value: ffi::GApplicationFlags) -> Self {
182        Self::from_bits_truncate(value)
183    }
184}
185
186impl StaticType for ApplicationFlags {
187    #[inline]
188    #[doc(alias = "g_application_flags_get_type")]
189    fn static_type() -> glib::Type {
190        unsafe { from_glib(ffi::g_application_flags_get_type()) }
191    }
192}
193
194impl glib::HasParamSpec for ApplicationFlags {
195    type ParamSpec = glib::ParamSpecFlags;
196    type SetValue = Self;
197    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
198
199    fn param_spec_builder() -> Self::BuilderFn {
200        Self::ParamSpec::builder
201    }
202}
203
204impl glib::value::ValueType for ApplicationFlags {
205    type Type = Self;
206}
207
208unsafe impl<'a> glib::value::FromValue<'a> for ApplicationFlags {
209    type Checker = glib::value::GenericValueTypeChecker<Self>;
210
211    #[inline]
212    unsafe fn from_value(value: &'a glib::Value) -> Self {
213        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
214    }
215}
216
217impl ToValue for ApplicationFlags {
218    #[inline]
219    fn to_value(&self) -> glib::Value {
220        let mut value = glib::Value::for_value_type::<Self>();
221        unsafe {
222            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
223        }
224        value
225    }
226
227    #[inline]
228    fn value_type(&self) -> glib::Type {
229        Self::static_type()
230    }
231}
232
233impl From<ApplicationFlags> for glib::Value {
234    #[inline]
235    fn from(v: ApplicationFlags) -> Self {
236        ToValue::to_value(&v)
237    }
238}
239
240bitflags! {
241    /// #GAskPasswordFlags are used to request specific information from the
242    /// user, or to notify the user of their choices in an authentication
243    /// situation.
244    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
245    #[doc(alias = "GAskPasswordFlags")]
246    pub struct AskPasswordFlags: u32 {
247        /// operation requires a password.
248        #[doc(alias = "G_ASK_PASSWORD_NEED_PASSWORD")]
249        const NEED_PASSWORD = ffi::G_ASK_PASSWORD_NEED_PASSWORD as _;
250        /// operation requires a username.
251        #[doc(alias = "G_ASK_PASSWORD_NEED_USERNAME")]
252        const NEED_USERNAME = ffi::G_ASK_PASSWORD_NEED_USERNAME as _;
253        /// operation requires a domain.
254        #[doc(alias = "G_ASK_PASSWORD_NEED_DOMAIN")]
255        const NEED_DOMAIN = ffi::G_ASK_PASSWORD_NEED_DOMAIN as _;
256        /// operation supports saving settings.
257        #[doc(alias = "G_ASK_PASSWORD_SAVING_SUPPORTED")]
258        const SAVING_SUPPORTED = ffi::G_ASK_PASSWORD_SAVING_SUPPORTED as _;
259        /// operation supports anonymous users.
260        #[doc(alias = "G_ASK_PASSWORD_ANONYMOUS_SUPPORTED")]
261        const ANONYMOUS_SUPPORTED = ffi::G_ASK_PASSWORD_ANONYMOUS_SUPPORTED as _;
262        /// operation takes TCRYPT parameters (Since: 2.58)
263        #[doc(alias = "G_ASK_PASSWORD_TCRYPT")]
264        const TCRYPT = ffi::G_ASK_PASSWORD_TCRYPT as _;
265    }
266}
267
268#[doc(hidden)]
269impl IntoGlib for AskPasswordFlags {
270    type GlibType = ffi::GAskPasswordFlags;
271
272    #[inline]
273    fn into_glib(self) -> ffi::GAskPasswordFlags {
274        self.bits()
275    }
276}
277
278#[doc(hidden)]
279impl FromGlib<ffi::GAskPasswordFlags> for AskPasswordFlags {
280    #[inline]
281    unsafe fn from_glib(value: ffi::GAskPasswordFlags) -> Self {
282        Self::from_bits_truncate(value)
283    }
284}
285
286impl StaticType for AskPasswordFlags {
287    #[inline]
288    #[doc(alias = "g_ask_password_flags_get_type")]
289    fn static_type() -> glib::Type {
290        unsafe { from_glib(ffi::g_ask_password_flags_get_type()) }
291    }
292}
293
294impl glib::HasParamSpec for AskPasswordFlags {
295    type ParamSpec = glib::ParamSpecFlags;
296    type SetValue = Self;
297    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
298
299    fn param_spec_builder() -> Self::BuilderFn {
300        Self::ParamSpec::builder
301    }
302}
303
304impl glib::value::ValueType for AskPasswordFlags {
305    type Type = Self;
306}
307
308unsafe impl<'a> glib::value::FromValue<'a> for AskPasswordFlags {
309    type Checker = glib::value::GenericValueTypeChecker<Self>;
310
311    #[inline]
312    unsafe fn from_value(value: &'a glib::Value) -> Self {
313        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
314    }
315}
316
317impl ToValue for AskPasswordFlags {
318    #[inline]
319    fn to_value(&self) -> glib::Value {
320        let mut value = glib::Value::for_value_type::<Self>();
321        unsafe {
322            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
323        }
324        value
325    }
326
327    #[inline]
328    fn value_type(&self) -> glib::Type {
329        Self::static_type()
330    }
331}
332
333impl From<AskPasswordFlags> for glib::Value {
334    #[inline]
335    fn from(v: AskPasswordFlags) -> Self {
336        ToValue::to_value(&v)
337    }
338}
339
340bitflags! {
341    /// Flags used in g_bus_own_name().
342    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
343    #[doc(alias = "GBusNameOwnerFlags")]
344    pub struct BusNameOwnerFlags: u32 {
345        /// No flags set.
346        #[doc(alias = "G_BUS_NAME_OWNER_FLAGS_NONE")]
347        const NONE = ffi::G_BUS_NAME_OWNER_FLAGS_NONE as _;
348        /// Allow another message bus connection to claim the name.
349        #[doc(alias = "G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT")]
350        const ALLOW_REPLACEMENT = ffi::G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT as _;
351        /// If another message bus connection owns the name and have
352        /// specified [`ALLOW_REPLACEMENT`][Self::ALLOW_REPLACEMENT], then take the name from the other connection.
353        #[doc(alias = "G_BUS_NAME_OWNER_FLAGS_REPLACE")]
354        const REPLACE = ffi::G_BUS_NAME_OWNER_FLAGS_REPLACE as _;
355        /// If another message bus connection owns the name, immediately return an error
356        /// from `bus_own_name()` rather than entering the waiting queue for that
357        /// name.
358        #[doc(alias = "G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE")]
359        const DO_NOT_QUEUE = ffi::G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE as _;
360    }
361}
362
363#[doc(hidden)]
364impl IntoGlib for BusNameOwnerFlags {
365    type GlibType = ffi::GBusNameOwnerFlags;
366
367    #[inline]
368    fn into_glib(self) -> ffi::GBusNameOwnerFlags {
369        self.bits()
370    }
371}
372
373#[doc(hidden)]
374impl FromGlib<ffi::GBusNameOwnerFlags> for BusNameOwnerFlags {
375    #[inline]
376    unsafe fn from_glib(value: ffi::GBusNameOwnerFlags) -> Self {
377        Self::from_bits_truncate(value)
378    }
379}
380
381impl StaticType for BusNameOwnerFlags {
382    #[inline]
383    #[doc(alias = "g_bus_name_owner_flags_get_type")]
384    fn static_type() -> glib::Type {
385        unsafe { from_glib(ffi::g_bus_name_owner_flags_get_type()) }
386    }
387}
388
389impl glib::HasParamSpec for BusNameOwnerFlags {
390    type ParamSpec = glib::ParamSpecFlags;
391    type SetValue = Self;
392    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
393
394    fn param_spec_builder() -> Self::BuilderFn {
395        Self::ParamSpec::builder
396    }
397}
398
399impl glib::value::ValueType for BusNameOwnerFlags {
400    type Type = Self;
401}
402
403unsafe impl<'a> glib::value::FromValue<'a> for BusNameOwnerFlags {
404    type Checker = glib::value::GenericValueTypeChecker<Self>;
405
406    #[inline]
407    unsafe fn from_value(value: &'a glib::Value) -> Self {
408        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
409    }
410}
411
412impl ToValue for BusNameOwnerFlags {
413    #[inline]
414    fn to_value(&self) -> glib::Value {
415        let mut value = glib::Value::for_value_type::<Self>();
416        unsafe {
417            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
418        }
419        value
420    }
421
422    #[inline]
423    fn value_type(&self) -> glib::Type {
424        Self::static_type()
425    }
426}
427
428impl From<BusNameOwnerFlags> for glib::Value {
429    #[inline]
430    fn from(v: BusNameOwnerFlags) -> Self {
431        ToValue::to_value(&v)
432    }
433}
434
435bitflags! {
436    /// Flags used in g_bus_watch_name().
437    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
438    #[doc(alias = "GBusNameWatcherFlags")]
439    pub struct BusNameWatcherFlags: u32 {
440        /// No flags set.
441        #[doc(alias = "G_BUS_NAME_WATCHER_FLAGS_NONE")]
442        const NONE = ffi::G_BUS_NAME_WATCHER_FLAGS_NONE as _;
443        /// If no-one owns the name when
444        /// beginning to watch the name, ask the bus to launch an owner for the
445        /// name.
446        #[doc(alias = "G_BUS_NAME_WATCHER_FLAGS_AUTO_START")]
447        const AUTO_START = ffi::G_BUS_NAME_WATCHER_FLAGS_AUTO_START as _;
448    }
449}
450
451#[doc(hidden)]
452impl IntoGlib for BusNameWatcherFlags {
453    type GlibType = ffi::GBusNameWatcherFlags;
454
455    #[inline]
456    fn into_glib(self) -> ffi::GBusNameWatcherFlags {
457        self.bits()
458    }
459}
460
461#[doc(hidden)]
462impl FromGlib<ffi::GBusNameWatcherFlags> for BusNameWatcherFlags {
463    #[inline]
464    unsafe fn from_glib(value: ffi::GBusNameWatcherFlags) -> Self {
465        Self::from_bits_truncate(value)
466    }
467}
468
469impl StaticType for BusNameWatcherFlags {
470    #[inline]
471    #[doc(alias = "g_bus_name_watcher_flags_get_type")]
472    fn static_type() -> glib::Type {
473        unsafe { from_glib(ffi::g_bus_name_watcher_flags_get_type()) }
474    }
475}
476
477impl glib::HasParamSpec for BusNameWatcherFlags {
478    type ParamSpec = glib::ParamSpecFlags;
479    type SetValue = Self;
480    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
481
482    fn param_spec_builder() -> Self::BuilderFn {
483        Self::ParamSpec::builder
484    }
485}
486
487impl glib::value::ValueType for BusNameWatcherFlags {
488    type Type = Self;
489}
490
491unsafe impl<'a> glib::value::FromValue<'a> for BusNameWatcherFlags {
492    type Checker = glib::value::GenericValueTypeChecker<Self>;
493
494    #[inline]
495    unsafe fn from_value(value: &'a glib::Value) -> Self {
496        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
497    }
498}
499
500impl ToValue for BusNameWatcherFlags {
501    #[inline]
502    fn to_value(&self) -> glib::Value {
503        let mut value = glib::Value::for_value_type::<Self>();
504        unsafe {
505            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
506        }
507        value
508    }
509
510    #[inline]
511    fn value_type(&self) -> glib::Type {
512        Self::static_type()
513    }
514}
515
516impl From<BusNameWatcherFlags> for glib::Value {
517    #[inline]
518    fn from(v: BusNameWatcherFlags) -> Self {
519        ToValue::to_value(&v)
520    }
521}
522
523bitflags! {
524    /// Flags used when calling a g_converter_convert().
525    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
526    #[doc(alias = "GConverterFlags")]
527    pub struct ConverterFlags: u32 {
528        /// No flags.
529        #[doc(alias = "G_CONVERTER_NO_FLAGS")]
530        const NONE = ffi::G_CONVERTER_NO_FLAGS as _;
531        /// At end of input data
532        #[doc(alias = "G_CONVERTER_INPUT_AT_END")]
533        const INPUT_AT_END = ffi::G_CONVERTER_INPUT_AT_END as _;
534        /// Flush data
535        #[doc(alias = "G_CONVERTER_FLUSH")]
536        const FLUSH = ffi::G_CONVERTER_FLUSH as _;
537    }
538}
539
540#[doc(hidden)]
541impl IntoGlib for ConverterFlags {
542    type GlibType = ffi::GConverterFlags;
543
544    #[inline]
545    fn into_glib(self) -> ffi::GConverterFlags {
546        self.bits()
547    }
548}
549
550#[doc(hidden)]
551impl FromGlib<ffi::GConverterFlags> for ConverterFlags {
552    #[inline]
553    unsafe fn from_glib(value: ffi::GConverterFlags) -> Self {
554        Self::from_bits_truncate(value)
555    }
556}
557
558impl StaticType for ConverterFlags {
559    #[inline]
560    #[doc(alias = "g_converter_flags_get_type")]
561    fn static_type() -> glib::Type {
562        unsafe { from_glib(ffi::g_converter_flags_get_type()) }
563    }
564}
565
566impl glib::HasParamSpec for ConverterFlags {
567    type ParamSpec = glib::ParamSpecFlags;
568    type SetValue = Self;
569    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
570
571    fn param_spec_builder() -> Self::BuilderFn {
572        Self::ParamSpec::builder
573    }
574}
575
576impl glib::value::ValueType for ConverterFlags {
577    type Type = Self;
578}
579
580unsafe impl<'a> glib::value::FromValue<'a> for ConverterFlags {
581    type Checker = glib::value::GenericValueTypeChecker<Self>;
582
583    #[inline]
584    unsafe fn from_value(value: &'a glib::Value) -> Self {
585        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
586    }
587}
588
589impl ToValue for ConverterFlags {
590    #[inline]
591    fn to_value(&self) -> glib::Value {
592        let mut value = glib::Value::for_value_type::<Self>();
593        unsafe {
594            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
595        }
596        value
597    }
598
599    #[inline]
600    fn value_type(&self) -> glib::Type {
601        Self::static_type()
602    }
603}
604
605impl From<ConverterFlags> for glib::Value {
606    #[inline]
607    fn from(v: ConverterFlags) -> Self {
608        ToValue::to_value(&v)
609    }
610}
611
612bitflags! {
613    /// Flags used in g_dbus_connection_call() and similar APIs.
614    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
615    #[doc(alias = "GDBusCallFlags")]
616    pub struct DBusCallFlags: u32 {
617        /// No flags set.
618        #[doc(alias = "G_DBUS_CALL_FLAGS_NONE")]
619        const NONE = ffi::G_DBUS_CALL_FLAGS_NONE as _;
620        /// The bus must not launch
621        /// an owner for the destination name in response to this method
622        /// invocation.
623        #[doc(alias = "G_DBUS_CALL_FLAGS_NO_AUTO_START")]
624        const NO_AUTO_START = ffi::G_DBUS_CALL_FLAGS_NO_AUTO_START as _;
625        /// the caller is prepared to
626        /// wait for interactive authorization. Since 2.46.
627        #[doc(alias = "G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION")]
628        const ALLOW_INTERACTIVE_AUTHORIZATION = ffi::G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION as _;
629    }
630}
631
632#[doc(hidden)]
633impl IntoGlib for DBusCallFlags {
634    type GlibType = ffi::GDBusCallFlags;
635
636    #[inline]
637    fn into_glib(self) -> ffi::GDBusCallFlags {
638        self.bits()
639    }
640}
641
642#[doc(hidden)]
643impl FromGlib<ffi::GDBusCallFlags> for DBusCallFlags {
644    #[inline]
645    unsafe fn from_glib(value: ffi::GDBusCallFlags) -> Self {
646        Self::from_bits_truncate(value)
647    }
648}
649
650impl StaticType for DBusCallFlags {
651    #[inline]
652    #[doc(alias = "g_dbus_call_flags_get_type")]
653    fn static_type() -> glib::Type {
654        unsafe { from_glib(ffi::g_dbus_call_flags_get_type()) }
655    }
656}
657
658impl glib::HasParamSpec for DBusCallFlags {
659    type ParamSpec = glib::ParamSpecFlags;
660    type SetValue = Self;
661    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
662
663    fn param_spec_builder() -> Self::BuilderFn {
664        Self::ParamSpec::builder
665    }
666}
667
668impl glib::value::ValueType for DBusCallFlags {
669    type Type = Self;
670}
671
672unsafe impl<'a> glib::value::FromValue<'a> for DBusCallFlags {
673    type Checker = glib::value::GenericValueTypeChecker<Self>;
674
675    #[inline]
676    unsafe fn from_value(value: &'a glib::Value) -> Self {
677        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
678    }
679}
680
681impl ToValue for DBusCallFlags {
682    #[inline]
683    fn to_value(&self) -> glib::Value {
684        let mut value = glib::Value::for_value_type::<Self>();
685        unsafe {
686            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
687        }
688        value
689    }
690
691    #[inline]
692    fn value_type(&self) -> glib::Type {
693        Self::static_type()
694    }
695}
696
697impl From<DBusCallFlags> for glib::Value {
698    #[inline]
699    fn from(v: DBusCallFlags) -> Self {
700        ToValue::to_value(&v)
701    }
702}
703
704bitflags! {
705    /// Capabilities negotiated with the remote peer.
706    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
707    #[doc(alias = "GDBusCapabilityFlags")]
708    pub struct DBusCapabilityFlags: u32 {
709        /// No flags set.
710        #[doc(alias = "G_DBUS_CAPABILITY_FLAGS_NONE")]
711        const NONE = ffi::G_DBUS_CAPABILITY_FLAGS_NONE as _;
712        /// The connection
713        /// supports exchanging UNIX file descriptors with the remote peer.
714        #[doc(alias = "G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING")]
715        const UNIX_FD_PASSING = ffi::G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING as _;
716    }
717}
718
719#[doc(hidden)]
720impl IntoGlib for DBusCapabilityFlags {
721    type GlibType = ffi::GDBusCapabilityFlags;
722
723    #[inline]
724    fn into_glib(self) -> ffi::GDBusCapabilityFlags {
725        self.bits()
726    }
727}
728
729#[doc(hidden)]
730impl FromGlib<ffi::GDBusCapabilityFlags> for DBusCapabilityFlags {
731    #[inline]
732    unsafe fn from_glib(value: ffi::GDBusCapabilityFlags) -> Self {
733        Self::from_bits_truncate(value)
734    }
735}
736
737impl StaticType for DBusCapabilityFlags {
738    #[inline]
739    #[doc(alias = "g_dbus_capability_flags_get_type")]
740    fn static_type() -> glib::Type {
741        unsafe { from_glib(ffi::g_dbus_capability_flags_get_type()) }
742    }
743}
744
745impl glib::HasParamSpec for DBusCapabilityFlags {
746    type ParamSpec = glib::ParamSpecFlags;
747    type SetValue = Self;
748    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
749
750    fn param_spec_builder() -> Self::BuilderFn {
751        Self::ParamSpec::builder
752    }
753}
754
755impl glib::value::ValueType for DBusCapabilityFlags {
756    type Type = Self;
757}
758
759unsafe impl<'a> glib::value::FromValue<'a> for DBusCapabilityFlags {
760    type Checker = glib::value::GenericValueTypeChecker<Self>;
761
762    #[inline]
763    unsafe fn from_value(value: &'a glib::Value) -> Self {
764        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
765    }
766}
767
768impl ToValue for DBusCapabilityFlags {
769    #[inline]
770    fn to_value(&self) -> glib::Value {
771        let mut value = glib::Value::for_value_type::<Self>();
772        unsafe {
773            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
774        }
775        value
776    }
777
778    #[inline]
779    fn value_type(&self) -> glib::Type {
780        Self::static_type()
781    }
782}
783
784impl From<DBusCapabilityFlags> for glib::Value {
785    #[inline]
786    fn from(v: DBusCapabilityFlags) -> Self {
787        ToValue::to_value(&v)
788    }
789}
790
791bitflags! {
792    /// Flags used when creating a new #GDBusConnection.
793    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
794    #[doc(alias = "GDBusConnectionFlags")]
795    pub struct DBusConnectionFlags: u32 {
796        /// No flags set.
797        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_NONE")]
798        const NONE = ffi::G_DBUS_CONNECTION_FLAGS_NONE as _;
799        /// Perform authentication against server.
800        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT")]
801        const AUTHENTICATION_CLIENT = ffi::G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT as _;
802        /// Perform authentication against client.
803        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER")]
804        const AUTHENTICATION_SERVER = ffi::G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER as _;
805        /// When
806        /// authenticating as a server, allow the anonymous authentication
807        /// method.
808        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS")]
809        const AUTHENTICATION_ALLOW_ANONYMOUS = ffi::G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS as _;
810        /// Pass this flag if connecting to a peer that is a
811        /// message bus. This means that the Hello() method will be invoked as part of the connection setup.
812        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION")]
813        const MESSAGE_BUS_CONNECTION = ffi::G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION as _;
814        /// If set, processing of D-Bus messages is
815        /// delayed until g_dbus_connection_start_message_processing() is called.
816        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING")]
817        const DELAY_MESSAGE_PROCESSING = ffi::G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING as _;
818        /// When authenticating
819        /// as a server, require the UID of the peer to be the same as the UID of the server. (Since: 2.68)
820        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER")]
821        const AUTHENTICATION_REQUIRE_SAME_USER = ffi::G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER as _;
822        /// When authenticating, try to use
823        ///  protocols that work across a Linux user namespace boundary, even if this
824        ///  reduces interoperability with older D-Bus implementations. This currently
825        ///  affects client-side `EXTERNAL` authentication, for which this flag makes
826        ///  connections to a server in another user namespace succeed, but causes
827        ///  a deadlock when connecting to a GDBus server older than 2.73.3. Since: 2.74
828        #[cfg(feature = "v2_74")]
829        #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
830        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_CROSS_NAMESPACE")]
831        const CROSS_NAMESPACE = ffi::G_DBUS_CONNECTION_FLAGS_CROSS_NAMESPACE as _;
832    }
833}
834
835#[doc(hidden)]
836impl IntoGlib for DBusConnectionFlags {
837    type GlibType = ffi::GDBusConnectionFlags;
838
839    #[inline]
840    fn into_glib(self) -> ffi::GDBusConnectionFlags {
841        self.bits()
842    }
843}
844
845#[doc(hidden)]
846impl FromGlib<ffi::GDBusConnectionFlags> for DBusConnectionFlags {
847    #[inline]
848    unsafe fn from_glib(value: ffi::GDBusConnectionFlags) -> Self {
849        Self::from_bits_truncate(value)
850    }
851}
852
853impl StaticType for DBusConnectionFlags {
854    #[inline]
855    #[doc(alias = "g_dbus_connection_flags_get_type")]
856    fn static_type() -> glib::Type {
857        unsafe { from_glib(ffi::g_dbus_connection_flags_get_type()) }
858    }
859}
860
861impl glib::HasParamSpec for DBusConnectionFlags {
862    type ParamSpec = glib::ParamSpecFlags;
863    type SetValue = Self;
864    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
865
866    fn param_spec_builder() -> Self::BuilderFn {
867        Self::ParamSpec::builder
868    }
869}
870
871impl glib::value::ValueType for DBusConnectionFlags {
872    type Type = Self;
873}
874
875unsafe impl<'a> glib::value::FromValue<'a> for DBusConnectionFlags {
876    type Checker = glib::value::GenericValueTypeChecker<Self>;
877
878    #[inline]
879    unsafe fn from_value(value: &'a glib::Value) -> Self {
880        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
881    }
882}
883
884impl ToValue for DBusConnectionFlags {
885    #[inline]
886    fn to_value(&self) -> glib::Value {
887        let mut value = glib::Value::for_value_type::<Self>();
888        unsafe {
889            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
890        }
891        value
892    }
893
894    #[inline]
895    fn value_type(&self) -> glib::Type {
896        Self::static_type()
897    }
898}
899
900impl From<DBusConnectionFlags> for glib::Value {
901    #[inline]
902    fn from(v: DBusConnectionFlags) -> Self {
903        ToValue::to_value(&v)
904    }
905}
906
907bitflags! {
908    /// Flags describing the behavior of a #GDBusInterfaceSkeleton instance.
909    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
910    #[doc(alias = "GDBusInterfaceSkeletonFlags")]
911    pub struct DBusInterfaceSkeletonFlags: u32 {
912        /// No flags set.
913        #[doc(alias = "G_DBUS_INTERFACE_SKELETON_FLAGS_NONE")]
914        const NONE = ffi::G_DBUS_INTERFACE_SKELETON_FLAGS_NONE as _;
915        /// Each method invocation is handled in
916        ///   a thread dedicated to the invocation. This means that the method implementation can use blocking IO
917        ///   without blocking any other part of the process. It also means that the method implementation must
918        ///   use locking to access data structures used by other threads.
919        #[doc(alias = "G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD")]
920        const HANDLE_METHOD_INVOCATIONS_IN_THREAD = ffi::G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD as _;
921    }
922}
923
924#[doc(hidden)]
925impl IntoGlib for DBusInterfaceSkeletonFlags {
926    type GlibType = ffi::GDBusInterfaceSkeletonFlags;
927
928    #[inline]
929    fn into_glib(self) -> ffi::GDBusInterfaceSkeletonFlags {
930        self.bits()
931    }
932}
933
934#[doc(hidden)]
935impl FromGlib<ffi::GDBusInterfaceSkeletonFlags> for DBusInterfaceSkeletonFlags {
936    #[inline]
937    unsafe fn from_glib(value: ffi::GDBusInterfaceSkeletonFlags) -> Self {
938        Self::from_bits_truncate(value)
939    }
940}
941
942impl StaticType for DBusInterfaceSkeletonFlags {
943    #[inline]
944    #[doc(alias = "g_dbus_interface_skeleton_flags_get_type")]
945    fn static_type() -> glib::Type {
946        unsafe { from_glib(ffi::g_dbus_interface_skeleton_flags_get_type()) }
947    }
948}
949
950impl glib::HasParamSpec for DBusInterfaceSkeletonFlags {
951    type ParamSpec = glib::ParamSpecFlags;
952    type SetValue = Self;
953    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
954
955    fn param_spec_builder() -> Self::BuilderFn {
956        Self::ParamSpec::builder
957    }
958}
959
960impl glib::value::ValueType for DBusInterfaceSkeletonFlags {
961    type Type = Self;
962}
963
964unsafe impl<'a> glib::value::FromValue<'a> for DBusInterfaceSkeletonFlags {
965    type Checker = glib::value::GenericValueTypeChecker<Self>;
966
967    #[inline]
968    unsafe fn from_value(value: &'a glib::Value) -> Self {
969        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
970    }
971}
972
973impl ToValue for DBusInterfaceSkeletonFlags {
974    #[inline]
975    fn to_value(&self) -> glib::Value {
976        let mut value = glib::Value::for_value_type::<Self>();
977        unsafe {
978            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
979        }
980        value
981    }
982
983    #[inline]
984    fn value_type(&self) -> glib::Type {
985        Self::static_type()
986    }
987}
988
989impl From<DBusInterfaceSkeletonFlags> for glib::Value {
990    #[inline]
991    fn from(v: DBusInterfaceSkeletonFlags) -> Self {
992        ToValue::to_value(&v)
993    }
994}
995
996bitflags! {
997    /// Message flags used in #GDBusMessage.
998    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
999    #[doc(alias = "GDBusMessageFlags")]
1000    pub struct DBusMessageFlags: u32 {
1001        /// No flags set.
1002        #[doc(alias = "G_DBUS_MESSAGE_FLAGS_NONE")]
1003        const NONE = ffi::G_DBUS_MESSAGE_FLAGS_NONE as _;
1004        /// A reply is not expected.
1005        #[doc(alias = "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED")]
1006        const NO_REPLY_EXPECTED = ffi::G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED as _;
1007        /// The bus must not launch an
1008        /// owner for the destination name in response to this message.
1009        #[doc(alias = "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START")]
1010        const NO_AUTO_START = ffi::G_DBUS_MESSAGE_FLAGS_NO_AUTO_START as _;
1011        /// If set on a method
1012        /// call, this flag means that the caller is prepared to wait for interactive
1013        /// authorization. Since 2.46.
1014        #[doc(alias = "G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION")]
1015        const ALLOW_INTERACTIVE_AUTHORIZATION = ffi::G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION as _;
1016    }
1017}
1018
1019#[doc(hidden)]
1020impl IntoGlib for DBusMessageFlags {
1021    type GlibType = ffi::GDBusMessageFlags;
1022
1023    #[inline]
1024    fn into_glib(self) -> ffi::GDBusMessageFlags {
1025        self.bits()
1026    }
1027}
1028
1029#[doc(hidden)]
1030impl FromGlib<ffi::GDBusMessageFlags> for DBusMessageFlags {
1031    #[inline]
1032    unsafe fn from_glib(value: ffi::GDBusMessageFlags) -> Self {
1033        Self::from_bits_truncate(value)
1034    }
1035}
1036
1037impl StaticType for DBusMessageFlags {
1038    #[inline]
1039    #[doc(alias = "g_dbus_message_flags_get_type")]
1040    fn static_type() -> glib::Type {
1041        unsafe { from_glib(ffi::g_dbus_message_flags_get_type()) }
1042    }
1043}
1044
1045impl glib::HasParamSpec for DBusMessageFlags {
1046    type ParamSpec = glib::ParamSpecFlags;
1047    type SetValue = Self;
1048    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1049
1050    fn param_spec_builder() -> Self::BuilderFn {
1051        Self::ParamSpec::builder
1052    }
1053}
1054
1055impl glib::value::ValueType for DBusMessageFlags {
1056    type Type = Self;
1057}
1058
1059unsafe impl<'a> glib::value::FromValue<'a> for DBusMessageFlags {
1060    type Checker = glib::value::GenericValueTypeChecker<Self>;
1061
1062    #[inline]
1063    unsafe fn from_value(value: &'a glib::Value) -> Self {
1064        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1065    }
1066}
1067
1068impl ToValue for DBusMessageFlags {
1069    #[inline]
1070    fn to_value(&self) -> glib::Value {
1071        let mut value = glib::Value::for_value_type::<Self>();
1072        unsafe {
1073            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1074        }
1075        value
1076    }
1077
1078    #[inline]
1079    fn value_type(&self) -> glib::Type {
1080        Self::static_type()
1081    }
1082}
1083
1084impl From<DBusMessageFlags> for glib::Value {
1085    #[inline]
1086    fn from(v: DBusMessageFlags) -> Self {
1087        ToValue::to_value(&v)
1088    }
1089}
1090
1091bitflags! {
1092    /// Flags used when constructing a #GDBusObjectManagerClient.
1093    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1094    #[doc(alias = "GDBusObjectManagerClientFlags")]
1095    pub struct DBusObjectManagerClientFlags: u32 {
1096        /// No flags set.
1097        #[doc(alias = "G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE")]
1098        const NONE = ffi::G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE as _;
1099        /// If not set and the
1100        ///   manager is for a well-known name, then request the bus to launch
1101        ///   an owner for the name if no-one owns the name. This flag can only
1102        ///   be used in managers for well-known names.
1103        #[doc(alias = "G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START")]
1104        const DO_NOT_AUTO_START = ffi::G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START as _;
1105    }
1106}
1107
1108#[doc(hidden)]
1109impl IntoGlib for DBusObjectManagerClientFlags {
1110    type GlibType = ffi::GDBusObjectManagerClientFlags;
1111
1112    #[inline]
1113    fn into_glib(self) -> ffi::GDBusObjectManagerClientFlags {
1114        self.bits()
1115    }
1116}
1117
1118#[doc(hidden)]
1119impl FromGlib<ffi::GDBusObjectManagerClientFlags> for DBusObjectManagerClientFlags {
1120    #[inline]
1121    unsafe fn from_glib(value: ffi::GDBusObjectManagerClientFlags) -> Self {
1122        Self::from_bits_truncate(value)
1123    }
1124}
1125
1126impl StaticType for DBusObjectManagerClientFlags {
1127    #[inline]
1128    #[doc(alias = "g_dbus_object_manager_client_flags_get_type")]
1129    fn static_type() -> glib::Type {
1130        unsafe { from_glib(ffi::g_dbus_object_manager_client_flags_get_type()) }
1131    }
1132}
1133
1134impl glib::HasParamSpec for DBusObjectManagerClientFlags {
1135    type ParamSpec = glib::ParamSpecFlags;
1136    type SetValue = Self;
1137    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1138
1139    fn param_spec_builder() -> Self::BuilderFn {
1140        Self::ParamSpec::builder
1141    }
1142}
1143
1144impl glib::value::ValueType for DBusObjectManagerClientFlags {
1145    type Type = Self;
1146}
1147
1148unsafe impl<'a> glib::value::FromValue<'a> for DBusObjectManagerClientFlags {
1149    type Checker = glib::value::GenericValueTypeChecker<Self>;
1150
1151    #[inline]
1152    unsafe fn from_value(value: &'a glib::Value) -> Self {
1153        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1154    }
1155}
1156
1157impl ToValue for DBusObjectManagerClientFlags {
1158    #[inline]
1159    fn to_value(&self) -> glib::Value {
1160        let mut value = glib::Value::for_value_type::<Self>();
1161        unsafe {
1162            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1163        }
1164        value
1165    }
1166
1167    #[inline]
1168    fn value_type(&self) -> glib::Type {
1169        Self::static_type()
1170    }
1171}
1172
1173impl From<DBusObjectManagerClientFlags> for glib::Value {
1174    #[inline]
1175    fn from(v: DBusObjectManagerClientFlags) -> Self {
1176        ToValue::to_value(&v)
1177    }
1178}
1179
1180bitflags! {
1181    /// Flags describing the access control of a D-Bus property.
1182    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1183    #[doc(alias = "GDBusPropertyInfoFlags")]
1184    pub struct DBusPropertyInfoFlags: u32 {
1185        /// No flags set.
1186        #[doc(alias = "G_DBUS_PROPERTY_INFO_FLAGS_NONE")]
1187        const NONE = ffi::G_DBUS_PROPERTY_INFO_FLAGS_NONE as _;
1188        /// Property is readable.
1189        #[doc(alias = "G_DBUS_PROPERTY_INFO_FLAGS_READABLE")]
1190        const READABLE = ffi::G_DBUS_PROPERTY_INFO_FLAGS_READABLE as _;
1191        /// Property is writable.
1192        #[doc(alias = "G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE")]
1193        const WRITABLE = ffi::G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE as _;
1194    }
1195}
1196
1197#[doc(hidden)]
1198impl IntoGlib for DBusPropertyInfoFlags {
1199    type GlibType = ffi::GDBusPropertyInfoFlags;
1200
1201    #[inline]
1202    fn into_glib(self) -> ffi::GDBusPropertyInfoFlags {
1203        self.bits()
1204    }
1205}
1206
1207#[doc(hidden)]
1208impl FromGlib<ffi::GDBusPropertyInfoFlags> for DBusPropertyInfoFlags {
1209    #[inline]
1210    unsafe fn from_glib(value: ffi::GDBusPropertyInfoFlags) -> Self {
1211        Self::from_bits_truncate(value)
1212    }
1213}
1214
1215impl StaticType for DBusPropertyInfoFlags {
1216    #[inline]
1217    #[doc(alias = "g_dbus_property_info_flags_get_type")]
1218    fn static_type() -> glib::Type {
1219        unsafe { from_glib(ffi::g_dbus_property_info_flags_get_type()) }
1220    }
1221}
1222
1223impl glib::HasParamSpec for DBusPropertyInfoFlags {
1224    type ParamSpec = glib::ParamSpecFlags;
1225    type SetValue = Self;
1226    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1227
1228    fn param_spec_builder() -> Self::BuilderFn {
1229        Self::ParamSpec::builder
1230    }
1231}
1232
1233impl glib::value::ValueType for DBusPropertyInfoFlags {
1234    type Type = Self;
1235}
1236
1237unsafe impl<'a> glib::value::FromValue<'a> for DBusPropertyInfoFlags {
1238    type Checker = glib::value::GenericValueTypeChecker<Self>;
1239
1240    #[inline]
1241    unsafe fn from_value(value: &'a glib::Value) -> Self {
1242        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1243    }
1244}
1245
1246impl ToValue for DBusPropertyInfoFlags {
1247    #[inline]
1248    fn to_value(&self) -> glib::Value {
1249        let mut value = glib::Value::for_value_type::<Self>();
1250        unsafe {
1251            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1252        }
1253        value
1254    }
1255
1256    #[inline]
1257    fn value_type(&self) -> glib::Type {
1258        Self::static_type()
1259    }
1260}
1261
1262impl From<DBusPropertyInfoFlags> for glib::Value {
1263    #[inline]
1264    fn from(v: DBusPropertyInfoFlags) -> Self {
1265        ToValue::to_value(&v)
1266    }
1267}
1268
1269bitflags! {
1270    /// Flags used when constructing an instance of a #GDBusProxy derived class.
1271    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1272    #[doc(alias = "GDBusProxyFlags")]
1273    pub struct DBusProxyFlags: u32 {
1274        /// No flags set.
1275        #[doc(alias = "G_DBUS_PROXY_FLAGS_NONE")]
1276        const NONE = ffi::G_DBUS_PROXY_FLAGS_NONE as _;
1277        /// Don't load properties.
1278        #[doc(alias = "G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES")]
1279        const DO_NOT_LOAD_PROPERTIES = ffi::G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES as _;
1280        /// Don't connect to signals on the remote object.
1281        #[doc(alias = "G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS")]
1282        const DO_NOT_CONNECT_SIGNALS = ffi::G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS as _;
1283        /// If the proxy is for a well-known name,
1284        /// do not ask the bus to launch an owner during proxy initialization or a method call.
1285        /// This flag is only meaningful in proxies for well-known names.
1286        #[doc(alias = "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START")]
1287        const DO_NOT_AUTO_START = ffi::G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START as _;
1288        /// If set, the property value for any __invalidated property__ will be (asynchronously) retrieved upon receiving the [`PropertiesChanged`](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties) D-Bus signal and the property will not cause emission of the #GDBusProxy::g-properties-changed signal. When the value is received the #GDBusProxy::g-properties-changed signal is emitted for the property along with the retrieved value. Since 2.32.
1289        #[doc(alias = "G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES")]
1290        const GET_INVALIDATED_PROPERTIES = ffi::G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES as _;
1291        /// If the proxy is for a well-known name,
1292        /// do not ask the bus to launch an owner during proxy initialization, but allow it to be
1293        /// autostarted by a method call. This flag is only meaningful in proxies for well-known names,
1294        /// and only if [`DO_NOT_AUTO_START`][Self::DO_NOT_AUTO_START] is not also specified.
1295        #[doc(alias = "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION")]
1296        const DO_NOT_AUTO_START_AT_CONSTRUCTION = ffi::G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION as _;
1297        /// Don't actually send the AddMatch D-Bus
1298        ///    call for this signal subscription. This gives you more control
1299        ///    over which match rules you add (but you must add them manually). (Since: 2.72)
1300        #[cfg(feature = "v2_70")]
1301        #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
1302        #[doc(alias = "G_DBUS_PROXY_FLAGS_NO_MATCH_RULE")]
1303        const NO_MATCH_RULE = ffi::G_DBUS_PROXY_FLAGS_NO_MATCH_RULE as _;
1304    }
1305}
1306
1307#[doc(hidden)]
1308impl IntoGlib for DBusProxyFlags {
1309    type GlibType = ffi::GDBusProxyFlags;
1310
1311    #[inline]
1312    fn into_glib(self) -> ffi::GDBusProxyFlags {
1313        self.bits()
1314    }
1315}
1316
1317#[doc(hidden)]
1318impl FromGlib<ffi::GDBusProxyFlags> for DBusProxyFlags {
1319    #[inline]
1320    unsafe fn from_glib(value: ffi::GDBusProxyFlags) -> Self {
1321        Self::from_bits_truncate(value)
1322    }
1323}
1324
1325impl StaticType for DBusProxyFlags {
1326    #[inline]
1327    #[doc(alias = "g_dbus_proxy_flags_get_type")]
1328    fn static_type() -> glib::Type {
1329        unsafe { from_glib(ffi::g_dbus_proxy_flags_get_type()) }
1330    }
1331}
1332
1333impl glib::HasParamSpec for DBusProxyFlags {
1334    type ParamSpec = glib::ParamSpecFlags;
1335    type SetValue = Self;
1336    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1337
1338    fn param_spec_builder() -> Self::BuilderFn {
1339        Self::ParamSpec::builder
1340    }
1341}
1342
1343impl glib::value::ValueType for DBusProxyFlags {
1344    type Type = Self;
1345}
1346
1347unsafe impl<'a> glib::value::FromValue<'a> for DBusProxyFlags {
1348    type Checker = glib::value::GenericValueTypeChecker<Self>;
1349
1350    #[inline]
1351    unsafe fn from_value(value: &'a glib::Value) -> Self {
1352        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1353    }
1354}
1355
1356impl ToValue for DBusProxyFlags {
1357    #[inline]
1358    fn to_value(&self) -> glib::Value {
1359        let mut value = glib::Value::for_value_type::<Self>();
1360        unsafe {
1361            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1362        }
1363        value
1364    }
1365
1366    #[inline]
1367    fn value_type(&self) -> glib::Type {
1368        Self::static_type()
1369    }
1370}
1371
1372impl From<DBusProxyFlags> for glib::Value {
1373    #[inline]
1374    fn from(v: DBusProxyFlags) -> Self {
1375        ToValue::to_value(&v)
1376    }
1377}
1378
1379bitflags! {
1380    /// Flags used when sending #GDBusMessages on a #GDBusConnection.
1381    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1382    #[doc(alias = "GDBusSendMessageFlags")]
1383    pub struct DBusSendMessageFlags: u32 {
1384        /// No flags set.
1385        #[doc(alias = "G_DBUS_SEND_MESSAGE_FLAGS_NONE")]
1386        const NONE = ffi::G_DBUS_SEND_MESSAGE_FLAGS_NONE as _;
1387        /// Do not automatically
1388        /// assign a serial number from the #GDBusConnection object when
1389        /// sending a message.
1390        #[doc(alias = "G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL")]
1391        const PRESERVE_SERIAL = ffi::G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL as _;
1392    }
1393}
1394
1395#[doc(hidden)]
1396impl IntoGlib for DBusSendMessageFlags {
1397    type GlibType = ffi::GDBusSendMessageFlags;
1398
1399    #[inline]
1400    fn into_glib(self) -> ffi::GDBusSendMessageFlags {
1401        self.bits()
1402    }
1403}
1404
1405#[doc(hidden)]
1406impl FromGlib<ffi::GDBusSendMessageFlags> for DBusSendMessageFlags {
1407    #[inline]
1408    unsafe fn from_glib(value: ffi::GDBusSendMessageFlags) -> Self {
1409        Self::from_bits_truncate(value)
1410    }
1411}
1412
1413impl StaticType for DBusSendMessageFlags {
1414    #[inline]
1415    #[doc(alias = "g_dbus_send_message_flags_get_type")]
1416    fn static_type() -> glib::Type {
1417        unsafe { from_glib(ffi::g_dbus_send_message_flags_get_type()) }
1418    }
1419}
1420
1421impl glib::HasParamSpec for DBusSendMessageFlags {
1422    type ParamSpec = glib::ParamSpecFlags;
1423    type SetValue = Self;
1424    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1425
1426    fn param_spec_builder() -> Self::BuilderFn {
1427        Self::ParamSpec::builder
1428    }
1429}
1430
1431impl glib::value::ValueType for DBusSendMessageFlags {
1432    type Type = Self;
1433}
1434
1435unsafe impl<'a> glib::value::FromValue<'a> for DBusSendMessageFlags {
1436    type Checker = glib::value::GenericValueTypeChecker<Self>;
1437
1438    #[inline]
1439    unsafe fn from_value(value: &'a glib::Value) -> Self {
1440        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1441    }
1442}
1443
1444impl ToValue for DBusSendMessageFlags {
1445    #[inline]
1446    fn to_value(&self) -> glib::Value {
1447        let mut value = glib::Value::for_value_type::<Self>();
1448        unsafe {
1449            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1450        }
1451        value
1452    }
1453
1454    #[inline]
1455    fn value_type(&self) -> glib::Type {
1456        Self::static_type()
1457    }
1458}
1459
1460impl From<DBusSendMessageFlags> for glib::Value {
1461    #[inline]
1462    fn from(v: DBusSendMessageFlags) -> Self {
1463        ToValue::to_value(&v)
1464    }
1465}
1466
1467bitflags! {
1468    /// Flags used when creating a #GDBusServer.
1469    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1470    #[doc(alias = "GDBusServerFlags")]
1471    pub struct DBusServerFlags: u32 {
1472        /// No flags set.
1473        #[doc(alias = "G_DBUS_SERVER_FLAGS_NONE")]
1474        const NONE = ffi::G_DBUS_SERVER_FLAGS_NONE as _;
1475        /// All #GDBusServer::new-connection
1476        /// signals will run in separated dedicated threads (see signal for
1477        /// details).
1478        #[doc(alias = "G_DBUS_SERVER_FLAGS_RUN_IN_THREAD")]
1479        const RUN_IN_THREAD = ffi::G_DBUS_SERVER_FLAGS_RUN_IN_THREAD as _;
1480        /// Allow the anonymous
1481        /// authentication method.
1482        #[doc(alias = "G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS")]
1483        const AUTHENTICATION_ALLOW_ANONYMOUS = ffi::G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS as _;
1484        /// Require the UID of the
1485        /// peer to be the same as the UID of the server when authenticating. (Since: 2.68)
1486        #[doc(alias = "G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER")]
1487        const AUTHENTICATION_REQUIRE_SAME_USER = ffi::G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER as _;
1488    }
1489}
1490
1491#[doc(hidden)]
1492impl IntoGlib for DBusServerFlags {
1493    type GlibType = ffi::GDBusServerFlags;
1494
1495    #[inline]
1496    fn into_glib(self) -> ffi::GDBusServerFlags {
1497        self.bits()
1498    }
1499}
1500
1501#[doc(hidden)]
1502impl FromGlib<ffi::GDBusServerFlags> for DBusServerFlags {
1503    #[inline]
1504    unsafe fn from_glib(value: ffi::GDBusServerFlags) -> Self {
1505        Self::from_bits_truncate(value)
1506    }
1507}
1508
1509impl StaticType for DBusServerFlags {
1510    #[inline]
1511    #[doc(alias = "g_dbus_server_flags_get_type")]
1512    fn static_type() -> glib::Type {
1513        unsafe { from_glib(ffi::g_dbus_server_flags_get_type()) }
1514    }
1515}
1516
1517impl glib::HasParamSpec for DBusServerFlags {
1518    type ParamSpec = glib::ParamSpecFlags;
1519    type SetValue = Self;
1520    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1521
1522    fn param_spec_builder() -> Self::BuilderFn {
1523        Self::ParamSpec::builder
1524    }
1525}
1526
1527impl glib::value::ValueType for DBusServerFlags {
1528    type Type = Self;
1529}
1530
1531unsafe impl<'a> glib::value::FromValue<'a> for DBusServerFlags {
1532    type Checker = glib::value::GenericValueTypeChecker<Self>;
1533
1534    #[inline]
1535    unsafe fn from_value(value: &'a glib::Value) -> Self {
1536        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1537    }
1538}
1539
1540impl ToValue for DBusServerFlags {
1541    #[inline]
1542    fn to_value(&self) -> glib::Value {
1543        let mut value = glib::Value::for_value_type::<Self>();
1544        unsafe {
1545            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1546        }
1547        value
1548    }
1549
1550    #[inline]
1551    fn value_type(&self) -> glib::Type {
1552        Self::static_type()
1553    }
1554}
1555
1556impl From<DBusServerFlags> for glib::Value {
1557    #[inline]
1558    fn from(v: DBusServerFlags) -> Self {
1559        ToValue::to_value(&v)
1560    }
1561}
1562
1563bitflags! {
1564    /// Flags used when subscribing to signals via g_dbus_connection_signal_subscribe().
1565    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1566    #[doc(alias = "GDBusSignalFlags")]
1567    pub struct DBusSignalFlags: u32 {
1568        /// No flags set.
1569        #[doc(alias = "G_DBUS_SIGNAL_FLAGS_NONE")]
1570        const NONE = ffi::G_DBUS_SIGNAL_FLAGS_NONE as _;
1571        /// Don't actually send the AddMatch
1572        /// D-Bus call for this signal subscription.  This gives you more control
1573        /// over which match rules you add (but you must add them manually).
1574        #[doc(alias = "G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE")]
1575        const NO_MATCH_RULE = ffi::G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE as _;
1576        /// Match first arguments that
1577        /// contain a bus or interface name with the given namespace.
1578        #[doc(alias = "G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE")]
1579        const MATCH_ARG0_NAMESPACE = ffi::G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE as _;
1580        /// Match first arguments that
1581        /// contain an object path that is either equivalent to the given path,
1582        /// or one of the paths is a subpath of the other.
1583        #[doc(alias = "G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH")]
1584        const MATCH_ARG0_PATH = ffi::G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH as _;
1585    }
1586}
1587
1588#[doc(hidden)]
1589impl IntoGlib for DBusSignalFlags {
1590    type GlibType = ffi::GDBusSignalFlags;
1591
1592    #[inline]
1593    fn into_glib(self) -> ffi::GDBusSignalFlags {
1594        self.bits()
1595    }
1596}
1597
1598#[doc(hidden)]
1599impl FromGlib<ffi::GDBusSignalFlags> for DBusSignalFlags {
1600    #[inline]
1601    unsafe fn from_glib(value: ffi::GDBusSignalFlags) -> Self {
1602        Self::from_bits_truncate(value)
1603    }
1604}
1605
1606impl StaticType for DBusSignalFlags {
1607    #[inline]
1608    #[doc(alias = "g_dbus_signal_flags_get_type")]
1609    fn static_type() -> glib::Type {
1610        unsafe { from_glib(ffi::g_dbus_signal_flags_get_type()) }
1611    }
1612}
1613
1614impl glib::HasParamSpec for DBusSignalFlags {
1615    type ParamSpec = glib::ParamSpecFlags;
1616    type SetValue = Self;
1617    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1618
1619    fn param_spec_builder() -> Self::BuilderFn {
1620        Self::ParamSpec::builder
1621    }
1622}
1623
1624impl glib::value::ValueType for DBusSignalFlags {
1625    type Type = Self;
1626}
1627
1628unsafe impl<'a> glib::value::FromValue<'a> for DBusSignalFlags {
1629    type Checker = glib::value::GenericValueTypeChecker<Self>;
1630
1631    #[inline]
1632    unsafe fn from_value(value: &'a glib::Value) -> Self {
1633        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1634    }
1635}
1636
1637impl ToValue for DBusSignalFlags {
1638    #[inline]
1639    fn to_value(&self) -> glib::Value {
1640        let mut value = glib::Value::for_value_type::<Self>();
1641        unsafe {
1642            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1643        }
1644        value
1645    }
1646
1647    #[inline]
1648    fn value_type(&self) -> glib::Type {
1649        Self::static_type()
1650    }
1651}
1652
1653impl From<DBusSignalFlags> for glib::Value {
1654    #[inline]
1655    fn from(v: DBusSignalFlags) -> Self {
1656        ToValue::to_value(&v)
1657    }
1658}
1659
1660bitflags! {
1661    /// Flags passed to g_dbus_connection_register_subtree().
1662    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1663    #[doc(alias = "GDBusSubtreeFlags")]
1664    pub struct DBusSubtreeFlags: u32 {
1665        /// No flags set.
1666        #[doc(alias = "G_DBUS_SUBTREE_FLAGS_NONE")]
1667        const NONE = ffi::G_DBUS_SUBTREE_FLAGS_NONE as _;
1668        /// Method calls to objects not in the enumerated range
1669        ///                                                       will still be dispatched. This is useful if you want
1670        ///                                                       to dynamically spawn objects in the subtree.
1671        #[doc(alias = "G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES")]
1672        const DISPATCH_TO_UNENUMERATED_NODES = ffi::G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES as _;
1673    }
1674}
1675
1676#[doc(hidden)]
1677impl IntoGlib for DBusSubtreeFlags {
1678    type GlibType = ffi::GDBusSubtreeFlags;
1679
1680    #[inline]
1681    fn into_glib(self) -> ffi::GDBusSubtreeFlags {
1682        self.bits()
1683    }
1684}
1685
1686#[doc(hidden)]
1687impl FromGlib<ffi::GDBusSubtreeFlags> for DBusSubtreeFlags {
1688    #[inline]
1689    unsafe fn from_glib(value: ffi::GDBusSubtreeFlags) -> Self {
1690        Self::from_bits_truncate(value)
1691    }
1692}
1693
1694impl StaticType for DBusSubtreeFlags {
1695    #[inline]
1696    #[doc(alias = "g_dbus_subtree_flags_get_type")]
1697    fn static_type() -> glib::Type {
1698        unsafe { from_glib(ffi::g_dbus_subtree_flags_get_type()) }
1699    }
1700}
1701
1702impl glib::HasParamSpec for DBusSubtreeFlags {
1703    type ParamSpec = glib::ParamSpecFlags;
1704    type SetValue = Self;
1705    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1706
1707    fn param_spec_builder() -> Self::BuilderFn {
1708        Self::ParamSpec::builder
1709    }
1710}
1711
1712impl glib::value::ValueType for DBusSubtreeFlags {
1713    type Type = Self;
1714}
1715
1716unsafe impl<'a> glib::value::FromValue<'a> for DBusSubtreeFlags {
1717    type Checker = glib::value::GenericValueTypeChecker<Self>;
1718
1719    #[inline]
1720    unsafe fn from_value(value: &'a glib::Value) -> Self {
1721        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1722    }
1723}
1724
1725impl ToValue for DBusSubtreeFlags {
1726    #[inline]
1727    fn to_value(&self) -> glib::Value {
1728        let mut value = glib::Value::for_value_type::<Self>();
1729        unsafe {
1730            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1731        }
1732        value
1733    }
1734
1735    #[inline]
1736    fn value_type(&self) -> glib::Type {
1737        Self::static_type()
1738    }
1739}
1740
1741impl From<DBusSubtreeFlags> for glib::Value {
1742    #[inline]
1743    fn from(v: DBusSubtreeFlags) -> Self {
1744        ToValue::to_value(&v)
1745    }
1746}
1747
1748bitflags! {
1749    /// Flags used when starting a drive.
1750    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1751    #[doc(alias = "GDriveStartFlags")]
1752    pub struct DriveStartFlags: u32 {
1753        /// No flags set.
1754        #[doc(alias = "G_DRIVE_START_NONE")]
1755        const NONE = ffi::G_DRIVE_START_NONE as _;
1756    }
1757}
1758
1759#[doc(hidden)]
1760impl IntoGlib for DriveStartFlags {
1761    type GlibType = ffi::GDriveStartFlags;
1762
1763    #[inline]
1764    fn into_glib(self) -> ffi::GDriveStartFlags {
1765        self.bits()
1766    }
1767}
1768
1769#[doc(hidden)]
1770impl FromGlib<ffi::GDriveStartFlags> for DriveStartFlags {
1771    #[inline]
1772    unsafe fn from_glib(value: ffi::GDriveStartFlags) -> Self {
1773        Self::from_bits_truncate(value)
1774    }
1775}
1776
1777impl StaticType for DriveStartFlags {
1778    #[inline]
1779    #[doc(alias = "g_drive_start_flags_get_type")]
1780    fn static_type() -> glib::Type {
1781        unsafe { from_glib(ffi::g_drive_start_flags_get_type()) }
1782    }
1783}
1784
1785impl glib::HasParamSpec for DriveStartFlags {
1786    type ParamSpec = glib::ParamSpecFlags;
1787    type SetValue = Self;
1788    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1789
1790    fn param_spec_builder() -> Self::BuilderFn {
1791        Self::ParamSpec::builder
1792    }
1793}
1794
1795impl glib::value::ValueType for DriveStartFlags {
1796    type Type = Self;
1797}
1798
1799unsafe impl<'a> glib::value::FromValue<'a> for DriveStartFlags {
1800    type Checker = glib::value::GenericValueTypeChecker<Self>;
1801
1802    #[inline]
1803    unsafe fn from_value(value: &'a glib::Value) -> Self {
1804        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1805    }
1806}
1807
1808impl ToValue for DriveStartFlags {
1809    #[inline]
1810    fn to_value(&self) -> glib::Value {
1811        let mut value = glib::Value::for_value_type::<Self>();
1812        unsafe {
1813            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1814        }
1815        value
1816    }
1817
1818    #[inline]
1819    fn value_type(&self) -> glib::Type {
1820        Self::static_type()
1821    }
1822}
1823
1824impl From<DriveStartFlags> for glib::Value {
1825    #[inline]
1826    fn from(v: DriveStartFlags) -> Self {
1827        ToValue::to_value(&v)
1828    }
1829}
1830
1831bitflags! {
1832    /// Flags specifying the behaviour of an attribute.
1833    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1834    #[doc(alias = "GFileAttributeInfoFlags")]
1835    pub struct FileAttributeInfoFlags: u32 {
1836        /// no flags set.
1837        #[doc(alias = "G_FILE_ATTRIBUTE_INFO_NONE")]
1838        const NONE = ffi::G_FILE_ATTRIBUTE_INFO_NONE as _;
1839        /// copy the attribute values when the file is copied.
1840        #[doc(alias = "G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE")]
1841        const COPY_WITH_FILE = ffi::G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE as _;
1842        /// copy the attribute values when the file is moved.
1843        #[doc(alias = "G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED")]
1844        const COPY_WHEN_MOVED = ffi::G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED as _;
1845    }
1846}
1847
1848#[doc(hidden)]
1849impl IntoGlib for FileAttributeInfoFlags {
1850    type GlibType = ffi::GFileAttributeInfoFlags;
1851
1852    #[inline]
1853    fn into_glib(self) -> ffi::GFileAttributeInfoFlags {
1854        self.bits()
1855    }
1856}
1857
1858#[doc(hidden)]
1859impl FromGlib<ffi::GFileAttributeInfoFlags> for FileAttributeInfoFlags {
1860    #[inline]
1861    unsafe fn from_glib(value: ffi::GFileAttributeInfoFlags) -> Self {
1862        Self::from_bits_truncate(value)
1863    }
1864}
1865
1866impl StaticType for FileAttributeInfoFlags {
1867    #[inline]
1868    #[doc(alias = "g_file_attribute_info_flags_get_type")]
1869    fn static_type() -> glib::Type {
1870        unsafe { from_glib(ffi::g_file_attribute_info_flags_get_type()) }
1871    }
1872}
1873
1874impl glib::HasParamSpec for FileAttributeInfoFlags {
1875    type ParamSpec = glib::ParamSpecFlags;
1876    type SetValue = Self;
1877    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1878
1879    fn param_spec_builder() -> Self::BuilderFn {
1880        Self::ParamSpec::builder
1881    }
1882}
1883
1884impl glib::value::ValueType for FileAttributeInfoFlags {
1885    type Type = Self;
1886}
1887
1888unsafe impl<'a> glib::value::FromValue<'a> for FileAttributeInfoFlags {
1889    type Checker = glib::value::GenericValueTypeChecker<Self>;
1890
1891    #[inline]
1892    unsafe fn from_value(value: &'a glib::Value) -> Self {
1893        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1894    }
1895}
1896
1897impl ToValue for FileAttributeInfoFlags {
1898    #[inline]
1899    fn to_value(&self) -> glib::Value {
1900        let mut value = glib::Value::for_value_type::<Self>();
1901        unsafe {
1902            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1903        }
1904        value
1905    }
1906
1907    #[inline]
1908    fn value_type(&self) -> glib::Type {
1909        Self::static_type()
1910    }
1911}
1912
1913impl From<FileAttributeInfoFlags> for glib::Value {
1914    #[inline]
1915    fn from(v: FileAttributeInfoFlags) -> Self {
1916        ToValue::to_value(&v)
1917    }
1918}
1919
1920bitflags! {
1921    /// Flags used when copying or moving files.
1922    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1923    #[doc(alias = "GFileCopyFlags")]
1924    pub struct FileCopyFlags: u32 {
1925        /// No flags set.
1926        #[doc(alias = "G_FILE_COPY_NONE")]
1927        const NONE = ffi::G_FILE_COPY_NONE as _;
1928        /// Overwrite any existing files
1929        #[doc(alias = "G_FILE_COPY_OVERWRITE")]
1930        const OVERWRITE = ffi::G_FILE_COPY_OVERWRITE as _;
1931        /// Make a backup of any existing files.
1932        #[doc(alias = "G_FILE_COPY_BACKUP")]
1933        const BACKUP = ffi::G_FILE_COPY_BACKUP as _;
1934        /// Don't follow symlinks.
1935        #[doc(alias = "G_FILE_COPY_NOFOLLOW_SYMLINKS")]
1936        const NOFOLLOW_SYMLINKS = ffi::G_FILE_COPY_NOFOLLOW_SYMLINKS as _;
1937        /// Copy all file metadata instead of just default set used for copy (see #GFileInfo).
1938        #[doc(alias = "G_FILE_COPY_ALL_METADATA")]
1939        const ALL_METADATA = ffi::G_FILE_COPY_ALL_METADATA as _;
1940        /// Don't use copy and delete fallback if native move not supported.
1941        #[doc(alias = "G_FILE_COPY_NO_FALLBACK_FOR_MOVE")]
1942        const NO_FALLBACK_FOR_MOVE = ffi::G_FILE_COPY_NO_FALLBACK_FOR_MOVE as _;
1943        /// Leaves target file with default perms, instead of setting the source file perms.
1944        #[doc(alias = "G_FILE_COPY_TARGET_DEFAULT_PERMS")]
1945        const TARGET_DEFAULT_PERMS = ffi::G_FILE_COPY_TARGET_DEFAULT_PERMS as _;
1946        /// Use default modification
1947        ///     timestamps instead of copying them from the source file. Since 2.80
1948        #[cfg(feature = "v2_80")]
1949        #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1950        #[doc(alias = "G_FILE_COPY_TARGET_DEFAULT_MODIFIED_TIME")]
1951        const TARGET_DEFAULT_MODIFIED_TIME = ffi::G_FILE_COPY_TARGET_DEFAULT_MODIFIED_TIME as _;
1952    }
1953}
1954
1955#[doc(hidden)]
1956impl IntoGlib for FileCopyFlags {
1957    type GlibType = ffi::GFileCopyFlags;
1958
1959    #[inline]
1960    fn into_glib(self) -> ffi::GFileCopyFlags {
1961        self.bits()
1962    }
1963}
1964
1965#[doc(hidden)]
1966impl FromGlib<ffi::GFileCopyFlags> for FileCopyFlags {
1967    #[inline]
1968    unsafe fn from_glib(value: ffi::GFileCopyFlags) -> Self {
1969        Self::from_bits_truncate(value)
1970    }
1971}
1972
1973impl StaticType for FileCopyFlags {
1974    #[inline]
1975    #[doc(alias = "g_file_copy_flags_get_type")]
1976    fn static_type() -> glib::Type {
1977        unsafe { from_glib(ffi::g_file_copy_flags_get_type()) }
1978    }
1979}
1980
1981impl glib::HasParamSpec for FileCopyFlags {
1982    type ParamSpec = glib::ParamSpecFlags;
1983    type SetValue = Self;
1984    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1985
1986    fn param_spec_builder() -> Self::BuilderFn {
1987        Self::ParamSpec::builder
1988    }
1989}
1990
1991impl glib::value::ValueType for FileCopyFlags {
1992    type Type = Self;
1993}
1994
1995unsafe impl<'a> glib::value::FromValue<'a> for FileCopyFlags {
1996    type Checker = glib::value::GenericValueTypeChecker<Self>;
1997
1998    #[inline]
1999    unsafe fn from_value(value: &'a glib::Value) -> Self {
2000        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2001    }
2002}
2003
2004impl ToValue for FileCopyFlags {
2005    #[inline]
2006    fn to_value(&self) -> glib::Value {
2007        let mut value = glib::Value::for_value_type::<Self>();
2008        unsafe {
2009            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2010        }
2011        value
2012    }
2013
2014    #[inline]
2015    fn value_type(&self) -> glib::Type {
2016        Self::static_type()
2017    }
2018}
2019
2020impl From<FileCopyFlags> for glib::Value {
2021    #[inline]
2022    fn from(v: FileCopyFlags) -> Self {
2023        ToValue::to_value(&v)
2024    }
2025}
2026
2027bitflags! {
2028    /// Flags used when an operation may create a file.
2029    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2030    #[doc(alias = "GFileCreateFlags")]
2031    pub struct FileCreateFlags: u32 {
2032        /// No flags set.
2033        #[doc(alias = "G_FILE_CREATE_NONE")]
2034        const NONE = ffi::G_FILE_CREATE_NONE as _;
2035        /// Create a file that can only be
2036        ///    accessed by the current user.
2037        #[doc(alias = "G_FILE_CREATE_PRIVATE")]
2038        const PRIVATE = ffi::G_FILE_CREATE_PRIVATE as _;
2039        /// Replace the destination
2040        ///    as if it didn't exist before. Don't try to keep any old
2041        ///    permissions, replace instead of following links. This
2042        ///    is generally useful if you're doing a "copy over"
2043        ///    rather than a "save new version of" replace operation.
2044        ///    You can think of it as "unlink destination" before
2045        ///    writing to it, although the implementation may not
2046        ///    be exactly like that. This flag can only be used with
2047        ///    g_file_replace() and its variants, including g_file_replace_contents().
2048        ///    Since 2.20
2049        #[doc(alias = "G_FILE_CREATE_REPLACE_DESTINATION")]
2050        const REPLACE_DESTINATION = ffi::G_FILE_CREATE_REPLACE_DESTINATION as _;
2051    }
2052}
2053
2054#[doc(hidden)]
2055impl IntoGlib for FileCreateFlags {
2056    type GlibType = ffi::GFileCreateFlags;
2057
2058    #[inline]
2059    fn into_glib(self) -> ffi::GFileCreateFlags {
2060        self.bits()
2061    }
2062}
2063
2064#[doc(hidden)]
2065impl FromGlib<ffi::GFileCreateFlags> for FileCreateFlags {
2066    #[inline]
2067    unsafe fn from_glib(value: ffi::GFileCreateFlags) -> Self {
2068        Self::from_bits_truncate(value)
2069    }
2070}
2071
2072impl StaticType for FileCreateFlags {
2073    #[inline]
2074    #[doc(alias = "g_file_create_flags_get_type")]
2075    fn static_type() -> glib::Type {
2076        unsafe { from_glib(ffi::g_file_create_flags_get_type()) }
2077    }
2078}
2079
2080impl glib::HasParamSpec for FileCreateFlags {
2081    type ParamSpec = glib::ParamSpecFlags;
2082    type SetValue = Self;
2083    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2084
2085    fn param_spec_builder() -> Self::BuilderFn {
2086        Self::ParamSpec::builder
2087    }
2088}
2089
2090impl glib::value::ValueType for FileCreateFlags {
2091    type Type = Self;
2092}
2093
2094unsafe impl<'a> glib::value::FromValue<'a> for FileCreateFlags {
2095    type Checker = glib::value::GenericValueTypeChecker<Self>;
2096
2097    #[inline]
2098    unsafe fn from_value(value: &'a glib::Value) -> Self {
2099        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2100    }
2101}
2102
2103impl ToValue for FileCreateFlags {
2104    #[inline]
2105    fn to_value(&self) -> glib::Value {
2106        let mut value = glib::Value::for_value_type::<Self>();
2107        unsafe {
2108            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2109        }
2110        value
2111    }
2112
2113    #[inline]
2114    fn value_type(&self) -> glib::Type {
2115        Self::static_type()
2116    }
2117}
2118
2119impl From<FileCreateFlags> for glib::Value {
2120    #[inline]
2121    fn from(v: FileCreateFlags) -> Self {
2122        ToValue::to_value(&v)
2123    }
2124}
2125
2126bitflags! {
2127    /// Flags that can be used with g_file_measure_disk_usage().
2128    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2129    #[doc(alias = "GFileMeasureFlags")]
2130    pub struct FileMeasureFlags: u32 {
2131        /// No flags set.
2132        #[doc(alias = "G_FILE_MEASURE_NONE")]
2133        const NONE = ffi::G_FILE_MEASURE_NONE as _;
2134        /// Report any error encountered
2135        ///   while traversing the directory tree.  Normally errors are only
2136        ///   reported for the toplevel file.
2137        #[doc(alias = "G_FILE_MEASURE_REPORT_ANY_ERROR")]
2138        const REPORT_ANY_ERROR = ffi::G_FILE_MEASURE_REPORT_ANY_ERROR as _;
2139        /// Tally usage based on apparent file
2140        ///   sizes.  Normally, the block-size is used, if available, as this is a
2141        ///   more accurate representation of disk space used.
2142        ///   Compare with `du --apparent-size`.
2143        ///   Since GLib 2.78. and similarly to `du` since GNU Coreutils 9.2, this will
2144        ///   ignore the sizes of file types other than regular files and links, as the
2145        ///   sizes of other file types are not specified in a standard way.
2146        #[doc(alias = "G_FILE_MEASURE_APPARENT_SIZE")]
2147        const APPARENT_SIZE = ffi::G_FILE_MEASURE_APPARENT_SIZE as _;
2148        /// Do not cross mount point boundaries.
2149        ///   Compare with `du -x`.
2150        #[doc(alias = "G_FILE_MEASURE_NO_XDEV")]
2151        const NO_XDEV = ffi::G_FILE_MEASURE_NO_XDEV as _;
2152    }
2153}
2154
2155#[doc(hidden)]
2156impl IntoGlib for FileMeasureFlags {
2157    type GlibType = ffi::GFileMeasureFlags;
2158
2159    #[inline]
2160    fn into_glib(self) -> ffi::GFileMeasureFlags {
2161        self.bits()
2162    }
2163}
2164
2165#[doc(hidden)]
2166impl FromGlib<ffi::GFileMeasureFlags> for FileMeasureFlags {
2167    #[inline]
2168    unsafe fn from_glib(value: ffi::GFileMeasureFlags) -> Self {
2169        Self::from_bits_truncate(value)
2170    }
2171}
2172
2173impl StaticType for FileMeasureFlags {
2174    #[inline]
2175    #[doc(alias = "g_file_measure_flags_get_type")]
2176    fn static_type() -> glib::Type {
2177        unsafe { from_glib(ffi::g_file_measure_flags_get_type()) }
2178    }
2179}
2180
2181impl glib::HasParamSpec for FileMeasureFlags {
2182    type ParamSpec = glib::ParamSpecFlags;
2183    type SetValue = Self;
2184    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2185
2186    fn param_spec_builder() -> Self::BuilderFn {
2187        Self::ParamSpec::builder
2188    }
2189}
2190
2191impl glib::value::ValueType for FileMeasureFlags {
2192    type Type = Self;
2193}
2194
2195unsafe impl<'a> glib::value::FromValue<'a> for FileMeasureFlags {
2196    type Checker = glib::value::GenericValueTypeChecker<Self>;
2197
2198    #[inline]
2199    unsafe fn from_value(value: &'a glib::Value) -> Self {
2200        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2201    }
2202}
2203
2204impl ToValue for FileMeasureFlags {
2205    #[inline]
2206    fn to_value(&self) -> glib::Value {
2207        let mut value = glib::Value::for_value_type::<Self>();
2208        unsafe {
2209            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2210        }
2211        value
2212    }
2213
2214    #[inline]
2215    fn value_type(&self) -> glib::Type {
2216        Self::static_type()
2217    }
2218}
2219
2220impl From<FileMeasureFlags> for glib::Value {
2221    #[inline]
2222    fn from(v: FileMeasureFlags) -> Self {
2223        ToValue::to_value(&v)
2224    }
2225}
2226
2227bitflags! {
2228    /// Flags used to set what a #GFileMonitor will watch for.
2229    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2230    #[doc(alias = "GFileMonitorFlags")]
2231    pub struct FileMonitorFlags: u32 {
2232        /// No flags set.
2233        #[doc(alias = "G_FILE_MONITOR_NONE")]
2234        const NONE = ffi::G_FILE_MONITOR_NONE as _;
2235        /// Watch for mount events.
2236        #[doc(alias = "G_FILE_MONITOR_WATCH_MOUNTS")]
2237        const WATCH_MOUNTS = ffi::G_FILE_MONITOR_WATCH_MOUNTS as _;
2238        /// Pair DELETED and CREATED events caused
2239        ///   by file renames (moves) and send a single G_FILE_MONITOR_EVENT_MOVED
2240        ///   event instead (NB: not supported on all backends; the default
2241        ///   behaviour -without specifying this flag- is to send single DELETED
2242        ///   and CREATED events).  Deprecated since 2.46: use
2243        ///   [`WATCH_MOVES`][Self::WATCH_MOVES] instead.
2244        #[doc(alias = "G_FILE_MONITOR_SEND_MOVED")]
2245        const SEND_MOVED = ffi::G_FILE_MONITOR_SEND_MOVED as _;
2246        /// Watch for changes to the file made
2247        ///   via another hard link. Since 2.36.
2248        #[doc(alias = "G_FILE_MONITOR_WATCH_HARD_LINKS")]
2249        const WATCH_HARD_LINKS = ffi::G_FILE_MONITOR_WATCH_HARD_LINKS as _;
2250        /// Watch for rename operations on a
2251        ///   monitored directory.  This causes [`FileMonitorEvent::Renamed`][crate::FileMonitorEvent::Renamed],
2252        ///   [`FileMonitorEvent::MovedIn`][crate::FileMonitorEvent::MovedIn] and [`FileMonitorEvent::MovedOut`][crate::FileMonitorEvent::MovedOut]
2253        ///   events to be emitted when possible.  Since: 2.46.
2254        #[doc(alias = "G_FILE_MONITOR_WATCH_MOVES")]
2255        const WATCH_MOVES = ffi::G_FILE_MONITOR_WATCH_MOVES as _;
2256    }
2257}
2258
2259#[doc(hidden)]
2260impl IntoGlib for FileMonitorFlags {
2261    type GlibType = ffi::GFileMonitorFlags;
2262
2263    #[inline]
2264    fn into_glib(self) -> ffi::GFileMonitorFlags {
2265        self.bits()
2266    }
2267}
2268
2269#[doc(hidden)]
2270impl FromGlib<ffi::GFileMonitorFlags> for FileMonitorFlags {
2271    #[inline]
2272    unsafe fn from_glib(value: ffi::GFileMonitorFlags) -> Self {
2273        Self::from_bits_truncate(value)
2274    }
2275}
2276
2277impl StaticType for FileMonitorFlags {
2278    #[inline]
2279    #[doc(alias = "g_file_monitor_flags_get_type")]
2280    fn static_type() -> glib::Type {
2281        unsafe { from_glib(ffi::g_file_monitor_flags_get_type()) }
2282    }
2283}
2284
2285impl glib::HasParamSpec for FileMonitorFlags {
2286    type ParamSpec = glib::ParamSpecFlags;
2287    type SetValue = Self;
2288    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2289
2290    fn param_spec_builder() -> Self::BuilderFn {
2291        Self::ParamSpec::builder
2292    }
2293}
2294
2295impl glib::value::ValueType for FileMonitorFlags {
2296    type Type = Self;
2297}
2298
2299unsafe impl<'a> glib::value::FromValue<'a> for FileMonitorFlags {
2300    type Checker = glib::value::GenericValueTypeChecker<Self>;
2301
2302    #[inline]
2303    unsafe fn from_value(value: &'a glib::Value) -> Self {
2304        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2305    }
2306}
2307
2308impl ToValue for FileMonitorFlags {
2309    #[inline]
2310    fn to_value(&self) -> glib::Value {
2311        let mut value = glib::Value::for_value_type::<Self>();
2312        unsafe {
2313            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2314        }
2315        value
2316    }
2317
2318    #[inline]
2319    fn value_type(&self) -> glib::Type {
2320        Self::static_type()
2321    }
2322}
2323
2324impl From<FileMonitorFlags> for glib::Value {
2325    #[inline]
2326    fn from(v: FileMonitorFlags) -> Self {
2327        ToValue::to_value(&v)
2328    }
2329}
2330
2331bitflags! {
2332    /// Flags used when querying a #GFileInfo.
2333    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2334    #[doc(alias = "GFileQueryInfoFlags")]
2335    pub struct FileQueryInfoFlags: u32 {
2336        /// No flags set.
2337        #[doc(alias = "G_FILE_QUERY_INFO_NONE")]
2338        const NONE = ffi::G_FILE_QUERY_INFO_NONE as _;
2339        /// Don't follow symlinks.
2340        #[doc(alias = "G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS")]
2341        const NOFOLLOW_SYMLINKS = ffi::G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS as _;
2342    }
2343}
2344
2345#[doc(hidden)]
2346impl IntoGlib for FileQueryInfoFlags {
2347    type GlibType = ffi::GFileQueryInfoFlags;
2348
2349    #[inline]
2350    fn into_glib(self) -> ffi::GFileQueryInfoFlags {
2351        self.bits()
2352    }
2353}
2354
2355#[doc(hidden)]
2356impl FromGlib<ffi::GFileQueryInfoFlags> for FileQueryInfoFlags {
2357    #[inline]
2358    unsafe fn from_glib(value: ffi::GFileQueryInfoFlags) -> Self {
2359        Self::from_bits_truncate(value)
2360    }
2361}
2362
2363impl StaticType for FileQueryInfoFlags {
2364    #[inline]
2365    #[doc(alias = "g_file_query_info_flags_get_type")]
2366    fn static_type() -> glib::Type {
2367        unsafe { from_glib(ffi::g_file_query_info_flags_get_type()) }
2368    }
2369}
2370
2371impl glib::HasParamSpec for FileQueryInfoFlags {
2372    type ParamSpec = glib::ParamSpecFlags;
2373    type SetValue = Self;
2374    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2375
2376    fn param_spec_builder() -> Self::BuilderFn {
2377        Self::ParamSpec::builder
2378    }
2379}
2380
2381impl glib::value::ValueType for FileQueryInfoFlags {
2382    type Type = Self;
2383}
2384
2385unsafe impl<'a> glib::value::FromValue<'a> for FileQueryInfoFlags {
2386    type Checker = glib::value::GenericValueTypeChecker<Self>;
2387
2388    #[inline]
2389    unsafe fn from_value(value: &'a glib::Value) -> Self {
2390        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2391    }
2392}
2393
2394impl ToValue for FileQueryInfoFlags {
2395    #[inline]
2396    fn to_value(&self) -> glib::Value {
2397        let mut value = glib::Value::for_value_type::<Self>();
2398        unsafe {
2399            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2400        }
2401        value
2402    }
2403
2404    #[inline]
2405    fn value_type(&self) -> glib::Type {
2406        Self::static_type()
2407    }
2408}
2409
2410impl From<FileQueryInfoFlags> for glib::Value {
2411    #[inline]
2412    fn from(v: FileQueryInfoFlags) -> Self {
2413        ToValue::to_value(&v)
2414    }
2415}
2416
2417bitflags! {
2418    /// Flags for use with g_io_module_scope_new().
2419    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2420    #[doc(alias = "GIOModuleScopeFlags")]
2421    pub struct IOModuleScopeFlags: u32 {
2422        /// No module scan flags
2423        #[doc(alias = "G_IO_MODULE_SCOPE_NONE")]
2424        const NONE = ffi::G_IO_MODULE_SCOPE_NONE as _;
2425        /// When using this scope to load or
2426        ///     scan modules, automatically block a modules which has the same base
2427        ///     basename as previously loaded module.
2428        #[doc(alias = "G_IO_MODULE_SCOPE_BLOCK_DUPLICATES")]
2429        const BLOCK_DUPLICATES = ffi::G_IO_MODULE_SCOPE_BLOCK_DUPLICATES as _;
2430    }
2431}
2432
2433#[doc(hidden)]
2434impl IntoGlib for IOModuleScopeFlags {
2435    type GlibType = ffi::GIOModuleScopeFlags;
2436
2437    #[inline]
2438    fn into_glib(self) -> ffi::GIOModuleScopeFlags {
2439        self.bits()
2440    }
2441}
2442
2443#[doc(hidden)]
2444impl FromGlib<ffi::GIOModuleScopeFlags> for IOModuleScopeFlags {
2445    #[inline]
2446    unsafe fn from_glib(value: ffi::GIOModuleScopeFlags) -> Self {
2447        Self::from_bits_truncate(value)
2448    }
2449}
2450
2451impl StaticType for IOModuleScopeFlags {
2452    #[inline]
2453    #[doc(alias = "g_io_module_scope_flags_get_type")]
2454    fn static_type() -> glib::Type {
2455        unsafe { from_glib(ffi::g_io_module_scope_flags_get_type()) }
2456    }
2457}
2458
2459impl glib::HasParamSpec for IOModuleScopeFlags {
2460    type ParamSpec = glib::ParamSpecFlags;
2461    type SetValue = Self;
2462    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2463
2464    fn param_spec_builder() -> Self::BuilderFn {
2465        Self::ParamSpec::builder
2466    }
2467}
2468
2469impl glib::value::ValueType for IOModuleScopeFlags {
2470    type Type = Self;
2471}
2472
2473unsafe impl<'a> glib::value::FromValue<'a> for IOModuleScopeFlags {
2474    type Checker = glib::value::GenericValueTypeChecker<Self>;
2475
2476    #[inline]
2477    unsafe fn from_value(value: &'a glib::Value) -> Self {
2478        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2479    }
2480}
2481
2482impl ToValue for IOModuleScopeFlags {
2483    #[inline]
2484    fn to_value(&self) -> glib::Value {
2485        let mut value = glib::Value::for_value_type::<Self>();
2486        unsafe {
2487            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2488        }
2489        value
2490    }
2491
2492    #[inline]
2493    fn value_type(&self) -> glib::Type {
2494        Self::static_type()
2495    }
2496}
2497
2498impl From<IOModuleScopeFlags> for glib::Value {
2499    #[inline]
2500    fn from(v: IOModuleScopeFlags) -> Self {
2501        ToValue::to_value(&v)
2502    }
2503}
2504
2505bitflags! {
2506    /// GIOStreamSpliceFlags determine how streams should be spliced.
2507    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2508    #[doc(alias = "GIOStreamSpliceFlags")]
2509    pub struct IOStreamSpliceFlags: u32 {
2510        /// Do not close either stream.
2511        #[doc(alias = "G_IO_STREAM_SPLICE_NONE")]
2512        const NONE = ffi::G_IO_STREAM_SPLICE_NONE as _;
2513        /// Close the first stream after
2514        ///     the splice.
2515        #[doc(alias = "G_IO_STREAM_SPLICE_CLOSE_STREAM1")]
2516        const CLOSE_STREAM1 = ffi::G_IO_STREAM_SPLICE_CLOSE_STREAM1 as _;
2517        /// Close the second stream after
2518        ///     the splice.
2519        #[doc(alias = "G_IO_STREAM_SPLICE_CLOSE_STREAM2")]
2520        const CLOSE_STREAM2 = ffi::G_IO_STREAM_SPLICE_CLOSE_STREAM2 as _;
2521        /// Wait for both splice operations to finish
2522        ///     before calling the callback.
2523        #[doc(alias = "G_IO_STREAM_SPLICE_WAIT_FOR_BOTH")]
2524        const WAIT_FOR_BOTH = ffi::G_IO_STREAM_SPLICE_WAIT_FOR_BOTH as _;
2525    }
2526}
2527
2528#[doc(hidden)]
2529impl IntoGlib for IOStreamSpliceFlags {
2530    type GlibType = ffi::GIOStreamSpliceFlags;
2531
2532    #[inline]
2533    fn into_glib(self) -> ffi::GIOStreamSpliceFlags {
2534        self.bits()
2535    }
2536}
2537
2538#[doc(hidden)]
2539impl FromGlib<ffi::GIOStreamSpliceFlags> for IOStreamSpliceFlags {
2540    #[inline]
2541    unsafe fn from_glib(value: ffi::GIOStreamSpliceFlags) -> Self {
2542        Self::from_bits_truncate(value)
2543    }
2544}
2545
2546impl StaticType for IOStreamSpliceFlags {
2547    #[inline]
2548    #[doc(alias = "g_io_stream_splice_flags_get_type")]
2549    fn static_type() -> glib::Type {
2550        unsafe { from_glib(ffi::g_io_stream_splice_flags_get_type()) }
2551    }
2552}
2553
2554impl glib::HasParamSpec for IOStreamSpliceFlags {
2555    type ParamSpec = glib::ParamSpecFlags;
2556    type SetValue = Self;
2557    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2558
2559    fn param_spec_builder() -> Self::BuilderFn {
2560        Self::ParamSpec::builder
2561    }
2562}
2563
2564impl glib::value::ValueType for IOStreamSpliceFlags {
2565    type Type = Self;
2566}
2567
2568unsafe impl<'a> glib::value::FromValue<'a> for IOStreamSpliceFlags {
2569    type Checker = glib::value::GenericValueTypeChecker<Self>;
2570
2571    #[inline]
2572    unsafe fn from_value(value: &'a glib::Value) -> Self {
2573        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2574    }
2575}
2576
2577impl ToValue for IOStreamSpliceFlags {
2578    #[inline]
2579    fn to_value(&self) -> glib::Value {
2580        let mut value = glib::Value::for_value_type::<Self>();
2581        unsafe {
2582            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2583        }
2584        value
2585    }
2586
2587    #[inline]
2588    fn value_type(&self) -> glib::Type {
2589        Self::static_type()
2590    }
2591}
2592
2593impl From<IOStreamSpliceFlags> for glib::Value {
2594    #[inline]
2595    fn from(v: IOStreamSpliceFlags) -> Self {
2596        ToValue::to_value(&v)
2597    }
2598}
2599
2600bitflags! {
2601    /// Flags used when mounting a mount.
2602    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2603    #[doc(alias = "GMountMountFlags")]
2604    pub struct MountMountFlags: u32 {
2605        /// No flags set.
2606        #[doc(alias = "G_MOUNT_MOUNT_NONE")]
2607        const NONE = ffi::G_MOUNT_MOUNT_NONE as _;
2608    }
2609}
2610
2611#[doc(hidden)]
2612impl IntoGlib for MountMountFlags {
2613    type GlibType = ffi::GMountMountFlags;
2614
2615    #[inline]
2616    fn into_glib(self) -> ffi::GMountMountFlags {
2617        self.bits()
2618    }
2619}
2620
2621#[doc(hidden)]
2622impl FromGlib<ffi::GMountMountFlags> for MountMountFlags {
2623    #[inline]
2624    unsafe fn from_glib(value: ffi::GMountMountFlags) -> Self {
2625        Self::from_bits_truncate(value)
2626    }
2627}
2628
2629impl StaticType for MountMountFlags {
2630    #[inline]
2631    #[doc(alias = "g_mount_mount_flags_get_type")]
2632    fn static_type() -> glib::Type {
2633        unsafe { from_glib(ffi::g_mount_mount_flags_get_type()) }
2634    }
2635}
2636
2637impl glib::HasParamSpec for MountMountFlags {
2638    type ParamSpec = glib::ParamSpecFlags;
2639    type SetValue = Self;
2640    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2641
2642    fn param_spec_builder() -> Self::BuilderFn {
2643        Self::ParamSpec::builder
2644    }
2645}
2646
2647impl glib::value::ValueType for MountMountFlags {
2648    type Type = Self;
2649}
2650
2651unsafe impl<'a> glib::value::FromValue<'a> for MountMountFlags {
2652    type Checker = glib::value::GenericValueTypeChecker<Self>;
2653
2654    #[inline]
2655    unsafe fn from_value(value: &'a glib::Value) -> Self {
2656        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2657    }
2658}
2659
2660impl ToValue for MountMountFlags {
2661    #[inline]
2662    fn to_value(&self) -> glib::Value {
2663        let mut value = glib::Value::for_value_type::<Self>();
2664        unsafe {
2665            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2666        }
2667        value
2668    }
2669
2670    #[inline]
2671    fn value_type(&self) -> glib::Type {
2672        Self::static_type()
2673    }
2674}
2675
2676impl From<MountMountFlags> for glib::Value {
2677    #[inline]
2678    fn from(v: MountMountFlags) -> Self {
2679        ToValue::to_value(&v)
2680    }
2681}
2682
2683bitflags! {
2684    /// Flags used when an unmounting a mount.
2685    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2686    #[doc(alias = "GMountUnmountFlags")]
2687    pub struct MountUnmountFlags: u32 {
2688        /// No flags set.
2689        #[doc(alias = "G_MOUNT_UNMOUNT_NONE")]
2690        const NONE = ffi::G_MOUNT_UNMOUNT_NONE as _;
2691        /// Unmount even if there are outstanding
2692        ///  file operations on the mount.
2693        #[doc(alias = "G_MOUNT_UNMOUNT_FORCE")]
2694        const FORCE = ffi::G_MOUNT_UNMOUNT_FORCE as _;
2695    }
2696}
2697
2698#[doc(hidden)]
2699impl IntoGlib for MountUnmountFlags {
2700    type GlibType = ffi::GMountUnmountFlags;
2701
2702    #[inline]
2703    fn into_glib(self) -> ffi::GMountUnmountFlags {
2704        self.bits()
2705    }
2706}
2707
2708#[doc(hidden)]
2709impl FromGlib<ffi::GMountUnmountFlags> for MountUnmountFlags {
2710    #[inline]
2711    unsafe fn from_glib(value: ffi::GMountUnmountFlags) -> Self {
2712        Self::from_bits_truncate(value)
2713    }
2714}
2715
2716impl StaticType for MountUnmountFlags {
2717    #[inline]
2718    #[doc(alias = "g_mount_unmount_flags_get_type")]
2719    fn static_type() -> glib::Type {
2720        unsafe { from_glib(ffi::g_mount_unmount_flags_get_type()) }
2721    }
2722}
2723
2724impl glib::HasParamSpec for MountUnmountFlags {
2725    type ParamSpec = glib::ParamSpecFlags;
2726    type SetValue = Self;
2727    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2728
2729    fn param_spec_builder() -> Self::BuilderFn {
2730        Self::ParamSpec::builder
2731    }
2732}
2733
2734impl glib::value::ValueType for MountUnmountFlags {
2735    type Type = Self;
2736}
2737
2738unsafe impl<'a> glib::value::FromValue<'a> for MountUnmountFlags {
2739    type Checker = glib::value::GenericValueTypeChecker<Self>;
2740
2741    #[inline]
2742    unsafe fn from_value(value: &'a glib::Value) -> Self {
2743        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2744    }
2745}
2746
2747impl ToValue for MountUnmountFlags {
2748    #[inline]
2749    fn to_value(&self) -> glib::Value {
2750        let mut value = glib::Value::for_value_type::<Self>();
2751        unsafe {
2752            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2753        }
2754        value
2755    }
2756
2757    #[inline]
2758    fn value_type(&self) -> glib::Type {
2759        Self::static_type()
2760    }
2761}
2762
2763impl From<MountUnmountFlags> for glib::Value {
2764    #[inline]
2765    fn from(v: MountUnmountFlags) -> Self {
2766        ToValue::to_value(&v)
2767    }
2768}
2769
2770bitflags! {
2771    /// GOutputStreamSpliceFlags determine how streams should be spliced.
2772    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2773    #[doc(alias = "GOutputStreamSpliceFlags")]
2774    pub struct OutputStreamSpliceFlags: u32 {
2775        /// Do not close either stream.
2776        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_NONE")]
2777        const NONE = ffi::G_OUTPUT_STREAM_SPLICE_NONE as _;
2778        /// Close the source stream after
2779        ///     the splice.
2780        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE")]
2781        const CLOSE_SOURCE = ffi::G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE as _;
2782        /// Close the target stream after
2783        ///     the splice.
2784        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET")]
2785        const CLOSE_TARGET = ffi::G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET as _;
2786    }
2787}
2788
2789#[doc(hidden)]
2790impl IntoGlib for OutputStreamSpliceFlags {
2791    type GlibType = ffi::GOutputStreamSpliceFlags;
2792
2793    #[inline]
2794    fn into_glib(self) -> ffi::GOutputStreamSpliceFlags {
2795        self.bits()
2796    }
2797}
2798
2799#[doc(hidden)]
2800impl FromGlib<ffi::GOutputStreamSpliceFlags> for OutputStreamSpliceFlags {
2801    #[inline]
2802    unsafe fn from_glib(value: ffi::GOutputStreamSpliceFlags) -> Self {
2803        Self::from_bits_truncate(value)
2804    }
2805}
2806
2807impl StaticType for OutputStreamSpliceFlags {
2808    #[inline]
2809    #[doc(alias = "g_output_stream_splice_flags_get_type")]
2810    fn static_type() -> glib::Type {
2811        unsafe { from_glib(ffi::g_output_stream_splice_flags_get_type()) }
2812    }
2813}
2814
2815impl glib::HasParamSpec for OutputStreamSpliceFlags {
2816    type ParamSpec = glib::ParamSpecFlags;
2817    type SetValue = Self;
2818    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2819
2820    fn param_spec_builder() -> Self::BuilderFn {
2821        Self::ParamSpec::builder
2822    }
2823}
2824
2825impl glib::value::ValueType for OutputStreamSpliceFlags {
2826    type Type = Self;
2827}
2828
2829unsafe impl<'a> glib::value::FromValue<'a> for OutputStreamSpliceFlags {
2830    type Checker = glib::value::GenericValueTypeChecker<Self>;
2831
2832    #[inline]
2833    unsafe fn from_value(value: &'a glib::Value) -> Self {
2834        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2835    }
2836}
2837
2838impl ToValue for OutputStreamSpliceFlags {
2839    #[inline]
2840    fn to_value(&self) -> glib::Value {
2841        let mut value = glib::Value::for_value_type::<Self>();
2842        unsafe {
2843            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2844        }
2845        value
2846    }
2847
2848    #[inline]
2849    fn value_type(&self) -> glib::Type {
2850        Self::static_type()
2851    }
2852}
2853
2854impl From<OutputStreamSpliceFlags> for glib::Value {
2855    #[inline]
2856    fn from(v: OutputStreamSpliceFlags) -> Self {
2857        ToValue::to_value(&v)
2858    }
2859}
2860
2861#[cfg(feature = "v2_60")]
2862bitflags! {
2863    /// Flags to modify lookup behavior.
2864    #[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2865    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2866    #[doc(alias = "GResolverNameLookupFlags")]
2867    pub struct ResolverNameLookupFlags: u32 {
2868        /// default behavior (same as g_resolver_lookup_by_name())
2869        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT")]
2870        const DEFAULT = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT as _;
2871        /// only resolve ipv4 addresses
2872        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY")]
2873        const IPV4_ONLY = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY as _;
2874        /// only resolve ipv6 addresses
2875        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY")]
2876        const IPV6_ONLY = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY as _;
2877    }
2878}
2879
2880#[cfg(feature = "v2_60")]
2881#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2882#[doc(hidden)]
2883impl IntoGlib for ResolverNameLookupFlags {
2884    type GlibType = ffi::GResolverNameLookupFlags;
2885
2886    #[inline]
2887    fn into_glib(self) -> ffi::GResolverNameLookupFlags {
2888        self.bits()
2889    }
2890}
2891
2892#[cfg(feature = "v2_60")]
2893#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2894#[doc(hidden)]
2895impl FromGlib<ffi::GResolverNameLookupFlags> for ResolverNameLookupFlags {
2896    #[inline]
2897    unsafe fn from_glib(value: ffi::GResolverNameLookupFlags) -> Self {
2898        Self::from_bits_truncate(value)
2899    }
2900}
2901
2902#[cfg(feature = "v2_60")]
2903#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2904impl StaticType for ResolverNameLookupFlags {
2905    #[inline]
2906    #[doc(alias = "g_resolver_name_lookup_flags_get_type")]
2907    fn static_type() -> glib::Type {
2908        unsafe { from_glib(ffi::g_resolver_name_lookup_flags_get_type()) }
2909    }
2910}
2911
2912#[cfg(feature = "v2_60")]
2913#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2914impl glib::HasParamSpec for ResolverNameLookupFlags {
2915    type ParamSpec = glib::ParamSpecFlags;
2916    type SetValue = Self;
2917    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2918
2919    fn param_spec_builder() -> Self::BuilderFn {
2920        Self::ParamSpec::builder
2921    }
2922}
2923
2924#[cfg(feature = "v2_60")]
2925#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2926impl glib::value::ValueType for ResolverNameLookupFlags {
2927    type Type = Self;
2928}
2929
2930#[cfg(feature = "v2_60")]
2931#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2932unsafe impl<'a> glib::value::FromValue<'a> for ResolverNameLookupFlags {
2933    type Checker = glib::value::GenericValueTypeChecker<Self>;
2934
2935    #[inline]
2936    unsafe fn from_value(value: &'a glib::Value) -> Self {
2937        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2938    }
2939}
2940
2941#[cfg(feature = "v2_60")]
2942#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2943impl ToValue for ResolverNameLookupFlags {
2944    #[inline]
2945    fn to_value(&self) -> glib::Value {
2946        let mut value = glib::Value::for_value_type::<Self>();
2947        unsafe {
2948            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2949        }
2950        value
2951    }
2952
2953    #[inline]
2954    fn value_type(&self) -> glib::Type {
2955        Self::static_type()
2956    }
2957}
2958
2959#[cfg(feature = "v2_60")]
2960#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2961impl From<ResolverNameLookupFlags> for glib::Value {
2962    #[inline]
2963    fn from(v: ResolverNameLookupFlags) -> Self {
2964        ToValue::to_value(&v)
2965    }
2966}
2967
2968bitflags! {
2969    /// GResourceFlags give information about a particular file inside a resource
2970    /// bundle.
2971    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2972    #[doc(alias = "GResourceFlags")]
2973    pub struct ResourceFlags: u32 {
2974        /// No flags set.
2975        #[doc(alias = "G_RESOURCE_FLAGS_NONE")]
2976        const NONE = ffi::G_RESOURCE_FLAGS_NONE as _;
2977        /// The file is compressed.
2978        #[doc(alias = "G_RESOURCE_FLAGS_COMPRESSED")]
2979        const COMPRESSED = ffi::G_RESOURCE_FLAGS_COMPRESSED as _;
2980    }
2981}
2982
2983#[doc(hidden)]
2984impl IntoGlib for ResourceFlags {
2985    type GlibType = ffi::GResourceFlags;
2986
2987    #[inline]
2988    fn into_glib(self) -> ffi::GResourceFlags {
2989        self.bits()
2990    }
2991}
2992
2993#[doc(hidden)]
2994impl FromGlib<ffi::GResourceFlags> for ResourceFlags {
2995    #[inline]
2996    unsafe fn from_glib(value: ffi::GResourceFlags) -> Self {
2997        Self::from_bits_truncate(value)
2998    }
2999}
3000
3001impl StaticType for ResourceFlags {
3002    #[inline]
3003    #[doc(alias = "g_resource_flags_get_type")]
3004    fn static_type() -> glib::Type {
3005        unsafe { from_glib(ffi::g_resource_flags_get_type()) }
3006    }
3007}
3008
3009impl glib::HasParamSpec for ResourceFlags {
3010    type ParamSpec = glib::ParamSpecFlags;
3011    type SetValue = Self;
3012    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3013
3014    fn param_spec_builder() -> Self::BuilderFn {
3015        Self::ParamSpec::builder
3016    }
3017}
3018
3019impl glib::value::ValueType for ResourceFlags {
3020    type Type = Self;
3021}
3022
3023unsafe impl<'a> glib::value::FromValue<'a> for ResourceFlags {
3024    type Checker = glib::value::GenericValueTypeChecker<Self>;
3025
3026    #[inline]
3027    unsafe fn from_value(value: &'a glib::Value) -> Self {
3028        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3029    }
3030}
3031
3032impl ToValue for ResourceFlags {
3033    #[inline]
3034    fn to_value(&self) -> glib::Value {
3035        let mut value = glib::Value::for_value_type::<Self>();
3036        unsafe {
3037            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3038        }
3039        value
3040    }
3041
3042    #[inline]
3043    fn value_type(&self) -> glib::Type {
3044        Self::static_type()
3045    }
3046}
3047
3048impl From<ResourceFlags> for glib::Value {
3049    #[inline]
3050    fn from(v: ResourceFlags) -> Self {
3051        ToValue::to_value(&v)
3052    }
3053}
3054
3055bitflags! {
3056    /// GResourceLookupFlags determine how resource path lookups are handled.
3057    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3058    #[doc(alias = "GResourceLookupFlags")]
3059    pub struct ResourceLookupFlags: u32 {
3060        /// No flags set.
3061        #[doc(alias = "G_RESOURCE_LOOKUP_FLAGS_NONE")]
3062        const NONE = ffi::G_RESOURCE_LOOKUP_FLAGS_NONE as _;
3063    }
3064}
3065
3066#[doc(hidden)]
3067impl IntoGlib for ResourceLookupFlags {
3068    type GlibType = ffi::GResourceLookupFlags;
3069
3070    #[inline]
3071    fn into_glib(self) -> ffi::GResourceLookupFlags {
3072        self.bits()
3073    }
3074}
3075
3076#[doc(hidden)]
3077impl FromGlib<ffi::GResourceLookupFlags> for ResourceLookupFlags {
3078    #[inline]
3079    unsafe fn from_glib(value: ffi::GResourceLookupFlags) -> Self {
3080        Self::from_bits_truncate(value)
3081    }
3082}
3083
3084impl StaticType for ResourceLookupFlags {
3085    #[inline]
3086    #[doc(alias = "g_resource_lookup_flags_get_type")]
3087    fn static_type() -> glib::Type {
3088        unsafe { from_glib(ffi::g_resource_lookup_flags_get_type()) }
3089    }
3090}
3091
3092impl glib::HasParamSpec for ResourceLookupFlags {
3093    type ParamSpec = glib::ParamSpecFlags;
3094    type SetValue = Self;
3095    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3096
3097    fn param_spec_builder() -> Self::BuilderFn {
3098        Self::ParamSpec::builder
3099    }
3100}
3101
3102impl glib::value::ValueType for ResourceLookupFlags {
3103    type Type = Self;
3104}
3105
3106unsafe impl<'a> glib::value::FromValue<'a> for ResourceLookupFlags {
3107    type Checker = glib::value::GenericValueTypeChecker<Self>;
3108
3109    #[inline]
3110    unsafe fn from_value(value: &'a glib::Value) -> Self {
3111        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3112    }
3113}
3114
3115impl ToValue for ResourceLookupFlags {
3116    #[inline]
3117    fn to_value(&self) -> glib::Value {
3118        let mut value = glib::Value::for_value_type::<Self>();
3119        unsafe {
3120            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3121        }
3122        value
3123    }
3124
3125    #[inline]
3126    fn value_type(&self) -> glib::Type {
3127        Self::static_type()
3128    }
3129}
3130
3131impl From<ResourceLookupFlags> for glib::Value {
3132    #[inline]
3133    fn from(v: ResourceLookupFlags) -> Self {
3134        ToValue::to_value(&v)
3135    }
3136}
3137
3138bitflags! {
3139    /// Flags used when creating a binding.
3140    ///
3141    /// These flags determine in which direction the binding works. The default is to
3142    /// synchronize in both directions.
3143    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3144    #[doc(alias = "GSettingsBindFlags")]
3145    pub struct SettingsBindFlags: u32 {
3146        /// Equivalent to `G_SETTINGS_BIND_GET|G_SETTINGS_BIND_SET`
3147        #[doc(alias = "G_SETTINGS_BIND_DEFAULT")]
3148        const DEFAULT = ffi::G_SETTINGS_BIND_DEFAULT as _;
3149        /// Update the [`glib::Object`][crate::glib::Object] property when the setting changes.
3150        ///   It is an error to use this flag if the property is not writable.
3151        #[doc(alias = "G_SETTINGS_BIND_GET")]
3152        const GET = ffi::G_SETTINGS_BIND_GET as _;
3153        /// Update the setting when the [`glib::Object`][crate::glib::Object] property changes.
3154        ///   It is an error to use this flag if the property is not readable.
3155        #[doc(alias = "G_SETTINGS_BIND_SET")]
3156        const SET = ffi::G_SETTINGS_BIND_SET as _;
3157        ///  property to the writability of the setting
3158        #[doc(alias = "G_SETTINGS_BIND_NO_SENSITIVITY")]
3159        const NO_SENSITIVITY = ffi::G_SETTINGS_BIND_NO_SENSITIVITY as _;
3160        /// When set in addition to [flags@Gio.SettingsBindFlags.GET],
3161        ///   set the [`glib::Object`][crate::glib::Object] property
3162        ///   value initially from the setting, but do not listen for changes of the setting
3163        #[doc(alias = "G_SETTINGS_BIND_GET_NO_CHANGES")]
3164        const GET_NO_CHANGES = ffi::G_SETTINGS_BIND_GET_NO_CHANGES as _;
3165        /// When passed to [`SettingsExtManual::bind()`][crate::prelude::SettingsExtManual::bind()],
3166        ///   uses a pair of mapping functions that invert
3167        ///   the boolean value when mapping between the setting and the property.  The setting and property must both
3168        ///   be booleans.  You cannot pass this flag to [`SettingsExtManual::bind_with_mapping()`][crate::prelude::SettingsExtManual::bind_with_mapping()].
3169        #[doc(alias = "G_SETTINGS_BIND_INVERT_BOOLEAN")]
3170        const INVERT_BOOLEAN = ffi::G_SETTINGS_BIND_INVERT_BOOLEAN as _;
3171    }
3172}
3173
3174#[doc(hidden)]
3175impl IntoGlib for SettingsBindFlags {
3176    type GlibType = ffi::GSettingsBindFlags;
3177
3178    #[inline]
3179    fn into_glib(self) -> ffi::GSettingsBindFlags {
3180        self.bits()
3181    }
3182}
3183
3184#[doc(hidden)]
3185impl FromGlib<ffi::GSettingsBindFlags> for SettingsBindFlags {
3186    #[inline]
3187    unsafe fn from_glib(value: ffi::GSettingsBindFlags) -> Self {
3188        Self::from_bits_truncate(value)
3189    }
3190}
3191
3192impl StaticType for SettingsBindFlags {
3193    #[inline]
3194    #[doc(alias = "g_settings_bind_flags_get_type")]
3195    fn static_type() -> glib::Type {
3196        unsafe { from_glib(ffi::g_settings_bind_flags_get_type()) }
3197    }
3198}
3199
3200impl glib::HasParamSpec for SettingsBindFlags {
3201    type ParamSpec = glib::ParamSpecFlags;
3202    type SetValue = Self;
3203    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3204
3205    fn param_spec_builder() -> Self::BuilderFn {
3206        Self::ParamSpec::builder
3207    }
3208}
3209
3210impl glib::value::ValueType for SettingsBindFlags {
3211    type Type = Self;
3212}
3213
3214unsafe impl<'a> glib::value::FromValue<'a> for SettingsBindFlags {
3215    type Checker = glib::value::GenericValueTypeChecker<Self>;
3216
3217    #[inline]
3218    unsafe fn from_value(value: &'a glib::Value) -> Self {
3219        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3220    }
3221}
3222
3223impl ToValue for SettingsBindFlags {
3224    #[inline]
3225    fn to_value(&self) -> glib::Value {
3226        let mut value = glib::Value::for_value_type::<Self>();
3227        unsafe {
3228            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3229        }
3230        value
3231    }
3232
3233    #[inline]
3234    fn value_type(&self) -> glib::Type {
3235        Self::static_type()
3236    }
3237}
3238
3239impl From<SettingsBindFlags> for glib::Value {
3240    #[inline]
3241    fn from(v: SettingsBindFlags) -> Self {
3242        ToValue::to_value(&v)
3243    }
3244}
3245
3246bitflags! {
3247    /// Flags to define the behaviour of a #GSubprocess.
3248    ///
3249    /// Note that the default for stdin is to redirect from `/dev/null`.  For
3250    /// stdout and stderr the default are for them to inherit the
3251    /// corresponding descriptor from the calling process.
3252    ///
3253    /// Note that it is a programmer error to mix 'incompatible' flags.  For
3254    /// example, you may not request both [`STDOUT_PIPE`][Self::STDOUT_PIPE] and
3255    /// [`STDOUT_SILENCE`][Self::STDOUT_SILENCE].
3256    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3257    #[doc(alias = "GSubprocessFlags")]
3258    pub struct SubprocessFlags: u32 {
3259        /// No flags.
3260        #[doc(alias = "G_SUBPROCESS_FLAGS_NONE")]
3261        const NONE = ffi::G_SUBPROCESS_FLAGS_NONE as _;
3262        /// create a pipe for the stdin of the
3263        ///   spawned process that can be accessed with
3264        ///   g_subprocess_get_stdin_pipe().
3265        #[doc(alias = "G_SUBPROCESS_FLAGS_STDIN_PIPE")]
3266        const STDIN_PIPE = ffi::G_SUBPROCESS_FLAGS_STDIN_PIPE as _;
3267        /// stdin is inherited from the
3268        ///   calling process.
3269        #[doc(alias = "G_SUBPROCESS_FLAGS_STDIN_INHERIT")]
3270        const STDIN_INHERIT = ffi::G_SUBPROCESS_FLAGS_STDIN_INHERIT as _;
3271        /// create a pipe for the stdout of the
3272        ///   spawned process that can be accessed with
3273        ///   g_subprocess_get_stdout_pipe().
3274        #[doc(alias = "G_SUBPROCESS_FLAGS_STDOUT_PIPE")]
3275        const STDOUT_PIPE = ffi::G_SUBPROCESS_FLAGS_STDOUT_PIPE as _;
3276        /// silence the stdout of the spawned
3277        ///   process (ie: redirect to `/dev/null`).
3278        #[doc(alias = "G_SUBPROCESS_FLAGS_STDOUT_SILENCE")]
3279        const STDOUT_SILENCE = ffi::G_SUBPROCESS_FLAGS_STDOUT_SILENCE as _;
3280        /// create a pipe for the stderr of the
3281        ///   spawned process that can be accessed with
3282        ///   g_subprocess_get_stderr_pipe().
3283        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_PIPE")]
3284        const STDERR_PIPE = ffi::G_SUBPROCESS_FLAGS_STDERR_PIPE as _;
3285        /// silence the stderr of the spawned
3286        ///   process (ie: redirect to `/dev/null`).
3287        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_SILENCE")]
3288        const STDERR_SILENCE = ffi::G_SUBPROCESS_FLAGS_STDERR_SILENCE as _;
3289        /// merge the stderr of the spawned
3290        ///   process with whatever the stdout happens to be.  This is a good way
3291        ///   of directing both streams to a common log file, for example.
3292        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_MERGE")]
3293        const STDERR_MERGE = ffi::G_SUBPROCESS_FLAGS_STDERR_MERGE as _;
3294        /// spawned processes will inherit the
3295        ///   file descriptors of their parent, unless those descriptors have
3296        ///   been explicitly marked as close-on-exec.  This flag has no effect
3297        ///   over the "standard" file descriptors (stdin, stdout, stderr).
3298        #[doc(alias = "G_SUBPROCESS_FLAGS_INHERIT_FDS")]
3299        const INHERIT_FDS = ffi::G_SUBPROCESS_FLAGS_INHERIT_FDS as _;
3300        /// if path searching is
3301        ///   needed when spawning the subprocess, use the `PATH` in the launcher
3302        ///   environment. (Since: 2.72)
3303        #[cfg(feature = "v2_72")]
3304        #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
3305        #[doc(alias = "G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP")]
3306        const SEARCH_PATH_FROM_ENVP = ffi::G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP as _;
3307    }
3308}
3309
3310#[doc(hidden)]
3311impl IntoGlib for SubprocessFlags {
3312    type GlibType = ffi::GSubprocessFlags;
3313
3314    #[inline]
3315    fn into_glib(self) -> ffi::GSubprocessFlags {
3316        self.bits()
3317    }
3318}
3319
3320#[doc(hidden)]
3321impl FromGlib<ffi::GSubprocessFlags> for SubprocessFlags {
3322    #[inline]
3323    unsafe fn from_glib(value: ffi::GSubprocessFlags) -> Self {
3324        Self::from_bits_truncate(value)
3325    }
3326}
3327
3328impl StaticType for SubprocessFlags {
3329    #[inline]
3330    #[doc(alias = "g_subprocess_flags_get_type")]
3331    fn static_type() -> glib::Type {
3332        unsafe { from_glib(ffi::g_subprocess_flags_get_type()) }
3333    }
3334}
3335
3336impl glib::HasParamSpec for SubprocessFlags {
3337    type ParamSpec = glib::ParamSpecFlags;
3338    type SetValue = Self;
3339    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3340
3341    fn param_spec_builder() -> Self::BuilderFn {
3342        Self::ParamSpec::builder
3343    }
3344}
3345
3346impl glib::value::ValueType for SubprocessFlags {
3347    type Type = Self;
3348}
3349
3350unsafe impl<'a> glib::value::FromValue<'a> for SubprocessFlags {
3351    type Checker = glib::value::GenericValueTypeChecker<Self>;
3352
3353    #[inline]
3354    unsafe fn from_value(value: &'a glib::Value) -> Self {
3355        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3356    }
3357}
3358
3359impl ToValue for SubprocessFlags {
3360    #[inline]
3361    fn to_value(&self) -> glib::Value {
3362        let mut value = glib::Value::for_value_type::<Self>();
3363        unsafe {
3364            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3365        }
3366        value
3367    }
3368
3369    #[inline]
3370    fn value_type(&self) -> glib::Type {
3371        Self::static_type()
3372    }
3373}
3374
3375impl From<SubprocessFlags> for glib::Value {
3376    #[inline]
3377    fn from(v: SubprocessFlags) -> Self {
3378        ToValue::to_value(&v)
3379    }
3380}
3381
3382bitflags! {
3383    /// Flags to define future #GTestDBus behaviour.
3384    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3385    #[doc(alias = "GTestDBusFlags")]
3386    pub struct TestDBusFlags: u32 {
3387        /// No flags.
3388        #[doc(alias = "G_TEST_DBUS_NONE")]
3389        const NONE = ffi::G_TEST_DBUS_NONE as _;
3390    }
3391}
3392
3393#[doc(hidden)]
3394impl IntoGlib for TestDBusFlags {
3395    type GlibType = ffi::GTestDBusFlags;
3396
3397    #[inline]
3398    fn into_glib(self) -> ffi::GTestDBusFlags {
3399        self.bits()
3400    }
3401}
3402
3403#[doc(hidden)]
3404impl FromGlib<ffi::GTestDBusFlags> for TestDBusFlags {
3405    #[inline]
3406    unsafe fn from_glib(value: ffi::GTestDBusFlags) -> Self {
3407        Self::from_bits_truncate(value)
3408    }
3409}
3410
3411impl StaticType for TestDBusFlags {
3412    #[inline]
3413    #[doc(alias = "g_test_dbus_flags_get_type")]
3414    fn static_type() -> glib::Type {
3415        unsafe { from_glib(ffi::g_test_dbus_flags_get_type()) }
3416    }
3417}
3418
3419impl glib::HasParamSpec for TestDBusFlags {
3420    type ParamSpec = glib::ParamSpecFlags;
3421    type SetValue = Self;
3422    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3423
3424    fn param_spec_builder() -> Self::BuilderFn {
3425        Self::ParamSpec::builder
3426    }
3427}
3428
3429impl glib::value::ValueType for TestDBusFlags {
3430    type Type = Self;
3431}
3432
3433unsafe impl<'a> glib::value::FromValue<'a> for TestDBusFlags {
3434    type Checker = glib::value::GenericValueTypeChecker<Self>;
3435
3436    #[inline]
3437    unsafe fn from_value(value: &'a glib::Value) -> Self {
3438        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3439    }
3440}
3441
3442impl ToValue for TestDBusFlags {
3443    #[inline]
3444    fn to_value(&self) -> glib::Value {
3445        let mut value = glib::Value::for_value_type::<Self>();
3446        unsafe {
3447            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3448        }
3449        value
3450    }
3451
3452    #[inline]
3453    fn value_type(&self) -> glib::Type {
3454        Self::static_type()
3455    }
3456}
3457
3458impl From<TestDBusFlags> for glib::Value {
3459    #[inline]
3460    fn from(v: TestDBusFlags) -> Self {
3461        ToValue::to_value(&v)
3462    }
3463}
3464
3465bitflags! {
3466    /// A set of flags describing TLS certification validation. This can be
3467    /// used to describe why a particular certificate was rejected (for
3468    /// example, in #GTlsConnection::accept-certificate).
3469    ///
3470    /// GLib guarantees that if certificate verification fails, at least one
3471    /// flag will be set, but it does not guarantee that all possible flags
3472    /// will be set. Accordingly, you may not safely decide to ignore any
3473    /// particular type of error. For example, it would be incorrect to mask
3474    /// [`EXPIRED`][Self::EXPIRED] if you want to allow expired certificates,
3475    /// because this could potentially be the only error flag set even if
3476    /// other problems exist with the certificate.
3477    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3478    #[doc(alias = "GTlsCertificateFlags")]
3479    pub struct TlsCertificateFlags: u32 {
3480        /// The signing certificate authority is
3481        ///   not known.
3482        #[doc(alias = "G_TLS_CERTIFICATE_UNKNOWN_CA")]
3483        const UNKNOWN_CA = ffi::G_TLS_CERTIFICATE_UNKNOWN_CA as _;
3484        /// The certificate does not match the
3485        ///   expected identity of the site that it was retrieved from.
3486        #[doc(alias = "G_TLS_CERTIFICATE_BAD_IDENTITY")]
3487        const BAD_IDENTITY = ffi::G_TLS_CERTIFICATE_BAD_IDENTITY as _;
3488        /// The certificate's activation time
3489        ///   is still in the future
3490        #[doc(alias = "G_TLS_CERTIFICATE_NOT_ACTIVATED")]
3491        const NOT_ACTIVATED = ffi::G_TLS_CERTIFICATE_NOT_ACTIVATED as _;
3492        /// The certificate has expired
3493        #[doc(alias = "G_TLS_CERTIFICATE_EXPIRED")]
3494        const EXPIRED = ffi::G_TLS_CERTIFICATE_EXPIRED as _;
3495        /// The certificate has been revoked
3496        ///   according to the #GTlsConnection's certificate revocation list.
3497        #[doc(alias = "G_TLS_CERTIFICATE_REVOKED")]
3498        const REVOKED = ffi::G_TLS_CERTIFICATE_REVOKED as _;
3499        /// The certificate's algorithm is
3500        ///   considered insecure.
3501        #[doc(alias = "G_TLS_CERTIFICATE_INSECURE")]
3502        const INSECURE = ffi::G_TLS_CERTIFICATE_INSECURE as _;
3503        /// Some other error occurred validating
3504        ///   the certificate
3505        #[doc(alias = "G_TLS_CERTIFICATE_GENERIC_ERROR")]
3506        const GENERIC_ERROR = ffi::G_TLS_CERTIFICATE_GENERIC_ERROR as _;
3507        /// the combination of all of the above
3508        ///   flags
3509        #[doc(alias = "G_TLS_CERTIFICATE_VALIDATE_ALL")]
3510        const VALIDATE_ALL = ffi::G_TLS_CERTIFICATE_VALIDATE_ALL as _;
3511    }
3512}
3513
3514#[doc(hidden)]
3515impl IntoGlib for TlsCertificateFlags {
3516    type GlibType = ffi::GTlsCertificateFlags;
3517
3518    #[inline]
3519    fn into_glib(self) -> ffi::GTlsCertificateFlags {
3520        self.bits()
3521    }
3522}
3523
3524#[doc(hidden)]
3525impl FromGlib<ffi::GTlsCertificateFlags> for TlsCertificateFlags {
3526    #[inline]
3527    unsafe fn from_glib(value: ffi::GTlsCertificateFlags) -> Self {
3528        Self::from_bits_truncate(value)
3529    }
3530}
3531
3532impl StaticType for TlsCertificateFlags {
3533    #[inline]
3534    #[doc(alias = "g_tls_certificate_flags_get_type")]
3535    fn static_type() -> glib::Type {
3536        unsafe { from_glib(ffi::g_tls_certificate_flags_get_type()) }
3537    }
3538}
3539
3540impl glib::HasParamSpec for TlsCertificateFlags {
3541    type ParamSpec = glib::ParamSpecFlags;
3542    type SetValue = Self;
3543    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3544
3545    fn param_spec_builder() -> Self::BuilderFn {
3546        Self::ParamSpec::builder
3547    }
3548}
3549
3550impl glib::value::ValueType for TlsCertificateFlags {
3551    type Type = Self;
3552}
3553
3554unsafe impl<'a> glib::value::FromValue<'a> for TlsCertificateFlags {
3555    type Checker = glib::value::GenericValueTypeChecker<Self>;
3556
3557    #[inline]
3558    unsafe fn from_value(value: &'a glib::Value) -> Self {
3559        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3560    }
3561}
3562
3563impl ToValue for TlsCertificateFlags {
3564    #[inline]
3565    fn to_value(&self) -> glib::Value {
3566        let mut value = glib::Value::for_value_type::<Self>();
3567        unsafe {
3568            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3569        }
3570        value
3571    }
3572
3573    #[inline]
3574    fn value_type(&self) -> glib::Type {
3575        Self::static_type()
3576    }
3577}
3578
3579impl From<TlsCertificateFlags> for glib::Value {
3580    #[inline]
3581    fn from(v: TlsCertificateFlags) -> Self {
3582        ToValue::to_value(&v)
3583    }
3584}
3585
3586bitflags! {
3587    /// Flags for g_tls_interaction_request_certificate(),
3588    /// g_tls_interaction_request_certificate_async(), and
3589    /// g_tls_interaction_invoke_request_certificate().
3590    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3591    #[doc(alias = "GTlsCertificateRequestFlags")]
3592    pub struct TlsCertificateRequestFlags: u32 {
3593        /// No flags
3594        #[doc(alias = "G_TLS_CERTIFICATE_REQUEST_NONE")]
3595        const NONE = ffi::G_TLS_CERTIFICATE_REQUEST_NONE as _;
3596    }
3597}
3598
3599#[doc(hidden)]
3600impl IntoGlib for TlsCertificateRequestFlags {
3601    type GlibType = ffi::GTlsCertificateRequestFlags;
3602
3603    #[inline]
3604    fn into_glib(self) -> ffi::GTlsCertificateRequestFlags {
3605        self.bits()
3606    }
3607}
3608
3609#[doc(hidden)]
3610impl FromGlib<ffi::GTlsCertificateRequestFlags> for TlsCertificateRequestFlags {
3611    #[inline]
3612    unsafe fn from_glib(value: ffi::GTlsCertificateRequestFlags) -> Self {
3613        Self::from_bits_truncate(value)
3614    }
3615}
3616
3617impl StaticType for TlsCertificateRequestFlags {
3618    #[inline]
3619    #[doc(alias = "g_tls_certificate_request_flags_get_type")]
3620    fn static_type() -> glib::Type {
3621        unsafe { from_glib(ffi::g_tls_certificate_request_flags_get_type()) }
3622    }
3623}
3624
3625impl glib::HasParamSpec for TlsCertificateRequestFlags {
3626    type ParamSpec = glib::ParamSpecFlags;
3627    type SetValue = Self;
3628    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3629
3630    fn param_spec_builder() -> Self::BuilderFn {
3631        Self::ParamSpec::builder
3632    }
3633}
3634
3635impl glib::value::ValueType for TlsCertificateRequestFlags {
3636    type Type = Self;
3637}
3638
3639unsafe impl<'a> glib::value::FromValue<'a> for TlsCertificateRequestFlags {
3640    type Checker = glib::value::GenericValueTypeChecker<Self>;
3641
3642    #[inline]
3643    unsafe fn from_value(value: &'a glib::Value) -> Self {
3644        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3645    }
3646}
3647
3648impl ToValue for TlsCertificateRequestFlags {
3649    #[inline]
3650    fn to_value(&self) -> glib::Value {
3651        let mut value = glib::Value::for_value_type::<Self>();
3652        unsafe {
3653            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3654        }
3655        value
3656    }
3657
3658    #[inline]
3659    fn value_type(&self) -> glib::Type {
3660        Self::static_type()
3661    }
3662}
3663
3664impl From<TlsCertificateRequestFlags> for glib::Value {
3665    #[inline]
3666    fn from(v: TlsCertificateRequestFlags) -> Self {
3667        ToValue::to_value(&v)
3668    }
3669}
3670
3671bitflags! {
3672    /// Flags for g_tls_database_lookup_certificate_for_handle(),
3673    /// g_tls_database_lookup_certificate_issuer(),
3674    /// and g_tls_database_lookup_certificates_issued_by().
3675    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3676    #[doc(alias = "GTlsDatabaseLookupFlags")]
3677    pub struct TlsDatabaseLookupFlags: u32 {
3678        /// No lookup flags
3679        #[doc(alias = "G_TLS_DATABASE_LOOKUP_NONE")]
3680        const NONE = ffi::G_TLS_DATABASE_LOOKUP_NONE as _;
3681        /// Restrict lookup to certificates that have
3682        ///     a private key.
3683        #[doc(alias = "G_TLS_DATABASE_LOOKUP_KEYPAIR")]
3684        const KEYPAIR = ffi::G_TLS_DATABASE_LOOKUP_KEYPAIR as _;
3685    }
3686}
3687
3688#[doc(hidden)]
3689impl IntoGlib for TlsDatabaseLookupFlags {
3690    type GlibType = ffi::GTlsDatabaseLookupFlags;
3691
3692    #[inline]
3693    fn into_glib(self) -> ffi::GTlsDatabaseLookupFlags {
3694        self.bits()
3695    }
3696}
3697
3698#[doc(hidden)]
3699impl FromGlib<ffi::GTlsDatabaseLookupFlags> for TlsDatabaseLookupFlags {
3700    #[inline]
3701    unsafe fn from_glib(value: ffi::GTlsDatabaseLookupFlags) -> Self {
3702        Self::from_bits_truncate(value)
3703    }
3704}
3705
3706impl StaticType for TlsDatabaseLookupFlags {
3707    #[inline]
3708    #[doc(alias = "g_tls_database_lookup_flags_get_type")]
3709    fn static_type() -> glib::Type {
3710        unsafe { from_glib(ffi::g_tls_database_lookup_flags_get_type()) }
3711    }
3712}
3713
3714impl glib::HasParamSpec for TlsDatabaseLookupFlags {
3715    type ParamSpec = glib::ParamSpecFlags;
3716    type SetValue = Self;
3717    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3718
3719    fn param_spec_builder() -> Self::BuilderFn {
3720        Self::ParamSpec::builder
3721    }
3722}
3723
3724impl glib::value::ValueType for TlsDatabaseLookupFlags {
3725    type Type = Self;
3726}
3727
3728unsafe impl<'a> glib::value::FromValue<'a> for TlsDatabaseLookupFlags {
3729    type Checker = glib::value::GenericValueTypeChecker<Self>;
3730
3731    #[inline]
3732    unsafe fn from_value(value: &'a glib::Value) -> Self {
3733        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3734    }
3735}
3736
3737impl ToValue for TlsDatabaseLookupFlags {
3738    #[inline]
3739    fn to_value(&self) -> glib::Value {
3740        let mut value = glib::Value::for_value_type::<Self>();
3741        unsafe {
3742            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3743        }
3744        value
3745    }
3746
3747    #[inline]
3748    fn value_type(&self) -> glib::Type {
3749        Self::static_type()
3750    }
3751}
3752
3753impl From<TlsDatabaseLookupFlags> for glib::Value {
3754    #[inline]
3755    fn from(v: TlsDatabaseLookupFlags) -> Self {
3756        ToValue::to_value(&v)
3757    }
3758}
3759
3760bitflags! {
3761    /// Flags for g_tls_database_verify_chain().
3762    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3763    #[doc(alias = "GTlsDatabaseVerifyFlags")]
3764    pub struct TlsDatabaseVerifyFlags: u32 {
3765        /// No verification flags
3766        #[doc(alias = "G_TLS_DATABASE_VERIFY_NONE")]
3767        const NONE = ffi::G_TLS_DATABASE_VERIFY_NONE as _;
3768    }
3769}
3770
3771#[doc(hidden)]
3772impl IntoGlib for TlsDatabaseVerifyFlags {
3773    type GlibType = ffi::GTlsDatabaseVerifyFlags;
3774
3775    #[inline]
3776    fn into_glib(self) -> ffi::GTlsDatabaseVerifyFlags {
3777        self.bits()
3778    }
3779}
3780
3781#[doc(hidden)]
3782impl FromGlib<ffi::GTlsDatabaseVerifyFlags> for TlsDatabaseVerifyFlags {
3783    #[inline]
3784    unsafe fn from_glib(value: ffi::GTlsDatabaseVerifyFlags) -> Self {
3785        Self::from_bits_truncate(value)
3786    }
3787}
3788
3789impl StaticType for TlsDatabaseVerifyFlags {
3790    #[inline]
3791    #[doc(alias = "g_tls_database_verify_flags_get_type")]
3792    fn static_type() -> glib::Type {
3793        unsafe { from_glib(ffi::g_tls_database_verify_flags_get_type()) }
3794    }
3795}
3796
3797impl glib::HasParamSpec for TlsDatabaseVerifyFlags {
3798    type ParamSpec = glib::ParamSpecFlags;
3799    type SetValue = Self;
3800    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3801
3802    fn param_spec_builder() -> Self::BuilderFn {
3803        Self::ParamSpec::builder
3804    }
3805}
3806
3807impl glib::value::ValueType for TlsDatabaseVerifyFlags {
3808    type Type = Self;
3809}
3810
3811unsafe impl<'a> glib::value::FromValue<'a> for TlsDatabaseVerifyFlags {
3812    type Checker = glib::value::GenericValueTypeChecker<Self>;
3813
3814    #[inline]
3815    unsafe fn from_value(value: &'a glib::Value) -> Self {
3816        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3817    }
3818}
3819
3820impl ToValue for TlsDatabaseVerifyFlags {
3821    #[inline]
3822    fn to_value(&self) -> glib::Value {
3823        let mut value = glib::Value::for_value_type::<Self>();
3824        unsafe {
3825            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3826        }
3827        value
3828    }
3829
3830    #[inline]
3831    fn value_type(&self) -> glib::Type {
3832        Self::static_type()
3833    }
3834}
3835
3836impl From<TlsDatabaseVerifyFlags> for glib::Value {
3837    #[inline]
3838    fn from(v: TlsDatabaseVerifyFlags) -> Self {
3839        ToValue::to_value(&v)
3840    }
3841}
3842
3843bitflags! {
3844    /// Various flags for the password.
3845    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3846    #[doc(alias = "GTlsPasswordFlags")]
3847    pub struct TlsPasswordFlags: u32 {
3848        /// No flags
3849        #[doc(alias = "G_TLS_PASSWORD_NONE")]
3850        const NONE = ffi::G_TLS_PASSWORD_NONE as _;
3851        /// The password was wrong, and the user should retry.
3852        #[doc(alias = "G_TLS_PASSWORD_RETRY")]
3853        const RETRY = ffi::G_TLS_PASSWORD_RETRY as _;
3854        /// Hint to the user that the password has been
3855        ///    wrong many times, and the user may not have many chances left.
3856        #[doc(alias = "G_TLS_PASSWORD_MANY_TRIES")]
3857        const MANY_TRIES = ffi::G_TLS_PASSWORD_MANY_TRIES as _;
3858        /// Hint to the user that this is the last try to get
3859        ///    this password right.
3860        #[doc(alias = "G_TLS_PASSWORD_FINAL_TRY")]
3861        const FINAL_TRY = ffi::G_TLS_PASSWORD_FINAL_TRY as _;
3862        /// For PKCS #11, the user PIN is required.
3863        ///    Since: 2.70.
3864        #[doc(alias = "G_TLS_PASSWORD_PKCS11_USER")]
3865        const PKCS11_USER = ffi::G_TLS_PASSWORD_PKCS11_USER as _;
3866        /// For PKCS #11, the security officer
3867        ///    PIN is required. Since: 2.70.
3868        #[doc(alias = "G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER")]
3869        const PKCS11_SECURITY_OFFICER = ffi::G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER as _;
3870        /// For PKCS #11, the context-specific
3871        ///    PIN is required. Since: 2.70.
3872        #[doc(alias = "G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC")]
3873        const PKCS11_CONTEXT_SPECIFIC = ffi::G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC as _;
3874    }
3875}
3876
3877#[doc(hidden)]
3878impl IntoGlib for TlsPasswordFlags {
3879    type GlibType = ffi::GTlsPasswordFlags;
3880
3881    #[inline]
3882    fn into_glib(self) -> ffi::GTlsPasswordFlags {
3883        self.bits()
3884    }
3885}
3886
3887#[doc(hidden)]
3888impl FromGlib<ffi::GTlsPasswordFlags> for TlsPasswordFlags {
3889    #[inline]
3890    unsafe fn from_glib(value: ffi::GTlsPasswordFlags) -> Self {
3891        Self::from_bits_truncate(value)
3892    }
3893}
3894
3895impl StaticType for TlsPasswordFlags {
3896    #[inline]
3897    #[doc(alias = "g_tls_password_flags_get_type")]
3898    fn static_type() -> glib::Type {
3899        unsafe { from_glib(ffi::g_tls_password_flags_get_type()) }
3900    }
3901}
3902
3903impl glib::HasParamSpec for TlsPasswordFlags {
3904    type ParamSpec = glib::ParamSpecFlags;
3905    type SetValue = Self;
3906    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3907
3908    fn param_spec_builder() -> Self::BuilderFn {
3909        Self::ParamSpec::builder
3910    }
3911}
3912
3913impl glib::value::ValueType for TlsPasswordFlags {
3914    type Type = Self;
3915}
3916
3917unsafe impl<'a> glib::value::FromValue<'a> for TlsPasswordFlags {
3918    type Checker = glib::value::GenericValueTypeChecker<Self>;
3919
3920    #[inline]
3921    unsafe fn from_value(value: &'a glib::Value) -> Self {
3922        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3923    }
3924}
3925
3926impl ToValue for TlsPasswordFlags {
3927    #[inline]
3928    fn to_value(&self) -> glib::Value {
3929        let mut value = glib::Value::for_value_type::<Self>();
3930        unsafe {
3931            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3932        }
3933        value
3934    }
3935
3936    #[inline]
3937    fn value_type(&self) -> glib::Type {
3938        Self::static_type()
3939    }
3940}
3941
3942impl From<TlsPasswordFlags> for glib::Value {
3943    #[inline]
3944    fn from(v: TlsPasswordFlags) -> Self {
3945        ToValue::to_value(&v)
3946    }
3947}