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        /// Prefers protocols that work across user namespace boundaries during
823        /// authentication.
824        ///
825        /// When authenticating, try to use protocols that work across a Linux user
826        /// namespace boundary, even if this reduces interoperability with older D-Bus
827        /// implementations. This currently affects client-side `EXTERNAL`
828        /// authentication, for which this flag makes connections to a server in
829        /// another user namespace succeed, but causes a deadlock when connecting to a
830        /// GDBus server older than 2.73.3.
831        #[cfg(feature = "v2_74")]
832        #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
833        #[doc(alias = "G_DBUS_CONNECTION_FLAGS_CROSS_NAMESPACE")]
834        const CROSS_NAMESPACE = ffi::G_DBUS_CONNECTION_FLAGS_CROSS_NAMESPACE as _;
835    }
836}
837
838#[doc(hidden)]
839impl IntoGlib for DBusConnectionFlags {
840    type GlibType = ffi::GDBusConnectionFlags;
841
842    #[inline]
843    fn into_glib(self) -> ffi::GDBusConnectionFlags {
844        self.bits()
845    }
846}
847
848#[doc(hidden)]
849impl FromGlib<ffi::GDBusConnectionFlags> for DBusConnectionFlags {
850    #[inline]
851    unsafe fn from_glib(value: ffi::GDBusConnectionFlags) -> Self {
852        Self::from_bits_truncate(value)
853    }
854}
855
856impl StaticType for DBusConnectionFlags {
857    #[inline]
858    #[doc(alias = "g_dbus_connection_flags_get_type")]
859    fn static_type() -> glib::Type {
860        unsafe { from_glib(ffi::g_dbus_connection_flags_get_type()) }
861    }
862}
863
864impl glib::HasParamSpec for DBusConnectionFlags {
865    type ParamSpec = glib::ParamSpecFlags;
866    type SetValue = Self;
867    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
868
869    fn param_spec_builder() -> Self::BuilderFn {
870        Self::ParamSpec::builder
871    }
872}
873
874impl glib::value::ValueType for DBusConnectionFlags {
875    type Type = Self;
876}
877
878unsafe impl<'a> glib::value::FromValue<'a> for DBusConnectionFlags {
879    type Checker = glib::value::GenericValueTypeChecker<Self>;
880
881    #[inline]
882    unsafe fn from_value(value: &'a glib::Value) -> Self {
883        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
884    }
885}
886
887impl ToValue for DBusConnectionFlags {
888    #[inline]
889    fn to_value(&self) -> glib::Value {
890        let mut value = glib::Value::for_value_type::<Self>();
891        unsafe {
892            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
893        }
894        value
895    }
896
897    #[inline]
898    fn value_type(&self) -> glib::Type {
899        Self::static_type()
900    }
901}
902
903impl From<DBusConnectionFlags> for glib::Value {
904    #[inline]
905    fn from(v: DBusConnectionFlags) -> Self {
906        ToValue::to_value(&v)
907    }
908}
909
910bitflags! {
911    /// Flags describing the behavior of a #GDBusInterfaceSkeleton instance.
912    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
913    #[doc(alias = "GDBusInterfaceSkeletonFlags")]
914    pub struct DBusInterfaceSkeletonFlags: u32 {
915        /// No flags set.
916        #[doc(alias = "G_DBUS_INTERFACE_SKELETON_FLAGS_NONE")]
917        const NONE = ffi::G_DBUS_INTERFACE_SKELETON_FLAGS_NONE as _;
918        /// Each method invocation is handled in
919        ///   a thread dedicated to the invocation. This means that the method implementation can use blocking IO
920        ///   without blocking any other part of the process. It also means that the method implementation must
921        ///   use locking to access data structures used by other threads.
922        #[doc(alias = "G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD")]
923        const HANDLE_METHOD_INVOCATIONS_IN_THREAD = ffi::G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD as _;
924    }
925}
926
927#[doc(hidden)]
928impl IntoGlib for DBusInterfaceSkeletonFlags {
929    type GlibType = ffi::GDBusInterfaceSkeletonFlags;
930
931    #[inline]
932    fn into_glib(self) -> ffi::GDBusInterfaceSkeletonFlags {
933        self.bits()
934    }
935}
936
937#[doc(hidden)]
938impl FromGlib<ffi::GDBusInterfaceSkeletonFlags> for DBusInterfaceSkeletonFlags {
939    #[inline]
940    unsafe fn from_glib(value: ffi::GDBusInterfaceSkeletonFlags) -> Self {
941        Self::from_bits_truncate(value)
942    }
943}
944
945impl StaticType for DBusInterfaceSkeletonFlags {
946    #[inline]
947    #[doc(alias = "g_dbus_interface_skeleton_flags_get_type")]
948    fn static_type() -> glib::Type {
949        unsafe { from_glib(ffi::g_dbus_interface_skeleton_flags_get_type()) }
950    }
951}
952
953impl glib::HasParamSpec for DBusInterfaceSkeletonFlags {
954    type ParamSpec = glib::ParamSpecFlags;
955    type SetValue = Self;
956    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
957
958    fn param_spec_builder() -> Self::BuilderFn {
959        Self::ParamSpec::builder
960    }
961}
962
963impl glib::value::ValueType for DBusInterfaceSkeletonFlags {
964    type Type = Self;
965}
966
967unsafe impl<'a> glib::value::FromValue<'a> for DBusInterfaceSkeletonFlags {
968    type Checker = glib::value::GenericValueTypeChecker<Self>;
969
970    #[inline]
971    unsafe fn from_value(value: &'a glib::Value) -> Self {
972        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
973    }
974}
975
976impl ToValue for DBusInterfaceSkeletonFlags {
977    #[inline]
978    fn to_value(&self) -> glib::Value {
979        let mut value = glib::Value::for_value_type::<Self>();
980        unsafe {
981            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
982        }
983        value
984    }
985
986    #[inline]
987    fn value_type(&self) -> glib::Type {
988        Self::static_type()
989    }
990}
991
992impl From<DBusInterfaceSkeletonFlags> for glib::Value {
993    #[inline]
994    fn from(v: DBusInterfaceSkeletonFlags) -> Self {
995        ToValue::to_value(&v)
996    }
997}
998
999bitflags! {
1000    /// Message flags used in #GDBusMessage.
1001    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1002    #[doc(alias = "GDBusMessageFlags")]
1003    pub struct DBusMessageFlags: u32 {
1004        /// No flags set.
1005        #[doc(alias = "G_DBUS_MESSAGE_FLAGS_NONE")]
1006        const NONE = ffi::G_DBUS_MESSAGE_FLAGS_NONE as _;
1007        /// A reply is not expected.
1008        #[doc(alias = "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED")]
1009        const NO_REPLY_EXPECTED = ffi::G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED as _;
1010        /// The bus must not launch an
1011        /// owner for the destination name in response to this message.
1012        #[doc(alias = "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START")]
1013        const NO_AUTO_START = ffi::G_DBUS_MESSAGE_FLAGS_NO_AUTO_START as _;
1014        /// If set on a method
1015        /// call, this flag means that the caller is prepared to wait for interactive
1016        /// authorization. Since 2.46.
1017        #[doc(alias = "G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION")]
1018        const ALLOW_INTERACTIVE_AUTHORIZATION = ffi::G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION as _;
1019    }
1020}
1021
1022#[doc(hidden)]
1023impl IntoGlib for DBusMessageFlags {
1024    type GlibType = ffi::GDBusMessageFlags;
1025
1026    #[inline]
1027    fn into_glib(self) -> ffi::GDBusMessageFlags {
1028        self.bits()
1029    }
1030}
1031
1032#[doc(hidden)]
1033impl FromGlib<ffi::GDBusMessageFlags> for DBusMessageFlags {
1034    #[inline]
1035    unsafe fn from_glib(value: ffi::GDBusMessageFlags) -> Self {
1036        Self::from_bits_truncate(value)
1037    }
1038}
1039
1040impl StaticType for DBusMessageFlags {
1041    #[inline]
1042    #[doc(alias = "g_dbus_message_flags_get_type")]
1043    fn static_type() -> glib::Type {
1044        unsafe { from_glib(ffi::g_dbus_message_flags_get_type()) }
1045    }
1046}
1047
1048impl glib::HasParamSpec for DBusMessageFlags {
1049    type ParamSpec = glib::ParamSpecFlags;
1050    type SetValue = Self;
1051    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1052
1053    fn param_spec_builder() -> Self::BuilderFn {
1054        Self::ParamSpec::builder
1055    }
1056}
1057
1058impl glib::value::ValueType for DBusMessageFlags {
1059    type Type = Self;
1060}
1061
1062unsafe impl<'a> glib::value::FromValue<'a> for DBusMessageFlags {
1063    type Checker = glib::value::GenericValueTypeChecker<Self>;
1064
1065    #[inline]
1066    unsafe fn from_value(value: &'a glib::Value) -> Self {
1067        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1068    }
1069}
1070
1071impl ToValue for DBusMessageFlags {
1072    #[inline]
1073    fn to_value(&self) -> glib::Value {
1074        let mut value = glib::Value::for_value_type::<Self>();
1075        unsafe {
1076            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1077        }
1078        value
1079    }
1080
1081    #[inline]
1082    fn value_type(&self) -> glib::Type {
1083        Self::static_type()
1084    }
1085}
1086
1087impl From<DBusMessageFlags> for glib::Value {
1088    #[inline]
1089    fn from(v: DBusMessageFlags) -> Self {
1090        ToValue::to_value(&v)
1091    }
1092}
1093
1094bitflags! {
1095    /// Flags used when constructing a #GDBusObjectManagerClient.
1096    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1097    #[doc(alias = "GDBusObjectManagerClientFlags")]
1098    pub struct DBusObjectManagerClientFlags: u32 {
1099        /// No flags set.
1100        #[doc(alias = "G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE")]
1101        const NONE = ffi::G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE as _;
1102        /// If not set and the
1103        ///   manager is for a well-known name, then request the bus to launch
1104        ///   an owner for the name if no-one owns the name. This flag can only
1105        ///   be used in managers for well-known names.
1106        #[doc(alias = "G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START")]
1107        const DO_NOT_AUTO_START = ffi::G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START as _;
1108    }
1109}
1110
1111#[doc(hidden)]
1112impl IntoGlib for DBusObjectManagerClientFlags {
1113    type GlibType = ffi::GDBusObjectManagerClientFlags;
1114
1115    #[inline]
1116    fn into_glib(self) -> ffi::GDBusObjectManagerClientFlags {
1117        self.bits()
1118    }
1119}
1120
1121#[doc(hidden)]
1122impl FromGlib<ffi::GDBusObjectManagerClientFlags> for DBusObjectManagerClientFlags {
1123    #[inline]
1124    unsafe fn from_glib(value: ffi::GDBusObjectManagerClientFlags) -> Self {
1125        Self::from_bits_truncate(value)
1126    }
1127}
1128
1129impl StaticType for DBusObjectManagerClientFlags {
1130    #[inline]
1131    #[doc(alias = "g_dbus_object_manager_client_flags_get_type")]
1132    fn static_type() -> glib::Type {
1133        unsafe { from_glib(ffi::g_dbus_object_manager_client_flags_get_type()) }
1134    }
1135}
1136
1137impl glib::HasParamSpec for DBusObjectManagerClientFlags {
1138    type ParamSpec = glib::ParamSpecFlags;
1139    type SetValue = Self;
1140    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1141
1142    fn param_spec_builder() -> Self::BuilderFn {
1143        Self::ParamSpec::builder
1144    }
1145}
1146
1147impl glib::value::ValueType for DBusObjectManagerClientFlags {
1148    type Type = Self;
1149}
1150
1151unsafe impl<'a> glib::value::FromValue<'a> for DBusObjectManagerClientFlags {
1152    type Checker = glib::value::GenericValueTypeChecker<Self>;
1153
1154    #[inline]
1155    unsafe fn from_value(value: &'a glib::Value) -> Self {
1156        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1157    }
1158}
1159
1160impl ToValue for DBusObjectManagerClientFlags {
1161    #[inline]
1162    fn to_value(&self) -> glib::Value {
1163        let mut value = glib::Value::for_value_type::<Self>();
1164        unsafe {
1165            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1166        }
1167        value
1168    }
1169
1170    #[inline]
1171    fn value_type(&self) -> glib::Type {
1172        Self::static_type()
1173    }
1174}
1175
1176impl From<DBusObjectManagerClientFlags> for glib::Value {
1177    #[inline]
1178    fn from(v: DBusObjectManagerClientFlags) -> Self {
1179        ToValue::to_value(&v)
1180    }
1181}
1182
1183bitflags! {
1184    /// Flags describing the access control of a D-Bus property.
1185    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1186    #[doc(alias = "GDBusPropertyInfoFlags")]
1187    pub struct DBusPropertyInfoFlags: u32 {
1188        /// No flags set.
1189        #[doc(alias = "G_DBUS_PROPERTY_INFO_FLAGS_NONE")]
1190        const NONE = ffi::G_DBUS_PROPERTY_INFO_FLAGS_NONE as _;
1191        /// Property is readable.
1192        #[doc(alias = "G_DBUS_PROPERTY_INFO_FLAGS_READABLE")]
1193        const READABLE = ffi::G_DBUS_PROPERTY_INFO_FLAGS_READABLE as _;
1194        /// Property is writable.
1195        #[doc(alias = "G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE")]
1196        const WRITABLE = ffi::G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE as _;
1197    }
1198}
1199
1200#[doc(hidden)]
1201impl IntoGlib for DBusPropertyInfoFlags {
1202    type GlibType = ffi::GDBusPropertyInfoFlags;
1203
1204    #[inline]
1205    fn into_glib(self) -> ffi::GDBusPropertyInfoFlags {
1206        self.bits()
1207    }
1208}
1209
1210#[doc(hidden)]
1211impl FromGlib<ffi::GDBusPropertyInfoFlags> for DBusPropertyInfoFlags {
1212    #[inline]
1213    unsafe fn from_glib(value: ffi::GDBusPropertyInfoFlags) -> Self {
1214        Self::from_bits_truncate(value)
1215    }
1216}
1217
1218impl StaticType for DBusPropertyInfoFlags {
1219    #[inline]
1220    #[doc(alias = "g_dbus_property_info_flags_get_type")]
1221    fn static_type() -> glib::Type {
1222        unsafe { from_glib(ffi::g_dbus_property_info_flags_get_type()) }
1223    }
1224}
1225
1226impl glib::HasParamSpec for DBusPropertyInfoFlags {
1227    type ParamSpec = glib::ParamSpecFlags;
1228    type SetValue = Self;
1229    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1230
1231    fn param_spec_builder() -> Self::BuilderFn {
1232        Self::ParamSpec::builder
1233    }
1234}
1235
1236impl glib::value::ValueType for DBusPropertyInfoFlags {
1237    type Type = Self;
1238}
1239
1240unsafe impl<'a> glib::value::FromValue<'a> for DBusPropertyInfoFlags {
1241    type Checker = glib::value::GenericValueTypeChecker<Self>;
1242
1243    #[inline]
1244    unsafe fn from_value(value: &'a glib::Value) -> Self {
1245        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1246    }
1247}
1248
1249impl ToValue for DBusPropertyInfoFlags {
1250    #[inline]
1251    fn to_value(&self) -> glib::Value {
1252        let mut value = glib::Value::for_value_type::<Self>();
1253        unsafe {
1254            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1255        }
1256        value
1257    }
1258
1259    #[inline]
1260    fn value_type(&self) -> glib::Type {
1261        Self::static_type()
1262    }
1263}
1264
1265impl From<DBusPropertyInfoFlags> for glib::Value {
1266    #[inline]
1267    fn from(v: DBusPropertyInfoFlags) -> Self {
1268        ToValue::to_value(&v)
1269    }
1270}
1271
1272bitflags! {
1273    /// Flags used when constructing an instance of a #GDBusProxy derived class.
1274    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1275    #[doc(alias = "GDBusProxyFlags")]
1276    pub struct DBusProxyFlags: u32 {
1277        /// No flags set.
1278        #[doc(alias = "G_DBUS_PROXY_FLAGS_NONE")]
1279        const NONE = ffi::G_DBUS_PROXY_FLAGS_NONE as _;
1280        /// Don't load properties.
1281        #[doc(alias = "G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES")]
1282        const DO_NOT_LOAD_PROPERTIES = ffi::G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES as _;
1283        /// Don't connect to signals on the remote object.
1284        #[doc(alias = "G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS")]
1285        const DO_NOT_CONNECT_SIGNALS = ffi::G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS as _;
1286        /// If the proxy is for a well-known name,
1287        /// do not ask the bus to launch an owner during proxy initialization or a method call.
1288        /// This flag is only meaningful in proxies for well-known names.
1289        #[doc(alias = "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START")]
1290        const DO_NOT_AUTO_START = ffi::G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START as _;
1291        /// 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.
1292        #[doc(alias = "G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES")]
1293        const GET_INVALIDATED_PROPERTIES = ffi::G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES as _;
1294        /// If the proxy is for a well-known name,
1295        /// do not ask the bus to launch an owner during proxy initialization, but allow it to be
1296        /// autostarted by a method call. This flag is only meaningful in proxies for well-known names,
1297        /// and only if [`DO_NOT_AUTO_START`][Self::DO_NOT_AUTO_START] is not also specified.
1298        #[doc(alias = "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION")]
1299        const DO_NOT_AUTO_START_AT_CONSTRUCTION = ffi::G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION as _;
1300        /// Don't actually send the AddMatch D-Bus
1301        ///    call for this signal subscription. This gives you more control
1302        ///    over which match rules you add (but you must add them manually). (Since: 2.72)
1303        #[cfg(feature = "v2_70")]
1304        #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
1305        #[doc(alias = "G_DBUS_PROXY_FLAGS_NO_MATCH_RULE")]
1306        const NO_MATCH_RULE = ffi::G_DBUS_PROXY_FLAGS_NO_MATCH_RULE as _;
1307    }
1308}
1309
1310#[doc(hidden)]
1311impl IntoGlib for DBusProxyFlags {
1312    type GlibType = ffi::GDBusProxyFlags;
1313
1314    #[inline]
1315    fn into_glib(self) -> ffi::GDBusProxyFlags {
1316        self.bits()
1317    }
1318}
1319
1320#[doc(hidden)]
1321impl FromGlib<ffi::GDBusProxyFlags> for DBusProxyFlags {
1322    #[inline]
1323    unsafe fn from_glib(value: ffi::GDBusProxyFlags) -> Self {
1324        Self::from_bits_truncate(value)
1325    }
1326}
1327
1328impl StaticType for DBusProxyFlags {
1329    #[inline]
1330    #[doc(alias = "g_dbus_proxy_flags_get_type")]
1331    fn static_type() -> glib::Type {
1332        unsafe { from_glib(ffi::g_dbus_proxy_flags_get_type()) }
1333    }
1334}
1335
1336impl glib::HasParamSpec for DBusProxyFlags {
1337    type ParamSpec = glib::ParamSpecFlags;
1338    type SetValue = Self;
1339    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1340
1341    fn param_spec_builder() -> Self::BuilderFn {
1342        Self::ParamSpec::builder
1343    }
1344}
1345
1346impl glib::value::ValueType for DBusProxyFlags {
1347    type Type = Self;
1348}
1349
1350unsafe impl<'a> glib::value::FromValue<'a> for DBusProxyFlags {
1351    type Checker = glib::value::GenericValueTypeChecker<Self>;
1352
1353    #[inline]
1354    unsafe fn from_value(value: &'a glib::Value) -> Self {
1355        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1356    }
1357}
1358
1359impl ToValue for DBusProxyFlags {
1360    #[inline]
1361    fn to_value(&self) -> glib::Value {
1362        let mut value = glib::Value::for_value_type::<Self>();
1363        unsafe {
1364            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1365        }
1366        value
1367    }
1368
1369    #[inline]
1370    fn value_type(&self) -> glib::Type {
1371        Self::static_type()
1372    }
1373}
1374
1375impl From<DBusProxyFlags> for glib::Value {
1376    #[inline]
1377    fn from(v: DBusProxyFlags) -> Self {
1378        ToValue::to_value(&v)
1379    }
1380}
1381
1382bitflags! {
1383    /// Flags used when sending #GDBusMessages on a #GDBusConnection.
1384    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1385    #[doc(alias = "GDBusSendMessageFlags")]
1386    pub struct DBusSendMessageFlags: u32 {
1387        /// No flags set.
1388        #[doc(alias = "G_DBUS_SEND_MESSAGE_FLAGS_NONE")]
1389        const NONE = ffi::G_DBUS_SEND_MESSAGE_FLAGS_NONE as _;
1390        /// Do not automatically
1391        /// assign a serial number from the #GDBusConnection object when
1392        /// sending a message.
1393        #[doc(alias = "G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL")]
1394        const PRESERVE_SERIAL = ffi::G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL as _;
1395    }
1396}
1397
1398#[doc(hidden)]
1399impl IntoGlib for DBusSendMessageFlags {
1400    type GlibType = ffi::GDBusSendMessageFlags;
1401
1402    #[inline]
1403    fn into_glib(self) -> ffi::GDBusSendMessageFlags {
1404        self.bits()
1405    }
1406}
1407
1408#[doc(hidden)]
1409impl FromGlib<ffi::GDBusSendMessageFlags> for DBusSendMessageFlags {
1410    #[inline]
1411    unsafe fn from_glib(value: ffi::GDBusSendMessageFlags) -> Self {
1412        Self::from_bits_truncate(value)
1413    }
1414}
1415
1416impl StaticType for DBusSendMessageFlags {
1417    #[inline]
1418    #[doc(alias = "g_dbus_send_message_flags_get_type")]
1419    fn static_type() -> glib::Type {
1420        unsafe { from_glib(ffi::g_dbus_send_message_flags_get_type()) }
1421    }
1422}
1423
1424impl glib::HasParamSpec for DBusSendMessageFlags {
1425    type ParamSpec = glib::ParamSpecFlags;
1426    type SetValue = Self;
1427    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1428
1429    fn param_spec_builder() -> Self::BuilderFn {
1430        Self::ParamSpec::builder
1431    }
1432}
1433
1434impl glib::value::ValueType for DBusSendMessageFlags {
1435    type Type = Self;
1436}
1437
1438unsafe impl<'a> glib::value::FromValue<'a> for DBusSendMessageFlags {
1439    type Checker = glib::value::GenericValueTypeChecker<Self>;
1440
1441    #[inline]
1442    unsafe fn from_value(value: &'a glib::Value) -> Self {
1443        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1444    }
1445}
1446
1447impl ToValue for DBusSendMessageFlags {
1448    #[inline]
1449    fn to_value(&self) -> glib::Value {
1450        let mut value = glib::Value::for_value_type::<Self>();
1451        unsafe {
1452            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1453        }
1454        value
1455    }
1456
1457    #[inline]
1458    fn value_type(&self) -> glib::Type {
1459        Self::static_type()
1460    }
1461}
1462
1463impl From<DBusSendMessageFlags> for glib::Value {
1464    #[inline]
1465    fn from(v: DBusSendMessageFlags) -> Self {
1466        ToValue::to_value(&v)
1467    }
1468}
1469
1470bitflags! {
1471    /// Flags used when creating a #GDBusServer.
1472    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1473    #[doc(alias = "GDBusServerFlags")]
1474    pub struct DBusServerFlags: u32 {
1475        /// No flags set.
1476        #[doc(alias = "G_DBUS_SERVER_FLAGS_NONE")]
1477        const NONE = ffi::G_DBUS_SERVER_FLAGS_NONE as _;
1478        /// All #GDBusServer::new-connection
1479        /// signals will run in separated dedicated threads (see signal for
1480        /// details).
1481        #[doc(alias = "G_DBUS_SERVER_FLAGS_RUN_IN_THREAD")]
1482        const RUN_IN_THREAD = ffi::G_DBUS_SERVER_FLAGS_RUN_IN_THREAD as _;
1483        /// Allow the anonymous
1484        /// authentication method.
1485        #[doc(alias = "G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS")]
1486        const AUTHENTICATION_ALLOW_ANONYMOUS = ffi::G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS as _;
1487        /// Require the UID of the
1488        /// peer to be the same as the UID of the server when authenticating. (Since: 2.68)
1489        #[doc(alias = "G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER")]
1490        const AUTHENTICATION_REQUIRE_SAME_USER = ffi::G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER as _;
1491    }
1492}
1493
1494#[doc(hidden)]
1495impl IntoGlib for DBusServerFlags {
1496    type GlibType = ffi::GDBusServerFlags;
1497
1498    #[inline]
1499    fn into_glib(self) -> ffi::GDBusServerFlags {
1500        self.bits()
1501    }
1502}
1503
1504#[doc(hidden)]
1505impl FromGlib<ffi::GDBusServerFlags> for DBusServerFlags {
1506    #[inline]
1507    unsafe fn from_glib(value: ffi::GDBusServerFlags) -> Self {
1508        Self::from_bits_truncate(value)
1509    }
1510}
1511
1512impl StaticType for DBusServerFlags {
1513    #[inline]
1514    #[doc(alias = "g_dbus_server_flags_get_type")]
1515    fn static_type() -> glib::Type {
1516        unsafe { from_glib(ffi::g_dbus_server_flags_get_type()) }
1517    }
1518}
1519
1520impl glib::HasParamSpec for DBusServerFlags {
1521    type ParamSpec = glib::ParamSpecFlags;
1522    type SetValue = Self;
1523    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1524
1525    fn param_spec_builder() -> Self::BuilderFn {
1526        Self::ParamSpec::builder
1527    }
1528}
1529
1530impl glib::value::ValueType for DBusServerFlags {
1531    type Type = Self;
1532}
1533
1534unsafe impl<'a> glib::value::FromValue<'a> for DBusServerFlags {
1535    type Checker = glib::value::GenericValueTypeChecker<Self>;
1536
1537    #[inline]
1538    unsafe fn from_value(value: &'a glib::Value) -> Self {
1539        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1540    }
1541}
1542
1543impl ToValue for DBusServerFlags {
1544    #[inline]
1545    fn to_value(&self) -> glib::Value {
1546        let mut value = glib::Value::for_value_type::<Self>();
1547        unsafe {
1548            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1549        }
1550        value
1551    }
1552
1553    #[inline]
1554    fn value_type(&self) -> glib::Type {
1555        Self::static_type()
1556    }
1557}
1558
1559impl From<DBusServerFlags> for glib::Value {
1560    #[inline]
1561    fn from(v: DBusServerFlags) -> Self {
1562        ToValue::to_value(&v)
1563    }
1564}
1565
1566bitflags! {
1567    /// Flags used when subscribing to signals via g_dbus_connection_signal_subscribe().
1568    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1569    #[doc(alias = "GDBusSignalFlags")]
1570    pub struct DBusSignalFlags: u32 {
1571        /// No flags set.
1572        #[doc(alias = "G_DBUS_SIGNAL_FLAGS_NONE")]
1573        const NONE = ffi::G_DBUS_SIGNAL_FLAGS_NONE as _;
1574        /// Don't actually send the AddMatch
1575        /// D-Bus call for this signal subscription.  This gives you more control
1576        /// over which match rules you add (but you must add them manually).
1577        #[doc(alias = "G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE")]
1578        const NO_MATCH_RULE = ffi::G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE as _;
1579        /// Match first arguments that
1580        /// contain a bus or interface name with the given namespace.
1581        #[doc(alias = "G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE")]
1582        const MATCH_ARG0_NAMESPACE = ffi::G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE as _;
1583        /// Match first arguments that
1584        /// contain an object path that is either equivalent to the given path,
1585        /// or one of the paths is a subpath of the other.
1586        #[doc(alias = "G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH")]
1587        const MATCH_ARG0_PATH = ffi::G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH as _;
1588    }
1589}
1590
1591#[doc(hidden)]
1592impl IntoGlib for DBusSignalFlags {
1593    type GlibType = ffi::GDBusSignalFlags;
1594
1595    #[inline]
1596    fn into_glib(self) -> ffi::GDBusSignalFlags {
1597        self.bits()
1598    }
1599}
1600
1601#[doc(hidden)]
1602impl FromGlib<ffi::GDBusSignalFlags> for DBusSignalFlags {
1603    #[inline]
1604    unsafe fn from_glib(value: ffi::GDBusSignalFlags) -> Self {
1605        Self::from_bits_truncate(value)
1606    }
1607}
1608
1609impl StaticType for DBusSignalFlags {
1610    #[inline]
1611    #[doc(alias = "g_dbus_signal_flags_get_type")]
1612    fn static_type() -> glib::Type {
1613        unsafe { from_glib(ffi::g_dbus_signal_flags_get_type()) }
1614    }
1615}
1616
1617impl glib::HasParamSpec for DBusSignalFlags {
1618    type ParamSpec = glib::ParamSpecFlags;
1619    type SetValue = Self;
1620    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1621
1622    fn param_spec_builder() -> Self::BuilderFn {
1623        Self::ParamSpec::builder
1624    }
1625}
1626
1627impl glib::value::ValueType for DBusSignalFlags {
1628    type Type = Self;
1629}
1630
1631unsafe impl<'a> glib::value::FromValue<'a> for DBusSignalFlags {
1632    type Checker = glib::value::GenericValueTypeChecker<Self>;
1633
1634    #[inline]
1635    unsafe fn from_value(value: &'a glib::Value) -> Self {
1636        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1637    }
1638}
1639
1640impl ToValue for DBusSignalFlags {
1641    #[inline]
1642    fn to_value(&self) -> glib::Value {
1643        let mut value = glib::Value::for_value_type::<Self>();
1644        unsafe {
1645            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1646        }
1647        value
1648    }
1649
1650    #[inline]
1651    fn value_type(&self) -> glib::Type {
1652        Self::static_type()
1653    }
1654}
1655
1656impl From<DBusSignalFlags> for glib::Value {
1657    #[inline]
1658    fn from(v: DBusSignalFlags) -> Self {
1659        ToValue::to_value(&v)
1660    }
1661}
1662
1663bitflags! {
1664    /// Flags passed to g_dbus_connection_register_subtree().
1665    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1666    #[doc(alias = "GDBusSubtreeFlags")]
1667    pub struct DBusSubtreeFlags: u32 {
1668        /// No flags set.
1669        #[doc(alias = "G_DBUS_SUBTREE_FLAGS_NONE")]
1670        const NONE = ffi::G_DBUS_SUBTREE_FLAGS_NONE as _;
1671        /// Method calls to objects not in the enumerated range
1672        ///                                                       will still be dispatched. This is useful if you want
1673        ///                                                       to dynamically spawn objects in the subtree.
1674        #[doc(alias = "G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES")]
1675        const DISPATCH_TO_UNENUMERATED_NODES = ffi::G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES as _;
1676    }
1677}
1678
1679#[doc(hidden)]
1680impl IntoGlib for DBusSubtreeFlags {
1681    type GlibType = ffi::GDBusSubtreeFlags;
1682
1683    #[inline]
1684    fn into_glib(self) -> ffi::GDBusSubtreeFlags {
1685        self.bits()
1686    }
1687}
1688
1689#[doc(hidden)]
1690impl FromGlib<ffi::GDBusSubtreeFlags> for DBusSubtreeFlags {
1691    #[inline]
1692    unsafe fn from_glib(value: ffi::GDBusSubtreeFlags) -> Self {
1693        Self::from_bits_truncate(value)
1694    }
1695}
1696
1697impl StaticType for DBusSubtreeFlags {
1698    #[inline]
1699    #[doc(alias = "g_dbus_subtree_flags_get_type")]
1700    fn static_type() -> glib::Type {
1701        unsafe { from_glib(ffi::g_dbus_subtree_flags_get_type()) }
1702    }
1703}
1704
1705impl glib::HasParamSpec for DBusSubtreeFlags {
1706    type ParamSpec = glib::ParamSpecFlags;
1707    type SetValue = Self;
1708    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1709
1710    fn param_spec_builder() -> Self::BuilderFn {
1711        Self::ParamSpec::builder
1712    }
1713}
1714
1715impl glib::value::ValueType for DBusSubtreeFlags {
1716    type Type = Self;
1717}
1718
1719unsafe impl<'a> glib::value::FromValue<'a> for DBusSubtreeFlags {
1720    type Checker = glib::value::GenericValueTypeChecker<Self>;
1721
1722    #[inline]
1723    unsafe fn from_value(value: &'a glib::Value) -> Self {
1724        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1725    }
1726}
1727
1728impl ToValue for DBusSubtreeFlags {
1729    #[inline]
1730    fn to_value(&self) -> glib::Value {
1731        let mut value = glib::Value::for_value_type::<Self>();
1732        unsafe {
1733            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1734        }
1735        value
1736    }
1737
1738    #[inline]
1739    fn value_type(&self) -> glib::Type {
1740        Self::static_type()
1741    }
1742}
1743
1744impl From<DBusSubtreeFlags> for glib::Value {
1745    #[inline]
1746    fn from(v: DBusSubtreeFlags) -> Self {
1747        ToValue::to_value(&v)
1748    }
1749}
1750
1751bitflags! {
1752    /// Flags used when starting a drive.
1753    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1754    #[doc(alias = "GDriveStartFlags")]
1755    pub struct DriveStartFlags: u32 {
1756        /// No flags set.
1757        #[doc(alias = "G_DRIVE_START_NONE")]
1758        const NONE = ffi::G_DRIVE_START_NONE as _;
1759    }
1760}
1761
1762#[doc(hidden)]
1763impl IntoGlib for DriveStartFlags {
1764    type GlibType = ffi::GDriveStartFlags;
1765
1766    #[inline]
1767    fn into_glib(self) -> ffi::GDriveStartFlags {
1768        self.bits()
1769    }
1770}
1771
1772#[doc(hidden)]
1773impl FromGlib<ffi::GDriveStartFlags> for DriveStartFlags {
1774    #[inline]
1775    unsafe fn from_glib(value: ffi::GDriveStartFlags) -> Self {
1776        Self::from_bits_truncate(value)
1777    }
1778}
1779
1780impl StaticType for DriveStartFlags {
1781    #[inline]
1782    #[doc(alias = "g_drive_start_flags_get_type")]
1783    fn static_type() -> glib::Type {
1784        unsafe { from_glib(ffi::g_drive_start_flags_get_type()) }
1785    }
1786}
1787
1788impl glib::HasParamSpec for DriveStartFlags {
1789    type ParamSpec = glib::ParamSpecFlags;
1790    type SetValue = Self;
1791    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1792
1793    fn param_spec_builder() -> Self::BuilderFn {
1794        Self::ParamSpec::builder
1795    }
1796}
1797
1798impl glib::value::ValueType for DriveStartFlags {
1799    type Type = Self;
1800}
1801
1802unsafe impl<'a> glib::value::FromValue<'a> for DriveStartFlags {
1803    type Checker = glib::value::GenericValueTypeChecker<Self>;
1804
1805    #[inline]
1806    unsafe fn from_value(value: &'a glib::Value) -> Self {
1807        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1808    }
1809}
1810
1811impl ToValue for DriveStartFlags {
1812    #[inline]
1813    fn to_value(&self) -> glib::Value {
1814        let mut value = glib::Value::for_value_type::<Self>();
1815        unsafe {
1816            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1817        }
1818        value
1819    }
1820
1821    #[inline]
1822    fn value_type(&self) -> glib::Type {
1823        Self::static_type()
1824    }
1825}
1826
1827impl From<DriveStartFlags> for glib::Value {
1828    #[inline]
1829    fn from(v: DriveStartFlags) -> Self {
1830        ToValue::to_value(&v)
1831    }
1832}
1833
1834bitflags! {
1835    /// Flags specifying the behaviour of an attribute.
1836    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1837    #[doc(alias = "GFileAttributeInfoFlags")]
1838    pub struct FileAttributeInfoFlags: u32 {
1839        /// no flags set.
1840        #[doc(alias = "G_FILE_ATTRIBUTE_INFO_NONE")]
1841        const NONE = ffi::G_FILE_ATTRIBUTE_INFO_NONE as _;
1842        /// copy the attribute values when the file is copied.
1843        #[doc(alias = "G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE")]
1844        const COPY_WITH_FILE = ffi::G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE as _;
1845        /// copy the attribute values when the file is moved.
1846        #[doc(alias = "G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED")]
1847        const COPY_WHEN_MOVED = ffi::G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED as _;
1848    }
1849}
1850
1851#[doc(hidden)]
1852impl IntoGlib for FileAttributeInfoFlags {
1853    type GlibType = ffi::GFileAttributeInfoFlags;
1854
1855    #[inline]
1856    fn into_glib(self) -> ffi::GFileAttributeInfoFlags {
1857        self.bits()
1858    }
1859}
1860
1861#[doc(hidden)]
1862impl FromGlib<ffi::GFileAttributeInfoFlags> for FileAttributeInfoFlags {
1863    #[inline]
1864    unsafe fn from_glib(value: ffi::GFileAttributeInfoFlags) -> Self {
1865        Self::from_bits_truncate(value)
1866    }
1867}
1868
1869impl StaticType for FileAttributeInfoFlags {
1870    #[inline]
1871    #[doc(alias = "g_file_attribute_info_flags_get_type")]
1872    fn static_type() -> glib::Type {
1873        unsafe { from_glib(ffi::g_file_attribute_info_flags_get_type()) }
1874    }
1875}
1876
1877impl glib::HasParamSpec for FileAttributeInfoFlags {
1878    type ParamSpec = glib::ParamSpecFlags;
1879    type SetValue = Self;
1880    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1881
1882    fn param_spec_builder() -> Self::BuilderFn {
1883        Self::ParamSpec::builder
1884    }
1885}
1886
1887impl glib::value::ValueType for FileAttributeInfoFlags {
1888    type Type = Self;
1889}
1890
1891unsafe impl<'a> glib::value::FromValue<'a> for FileAttributeInfoFlags {
1892    type Checker = glib::value::GenericValueTypeChecker<Self>;
1893
1894    #[inline]
1895    unsafe fn from_value(value: &'a glib::Value) -> Self {
1896        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
1897    }
1898}
1899
1900impl ToValue for FileAttributeInfoFlags {
1901    #[inline]
1902    fn to_value(&self) -> glib::Value {
1903        let mut value = glib::Value::for_value_type::<Self>();
1904        unsafe {
1905            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
1906        }
1907        value
1908    }
1909
1910    #[inline]
1911    fn value_type(&self) -> glib::Type {
1912        Self::static_type()
1913    }
1914}
1915
1916impl From<FileAttributeInfoFlags> for glib::Value {
1917    #[inline]
1918    fn from(v: FileAttributeInfoFlags) -> Self {
1919        ToValue::to_value(&v)
1920    }
1921}
1922
1923bitflags! {
1924    /// Flags used when copying or moving files.
1925    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
1926    #[doc(alias = "GFileCopyFlags")]
1927    pub struct FileCopyFlags: u32 {
1928        /// No flags set.
1929        #[doc(alias = "G_FILE_COPY_NONE")]
1930        const NONE = ffi::G_FILE_COPY_NONE as _;
1931        /// Overwrite any existing files
1932        #[doc(alias = "G_FILE_COPY_OVERWRITE")]
1933        const OVERWRITE = ffi::G_FILE_COPY_OVERWRITE as _;
1934        /// Make a backup of any existing files.
1935        #[doc(alias = "G_FILE_COPY_BACKUP")]
1936        const BACKUP = ffi::G_FILE_COPY_BACKUP as _;
1937        /// Don't follow symlinks.
1938        #[doc(alias = "G_FILE_COPY_NOFOLLOW_SYMLINKS")]
1939        const NOFOLLOW_SYMLINKS = ffi::G_FILE_COPY_NOFOLLOW_SYMLINKS as _;
1940        /// Copy all file metadata instead of just default set used for copy (see #GFileInfo).
1941        #[doc(alias = "G_FILE_COPY_ALL_METADATA")]
1942        const ALL_METADATA = ffi::G_FILE_COPY_ALL_METADATA as _;
1943        /// Don't use copy and delete fallback if native move not supported.
1944        #[doc(alias = "G_FILE_COPY_NO_FALLBACK_FOR_MOVE")]
1945        const NO_FALLBACK_FOR_MOVE = ffi::G_FILE_COPY_NO_FALLBACK_FOR_MOVE as _;
1946        /// Leaves target file with default perms, instead of setting the source file perms.
1947        #[doc(alias = "G_FILE_COPY_TARGET_DEFAULT_PERMS")]
1948        const TARGET_DEFAULT_PERMS = ffi::G_FILE_COPY_TARGET_DEFAULT_PERMS as _;
1949        /// Use default modification
1950        ///     timestamps instead of copying them from the source file. Since 2.80
1951        #[cfg(feature = "v2_80")]
1952        #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1953        #[doc(alias = "G_FILE_COPY_TARGET_DEFAULT_MODIFIED_TIME")]
1954        const TARGET_DEFAULT_MODIFIED_TIME = ffi::G_FILE_COPY_TARGET_DEFAULT_MODIFIED_TIME as _;
1955    }
1956}
1957
1958#[doc(hidden)]
1959impl IntoGlib for FileCopyFlags {
1960    type GlibType = ffi::GFileCopyFlags;
1961
1962    #[inline]
1963    fn into_glib(self) -> ffi::GFileCopyFlags {
1964        self.bits()
1965    }
1966}
1967
1968#[doc(hidden)]
1969impl FromGlib<ffi::GFileCopyFlags> for FileCopyFlags {
1970    #[inline]
1971    unsafe fn from_glib(value: ffi::GFileCopyFlags) -> Self {
1972        Self::from_bits_truncate(value)
1973    }
1974}
1975
1976impl StaticType for FileCopyFlags {
1977    #[inline]
1978    #[doc(alias = "g_file_copy_flags_get_type")]
1979    fn static_type() -> glib::Type {
1980        unsafe { from_glib(ffi::g_file_copy_flags_get_type()) }
1981    }
1982}
1983
1984impl glib::HasParamSpec for FileCopyFlags {
1985    type ParamSpec = glib::ParamSpecFlags;
1986    type SetValue = Self;
1987    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
1988
1989    fn param_spec_builder() -> Self::BuilderFn {
1990        Self::ParamSpec::builder
1991    }
1992}
1993
1994impl glib::value::ValueType for FileCopyFlags {
1995    type Type = Self;
1996}
1997
1998unsafe impl<'a> glib::value::FromValue<'a> for FileCopyFlags {
1999    type Checker = glib::value::GenericValueTypeChecker<Self>;
2000
2001    #[inline]
2002    unsafe fn from_value(value: &'a glib::Value) -> Self {
2003        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2004    }
2005}
2006
2007impl ToValue for FileCopyFlags {
2008    #[inline]
2009    fn to_value(&self) -> glib::Value {
2010        let mut value = glib::Value::for_value_type::<Self>();
2011        unsafe {
2012            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2013        }
2014        value
2015    }
2016
2017    #[inline]
2018    fn value_type(&self) -> glib::Type {
2019        Self::static_type()
2020    }
2021}
2022
2023impl From<FileCopyFlags> for glib::Value {
2024    #[inline]
2025    fn from(v: FileCopyFlags) -> Self {
2026        ToValue::to_value(&v)
2027    }
2028}
2029
2030bitflags! {
2031    /// Flags used when an operation may create a file.
2032    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2033    #[doc(alias = "GFileCreateFlags")]
2034    pub struct FileCreateFlags: u32 {
2035        /// No flags set.
2036        #[doc(alias = "G_FILE_CREATE_NONE")]
2037        const NONE = ffi::G_FILE_CREATE_NONE as _;
2038        /// Create a file that can only be
2039        ///    accessed by the current user.
2040        #[doc(alias = "G_FILE_CREATE_PRIVATE")]
2041        const PRIVATE = ffi::G_FILE_CREATE_PRIVATE as _;
2042        /// Replace the destination
2043        ///    as if it didn't exist before. Don't try to keep any old
2044        ///    permissions, replace instead of following links. This
2045        ///    is generally useful if you're doing a "copy over"
2046        ///    rather than a "save new version of" replace operation.
2047        ///    You can think of it as "unlink destination" before
2048        ///    writing to it, although the implementation may not
2049        ///    be exactly like that. This flag can only be used with
2050        ///    g_file_replace() and its variants, including g_file_replace_contents().
2051        ///    Since 2.20
2052        #[doc(alias = "G_FILE_CREATE_REPLACE_DESTINATION")]
2053        const REPLACE_DESTINATION = ffi::G_FILE_CREATE_REPLACE_DESTINATION as _;
2054    }
2055}
2056
2057#[doc(hidden)]
2058impl IntoGlib for FileCreateFlags {
2059    type GlibType = ffi::GFileCreateFlags;
2060
2061    #[inline]
2062    fn into_glib(self) -> ffi::GFileCreateFlags {
2063        self.bits()
2064    }
2065}
2066
2067#[doc(hidden)]
2068impl FromGlib<ffi::GFileCreateFlags> for FileCreateFlags {
2069    #[inline]
2070    unsafe fn from_glib(value: ffi::GFileCreateFlags) -> Self {
2071        Self::from_bits_truncate(value)
2072    }
2073}
2074
2075impl StaticType for FileCreateFlags {
2076    #[inline]
2077    #[doc(alias = "g_file_create_flags_get_type")]
2078    fn static_type() -> glib::Type {
2079        unsafe { from_glib(ffi::g_file_create_flags_get_type()) }
2080    }
2081}
2082
2083impl glib::HasParamSpec for FileCreateFlags {
2084    type ParamSpec = glib::ParamSpecFlags;
2085    type SetValue = Self;
2086    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2087
2088    fn param_spec_builder() -> Self::BuilderFn {
2089        Self::ParamSpec::builder
2090    }
2091}
2092
2093impl glib::value::ValueType for FileCreateFlags {
2094    type Type = Self;
2095}
2096
2097unsafe impl<'a> glib::value::FromValue<'a> for FileCreateFlags {
2098    type Checker = glib::value::GenericValueTypeChecker<Self>;
2099
2100    #[inline]
2101    unsafe fn from_value(value: &'a glib::Value) -> Self {
2102        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2103    }
2104}
2105
2106impl ToValue for FileCreateFlags {
2107    #[inline]
2108    fn to_value(&self) -> glib::Value {
2109        let mut value = glib::Value::for_value_type::<Self>();
2110        unsafe {
2111            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2112        }
2113        value
2114    }
2115
2116    #[inline]
2117    fn value_type(&self) -> glib::Type {
2118        Self::static_type()
2119    }
2120}
2121
2122impl From<FileCreateFlags> for glib::Value {
2123    #[inline]
2124    fn from(v: FileCreateFlags) -> Self {
2125        ToValue::to_value(&v)
2126    }
2127}
2128
2129bitflags! {
2130    /// Flags that can be used with g_file_measure_disk_usage().
2131    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2132    #[doc(alias = "GFileMeasureFlags")]
2133    pub struct FileMeasureFlags: u32 {
2134        /// No flags set.
2135        #[doc(alias = "G_FILE_MEASURE_NONE")]
2136        const NONE = ffi::G_FILE_MEASURE_NONE as _;
2137        /// Report any error encountered
2138        ///   while traversing the directory tree.  Normally errors are only
2139        ///   reported for the toplevel file.
2140        #[doc(alias = "G_FILE_MEASURE_REPORT_ANY_ERROR")]
2141        const REPORT_ANY_ERROR = ffi::G_FILE_MEASURE_REPORT_ANY_ERROR as _;
2142        /// Tally usage based on apparent file
2143        ///   sizes.  Normally, the block-size is used, if available, as this is a
2144        ///   more accurate representation of disk space used.
2145        ///   Compare with `du --apparent-size`.
2146        ///   Since GLib 2.78. and similarly to `du` since GNU Coreutils 9.2, this will
2147        ///   ignore the sizes of file types other than regular files and links, as the
2148        ///   sizes of other file types are not specified in a standard way.
2149        #[doc(alias = "G_FILE_MEASURE_APPARENT_SIZE")]
2150        const APPARENT_SIZE = ffi::G_FILE_MEASURE_APPARENT_SIZE as _;
2151        /// Do not cross mount point boundaries.
2152        ///   Compare with `du -x`.
2153        #[doc(alias = "G_FILE_MEASURE_NO_XDEV")]
2154        const NO_XDEV = ffi::G_FILE_MEASURE_NO_XDEV as _;
2155    }
2156}
2157
2158#[doc(hidden)]
2159impl IntoGlib for FileMeasureFlags {
2160    type GlibType = ffi::GFileMeasureFlags;
2161
2162    #[inline]
2163    fn into_glib(self) -> ffi::GFileMeasureFlags {
2164        self.bits()
2165    }
2166}
2167
2168#[doc(hidden)]
2169impl FromGlib<ffi::GFileMeasureFlags> for FileMeasureFlags {
2170    #[inline]
2171    unsafe fn from_glib(value: ffi::GFileMeasureFlags) -> Self {
2172        Self::from_bits_truncate(value)
2173    }
2174}
2175
2176impl StaticType for FileMeasureFlags {
2177    #[inline]
2178    #[doc(alias = "g_file_measure_flags_get_type")]
2179    fn static_type() -> glib::Type {
2180        unsafe { from_glib(ffi::g_file_measure_flags_get_type()) }
2181    }
2182}
2183
2184impl glib::HasParamSpec for FileMeasureFlags {
2185    type ParamSpec = glib::ParamSpecFlags;
2186    type SetValue = Self;
2187    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2188
2189    fn param_spec_builder() -> Self::BuilderFn {
2190        Self::ParamSpec::builder
2191    }
2192}
2193
2194impl glib::value::ValueType for FileMeasureFlags {
2195    type Type = Self;
2196}
2197
2198unsafe impl<'a> glib::value::FromValue<'a> for FileMeasureFlags {
2199    type Checker = glib::value::GenericValueTypeChecker<Self>;
2200
2201    #[inline]
2202    unsafe fn from_value(value: &'a glib::Value) -> Self {
2203        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2204    }
2205}
2206
2207impl ToValue for FileMeasureFlags {
2208    #[inline]
2209    fn to_value(&self) -> glib::Value {
2210        let mut value = glib::Value::for_value_type::<Self>();
2211        unsafe {
2212            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2213        }
2214        value
2215    }
2216
2217    #[inline]
2218    fn value_type(&self) -> glib::Type {
2219        Self::static_type()
2220    }
2221}
2222
2223impl From<FileMeasureFlags> for glib::Value {
2224    #[inline]
2225    fn from(v: FileMeasureFlags) -> Self {
2226        ToValue::to_value(&v)
2227    }
2228}
2229
2230bitflags! {
2231    /// Flags used to set what a #GFileMonitor will watch for.
2232    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2233    #[doc(alias = "GFileMonitorFlags")]
2234    pub struct FileMonitorFlags: u32 {
2235        /// No flags set.
2236        #[doc(alias = "G_FILE_MONITOR_NONE")]
2237        const NONE = ffi::G_FILE_MONITOR_NONE as _;
2238        /// Watch for mount events.
2239        #[doc(alias = "G_FILE_MONITOR_WATCH_MOUNTS")]
2240        const WATCH_MOUNTS = ffi::G_FILE_MONITOR_WATCH_MOUNTS as _;
2241        /// Pair DELETED and CREATED events caused
2242        ///   by file renames (moves) and send a single G_FILE_MONITOR_EVENT_MOVED
2243        ///   event instead (NB: not supported on all backends; the default
2244        ///   behaviour -without specifying this flag- is to send single DELETED
2245        ///   and CREATED events).  Deprecated since 2.46: use
2246        ///   [`WATCH_MOVES`][Self::WATCH_MOVES] instead.
2247        #[doc(alias = "G_FILE_MONITOR_SEND_MOVED")]
2248        const SEND_MOVED = ffi::G_FILE_MONITOR_SEND_MOVED as _;
2249        /// Watch for changes to the file made
2250        ///   via another hard link. Since 2.36.
2251        #[doc(alias = "G_FILE_MONITOR_WATCH_HARD_LINKS")]
2252        const WATCH_HARD_LINKS = ffi::G_FILE_MONITOR_WATCH_HARD_LINKS as _;
2253        /// Watch for rename operations on a
2254        ///   monitored directory.  This causes [`FileMonitorEvent::Renamed`][crate::FileMonitorEvent::Renamed],
2255        ///   [`FileMonitorEvent::MovedIn`][crate::FileMonitorEvent::MovedIn] and [`FileMonitorEvent::MovedOut`][crate::FileMonitorEvent::MovedOut]
2256        ///   events to be emitted when possible.  Since: 2.46.
2257        #[doc(alias = "G_FILE_MONITOR_WATCH_MOVES")]
2258        const WATCH_MOVES = ffi::G_FILE_MONITOR_WATCH_MOVES as _;
2259    }
2260}
2261
2262#[doc(hidden)]
2263impl IntoGlib for FileMonitorFlags {
2264    type GlibType = ffi::GFileMonitorFlags;
2265
2266    #[inline]
2267    fn into_glib(self) -> ffi::GFileMonitorFlags {
2268        self.bits()
2269    }
2270}
2271
2272#[doc(hidden)]
2273impl FromGlib<ffi::GFileMonitorFlags> for FileMonitorFlags {
2274    #[inline]
2275    unsafe fn from_glib(value: ffi::GFileMonitorFlags) -> Self {
2276        Self::from_bits_truncate(value)
2277    }
2278}
2279
2280impl StaticType for FileMonitorFlags {
2281    #[inline]
2282    #[doc(alias = "g_file_monitor_flags_get_type")]
2283    fn static_type() -> glib::Type {
2284        unsafe { from_glib(ffi::g_file_monitor_flags_get_type()) }
2285    }
2286}
2287
2288impl glib::HasParamSpec for FileMonitorFlags {
2289    type ParamSpec = glib::ParamSpecFlags;
2290    type SetValue = Self;
2291    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2292
2293    fn param_spec_builder() -> Self::BuilderFn {
2294        Self::ParamSpec::builder
2295    }
2296}
2297
2298impl glib::value::ValueType for FileMonitorFlags {
2299    type Type = Self;
2300}
2301
2302unsafe impl<'a> glib::value::FromValue<'a> for FileMonitorFlags {
2303    type Checker = glib::value::GenericValueTypeChecker<Self>;
2304
2305    #[inline]
2306    unsafe fn from_value(value: &'a glib::Value) -> Self {
2307        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2308    }
2309}
2310
2311impl ToValue for FileMonitorFlags {
2312    #[inline]
2313    fn to_value(&self) -> glib::Value {
2314        let mut value = glib::Value::for_value_type::<Self>();
2315        unsafe {
2316            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2317        }
2318        value
2319    }
2320
2321    #[inline]
2322    fn value_type(&self) -> glib::Type {
2323        Self::static_type()
2324    }
2325}
2326
2327impl From<FileMonitorFlags> for glib::Value {
2328    #[inline]
2329    fn from(v: FileMonitorFlags) -> Self {
2330        ToValue::to_value(&v)
2331    }
2332}
2333
2334bitflags! {
2335    /// Flags used when querying a #GFileInfo.
2336    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2337    #[doc(alias = "GFileQueryInfoFlags")]
2338    pub struct FileQueryInfoFlags: u32 {
2339        /// No flags set.
2340        #[doc(alias = "G_FILE_QUERY_INFO_NONE")]
2341        const NONE = ffi::G_FILE_QUERY_INFO_NONE as _;
2342        /// Don't follow symlinks.
2343        #[doc(alias = "G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS")]
2344        const NOFOLLOW_SYMLINKS = ffi::G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS as _;
2345    }
2346}
2347
2348#[doc(hidden)]
2349impl IntoGlib for FileQueryInfoFlags {
2350    type GlibType = ffi::GFileQueryInfoFlags;
2351
2352    #[inline]
2353    fn into_glib(self) -> ffi::GFileQueryInfoFlags {
2354        self.bits()
2355    }
2356}
2357
2358#[doc(hidden)]
2359impl FromGlib<ffi::GFileQueryInfoFlags> for FileQueryInfoFlags {
2360    #[inline]
2361    unsafe fn from_glib(value: ffi::GFileQueryInfoFlags) -> Self {
2362        Self::from_bits_truncate(value)
2363    }
2364}
2365
2366impl StaticType for FileQueryInfoFlags {
2367    #[inline]
2368    #[doc(alias = "g_file_query_info_flags_get_type")]
2369    fn static_type() -> glib::Type {
2370        unsafe { from_glib(ffi::g_file_query_info_flags_get_type()) }
2371    }
2372}
2373
2374impl glib::HasParamSpec for FileQueryInfoFlags {
2375    type ParamSpec = glib::ParamSpecFlags;
2376    type SetValue = Self;
2377    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2378
2379    fn param_spec_builder() -> Self::BuilderFn {
2380        Self::ParamSpec::builder
2381    }
2382}
2383
2384impl glib::value::ValueType for FileQueryInfoFlags {
2385    type Type = Self;
2386}
2387
2388unsafe impl<'a> glib::value::FromValue<'a> for FileQueryInfoFlags {
2389    type Checker = glib::value::GenericValueTypeChecker<Self>;
2390
2391    #[inline]
2392    unsafe fn from_value(value: &'a glib::Value) -> Self {
2393        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2394    }
2395}
2396
2397impl ToValue for FileQueryInfoFlags {
2398    #[inline]
2399    fn to_value(&self) -> glib::Value {
2400        let mut value = glib::Value::for_value_type::<Self>();
2401        unsafe {
2402            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2403        }
2404        value
2405    }
2406
2407    #[inline]
2408    fn value_type(&self) -> glib::Type {
2409        Self::static_type()
2410    }
2411}
2412
2413impl From<FileQueryInfoFlags> for glib::Value {
2414    #[inline]
2415    fn from(v: FileQueryInfoFlags) -> Self {
2416        ToValue::to_value(&v)
2417    }
2418}
2419
2420bitflags! {
2421    /// Flags for use with g_io_module_scope_new().
2422    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2423    #[doc(alias = "GIOModuleScopeFlags")]
2424    pub struct IOModuleScopeFlags: u32 {
2425        /// No module scan flags
2426        #[doc(alias = "G_IO_MODULE_SCOPE_NONE")]
2427        const NONE = ffi::G_IO_MODULE_SCOPE_NONE as _;
2428        /// When using this scope to load or
2429        ///     scan modules, automatically block a modules which has the same base
2430        ///     basename as previously loaded module.
2431        #[doc(alias = "G_IO_MODULE_SCOPE_BLOCK_DUPLICATES")]
2432        const BLOCK_DUPLICATES = ffi::G_IO_MODULE_SCOPE_BLOCK_DUPLICATES as _;
2433    }
2434}
2435
2436#[doc(hidden)]
2437impl IntoGlib for IOModuleScopeFlags {
2438    type GlibType = ffi::GIOModuleScopeFlags;
2439
2440    #[inline]
2441    fn into_glib(self) -> ffi::GIOModuleScopeFlags {
2442        self.bits()
2443    }
2444}
2445
2446#[doc(hidden)]
2447impl FromGlib<ffi::GIOModuleScopeFlags> for IOModuleScopeFlags {
2448    #[inline]
2449    unsafe fn from_glib(value: ffi::GIOModuleScopeFlags) -> Self {
2450        Self::from_bits_truncate(value)
2451    }
2452}
2453
2454impl StaticType for IOModuleScopeFlags {
2455    #[inline]
2456    #[doc(alias = "g_io_module_scope_flags_get_type")]
2457    fn static_type() -> glib::Type {
2458        unsafe { from_glib(ffi::g_io_module_scope_flags_get_type()) }
2459    }
2460}
2461
2462impl glib::HasParamSpec for IOModuleScopeFlags {
2463    type ParamSpec = glib::ParamSpecFlags;
2464    type SetValue = Self;
2465    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2466
2467    fn param_spec_builder() -> Self::BuilderFn {
2468        Self::ParamSpec::builder
2469    }
2470}
2471
2472impl glib::value::ValueType for IOModuleScopeFlags {
2473    type Type = Self;
2474}
2475
2476unsafe impl<'a> glib::value::FromValue<'a> for IOModuleScopeFlags {
2477    type Checker = glib::value::GenericValueTypeChecker<Self>;
2478
2479    #[inline]
2480    unsafe fn from_value(value: &'a glib::Value) -> Self {
2481        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2482    }
2483}
2484
2485impl ToValue for IOModuleScopeFlags {
2486    #[inline]
2487    fn to_value(&self) -> glib::Value {
2488        let mut value = glib::Value::for_value_type::<Self>();
2489        unsafe {
2490            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2491        }
2492        value
2493    }
2494
2495    #[inline]
2496    fn value_type(&self) -> glib::Type {
2497        Self::static_type()
2498    }
2499}
2500
2501impl From<IOModuleScopeFlags> for glib::Value {
2502    #[inline]
2503    fn from(v: IOModuleScopeFlags) -> Self {
2504        ToValue::to_value(&v)
2505    }
2506}
2507
2508bitflags! {
2509    /// GIOStreamSpliceFlags determine how streams should be spliced.
2510    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2511    #[doc(alias = "GIOStreamSpliceFlags")]
2512    pub struct IOStreamSpliceFlags: u32 {
2513        /// Do not close either stream.
2514        #[doc(alias = "G_IO_STREAM_SPLICE_NONE")]
2515        const NONE = ffi::G_IO_STREAM_SPLICE_NONE as _;
2516        /// Close the first stream after
2517        ///     the splice.
2518        #[doc(alias = "G_IO_STREAM_SPLICE_CLOSE_STREAM1")]
2519        const CLOSE_STREAM1 = ffi::G_IO_STREAM_SPLICE_CLOSE_STREAM1 as _;
2520        /// Close the second stream after
2521        ///     the splice.
2522        #[doc(alias = "G_IO_STREAM_SPLICE_CLOSE_STREAM2")]
2523        const CLOSE_STREAM2 = ffi::G_IO_STREAM_SPLICE_CLOSE_STREAM2 as _;
2524        /// Wait for both splice operations to finish
2525        ///     before calling the callback.
2526        #[doc(alias = "G_IO_STREAM_SPLICE_WAIT_FOR_BOTH")]
2527        const WAIT_FOR_BOTH = ffi::G_IO_STREAM_SPLICE_WAIT_FOR_BOTH as _;
2528    }
2529}
2530
2531#[doc(hidden)]
2532impl IntoGlib for IOStreamSpliceFlags {
2533    type GlibType = ffi::GIOStreamSpliceFlags;
2534
2535    #[inline]
2536    fn into_glib(self) -> ffi::GIOStreamSpliceFlags {
2537        self.bits()
2538    }
2539}
2540
2541#[doc(hidden)]
2542impl FromGlib<ffi::GIOStreamSpliceFlags> for IOStreamSpliceFlags {
2543    #[inline]
2544    unsafe fn from_glib(value: ffi::GIOStreamSpliceFlags) -> Self {
2545        Self::from_bits_truncate(value)
2546    }
2547}
2548
2549impl StaticType for IOStreamSpliceFlags {
2550    #[inline]
2551    #[doc(alias = "g_io_stream_splice_flags_get_type")]
2552    fn static_type() -> glib::Type {
2553        unsafe { from_glib(ffi::g_io_stream_splice_flags_get_type()) }
2554    }
2555}
2556
2557impl glib::HasParamSpec for IOStreamSpliceFlags {
2558    type ParamSpec = glib::ParamSpecFlags;
2559    type SetValue = Self;
2560    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2561
2562    fn param_spec_builder() -> Self::BuilderFn {
2563        Self::ParamSpec::builder
2564    }
2565}
2566
2567impl glib::value::ValueType for IOStreamSpliceFlags {
2568    type Type = Self;
2569}
2570
2571unsafe impl<'a> glib::value::FromValue<'a> for IOStreamSpliceFlags {
2572    type Checker = glib::value::GenericValueTypeChecker<Self>;
2573
2574    #[inline]
2575    unsafe fn from_value(value: &'a glib::Value) -> Self {
2576        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2577    }
2578}
2579
2580impl ToValue for IOStreamSpliceFlags {
2581    #[inline]
2582    fn to_value(&self) -> glib::Value {
2583        let mut value = glib::Value::for_value_type::<Self>();
2584        unsafe {
2585            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2586        }
2587        value
2588    }
2589
2590    #[inline]
2591    fn value_type(&self) -> glib::Type {
2592        Self::static_type()
2593    }
2594}
2595
2596impl From<IOStreamSpliceFlags> for glib::Value {
2597    #[inline]
2598    fn from(v: IOStreamSpliceFlags) -> Self {
2599        ToValue::to_value(&v)
2600    }
2601}
2602
2603bitflags! {
2604    /// Flags used when mounting a mount.
2605    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2606    #[doc(alias = "GMountMountFlags")]
2607    pub struct MountMountFlags: u32 {
2608        /// No flags set.
2609        #[doc(alias = "G_MOUNT_MOUNT_NONE")]
2610        const NONE = ffi::G_MOUNT_MOUNT_NONE as _;
2611    }
2612}
2613
2614#[doc(hidden)]
2615impl IntoGlib for MountMountFlags {
2616    type GlibType = ffi::GMountMountFlags;
2617
2618    #[inline]
2619    fn into_glib(self) -> ffi::GMountMountFlags {
2620        self.bits()
2621    }
2622}
2623
2624#[doc(hidden)]
2625impl FromGlib<ffi::GMountMountFlags> for MountMountFlags {
2626    #[inline]
2627    unsafe fn from_glib(value: ffi::GMountMountFlags) -> Self {
2628        Self::from_bits_truncate(value)
2629    }
2630}
2631
2632impl StaticType for MountMountFlags {
2633    #[inline]
2634    #[doc(alias = "g_mount_mount_flags_get_type")]
2635    fn static_type() -> glib::Type {
2636        unsafe { from_glib(ffi::g_mount_mount_flags_get_type()) }
2637    }
2638}
2639
2640impl glib::HasParamSpec for MountMountFlags {
2641    type ParamSpec = glib::ParamSpecFlags;
2642    type SetValue = Self;
2643    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2644
2645    fn param_spec_builder() -> Self::BuilderFn {
2646        Self::ParamSpec::builder
2647    }
2648}
2649
2650impl glib::value::ValueType for MountMountFlags {
2651    type Type = Self;
2652}
2653
2654unsafe impl<'a> glib::value::FromValue<'a> for MountMountFlags {
2655    type Checker = glib::value::GenericValueTypeChecker<Self>;
2656
2657    #[inline]
2658    unsafe fn from_value(value: &'a glib::Value) -> Self {
2659        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2660    }
2661}
2662
2663impl ToValue for MountMountFlags {
2664    #[inline]
2665    fn to_value(&self) -> glib::Value {
2666        let mut value = glib::Value::for_value_type::<Self>();
2667        unsafe {
2668            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2669        }
2670        value
2671    }
2672
2673    #[inline]
2674    fn value_type(&self) -> glib::Type {
2675        Self::static_type()
2676    }
2677}
2678
2679impl From<MountMountFlags> for glib::Value {
2680    #[inline]
2681    fn from(v: MountMountFlags) -> Self {
2682        ToValue::to_value(&v)
2683    }
2684}
2685
2686bitflags! {
2687    /// Flags used when an unmounting a mount.
2688    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2689    #[doc(alias = "GMountUnmountFlags")]
2690    pub struct MountUnmountFlags: u32 {
2691        /// No flags set.
2692        #[doc(alias = "G_MOUNT_UNMOUNT_NONE")]
2693        const NONE = ffi::G_MOUNT_UNMOUNT_NONE as _;
2694        /// Unmount even if there are outstanding
2695        ///  file operations on the mount.
2696        #[doc(alias = "G_MOUNT_UNMOUNT_FORCE")]
2697        const FORCE = ffi::G_MOUNT_UNMOUNT_FORCE as _;
2698    }
2699}
2700
2701#[doc(hidden)]
2702impl IntoGlib for MountUnmountFlags {
2703    type GlibType = ffi::GMountUnmountFlags;
2704
2705    #[inline]
2706    fn into_glib(self) -> ffi::GMountUnmountFlags {
2707        self.bits()
2708    }
2709}
2710
2711#[doc(hidden)]
2712impl FromGlib<ffi::GMountUnmountFlags> for MountUnmountFlags {
2713    #[inline]
2714    unsafe fn from_glib(value: ffi::GMountUnmountFlags) -> Self {
2715        Self::from_bits_truncate(value)
2716    }
2717}
2718
2719impl StaticType for MountUnmountFlags {
2720    #[inline]
2721    #[doc(alias = "g_mount_unmount_flags_get_type")]
2722    fn static_type() -> glib::Type {
2723        unsafe { from_glib(ffi::g_mount_unmount_flags_get_type()) }
2724    }
2725}
2726
2727impl glib::HasParamSpec for MountUnmountFlags {
2728    type ParamSpec = glib::ParamSpecFlags;
2729    type SetValue = Self;
2730    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2731
2732    fn param_spec_builder() -> Self::BuilderFn {
2733        Self::ParamSpec::builder
2734    }
2735}
2736
2737impl glib::value::ValueType for MountUnmountFlags {
2738    type Type = Self;
2739}
2740
2741unsafe impl<'a> glib::value::FromValue<'a> for MountUnmountFlags {
2742    type Checker = glib::value::GenericValueTypeChecker<Self>;
2743
2744    #[inline]
2745    unsafe fn from_value(value: &'a glib::Value) -> Self {
2746        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2747    }
2748}
2749
2750impl ToValue for MountUnmountFlags {
2751    #[inline]
2752    fn to_value(&self) -> glib::Value {
2753        let mut value = glib::Value::for_value_type::<Self>();
2754        unsafe {
2755            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2756        }
2757        value
2758    }
2759
2760    #[inline]
2761    fn value_type(&self) -> glib::Type {
2762        Self::static_type()
2763    }
2764}
2765
2766impl From<MountUnmountFlags> for glib::Value {
2767    #[inline]
2768    fn from(v: MountUnmountFlags) -> Self {
2769        ToValue::to_value(&v)
2770    }
2771}
2772
2773bitflags! {
2774    /// GOutputStreamSpliceFlags determine how streams should be spliced.
2775    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2776    #[doc(alias = "GOutputStreamSpliceFlags")]
2777    pub struct OutputStreamSpliceFlags: u32 {
2778        /// Do not close either stream.
2779        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_NONE")]
2780        const NONE = ffi::G_OUTPUT_STREAM_SPLICE_NONE as _;
2781        /// Close the source stream after
2782        ///     the splice.
2783        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE")]
2784        const CLOSE_SOURCE = ffi::G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE as _;
2785        /// Close the target stream after
2786        ///     the splice.
2787        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET")]
2788        const CLOSE_TARGET = ffi::G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET as _;
2789    }
2790}
2791
2792#[doc(hidden)]
2793impl IntoGlib for OutputStreamSpliceFlags {
2794    type GlibType = ffi::GOutputStreamSpliceFlags;
2795
2796    #[inline]
2797    fn into_glib(self) -> ffi::GOutputStreamSpliceFlags {
2798        self.bits()
2799    }
2800}
2801
2802#[doc(hidden)]
2803impl FromGlib<ffi::GOutputStreamSpliceFlags> for OutputStreamSpliceFlags {
2804    #[inline]
2805    unsafe fn from_glib(value: ffi::GOutputStreamSpliceFlags) -> Self {
2806        Self::from_bits_truncate(value)
2807    }
2808}
2809
2810impl StaticType for OutputStreamSpliceFlags {
2811    #[inline]
2812    #[doc(alias = "g_output_stream_splice_flags_get_type")]
2813    fn static_type() -> glib::Type {
2814        unsafe { from_glib(ffi::g_output_stream_splice_flags_get_type()) }
2815    }
2816}
2817
2818impl glib::HasParamSpec for OutputStreamSpliceFlags {
2819    type ParamSpec = glib::ParamSpecFlags;
2820    type SetValue = Self;
2821    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2822
2823    fn param_spec_builder() -> Self::BuilderFn {
2824        Self::ParamSpec::builder
2825    }
2826}
2827
2828impl glib::value::ValueType for OutputStreamSpliceFlags {
2829    type Type = Self;
2830}
2831
2832unsafe impl<'a> glib::value::FromValue<'a> for OutputStreamSpliceFlags {
2833    type Checker = glib::value::GenericValueTypeChecker<Self>;
2834
2835    #[inline]
2836    unsafe fn from_value(value: &'a glib::Value) -> Self {
2837        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2838    }
2839}
2840
2841impl ToValue for OutputStreamSpliceFlags {
2842    #[inline]
2843    fn to_value(&self) -> glib::Value {
2844        let mut value = glib::Value::for_value_type::<Self>();
2845        unsafe {
2846            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2847        }
2848        value
2849    }
2850
2851    #[inline]
2852    fn value_type(&self) -> glib::Type {
2853        Self::static_type()
2854    }
2855}
2856
2857impl From<OutputStreamSpliceFlags> for glib::Value {
2858    #[inline]
2859    fn from(v: OutputStreamSpliceFlags) -> Self {
2860        ToValue::to_value(&v)
2861    }
2862}
2863
2864#[cfg(feature = "v2_60")]
2865bitflags! {
2866    /// Flags to modify lookup behavior.
2867    #[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2868    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2869    #[doc(alias = "GResolverNameLookupFlags")]
2870    pub struct ResolverNameLookupFlags: u32 {
2871        /// default behavior (same as g_resolver_lookup_by_name())
2872        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT")]
2873        const DEFAULT = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT as _;
2874        /// only resolve ipv4 addresses
2875        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY")]
2876        const IPV4_ONLY = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY as _;
2877        /// only resolve ipv6 addresses
2878        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY")]
2879        const IPV6_ONLY = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY as _;
2880    }
2881}
2882
2883#[cfg(feature = "v2_60")]
2884#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2885#[doc(hidden)]
2886impl IntoGlib for ResolverNameLookupFlags {
2887    type GlibType = ffi::GResolverNameLookupFlags;
2888
2889    #[inline]
2890    fn into_glib(self) -> ffi::GResolverNameLookupFlags {
2891        self.bits()
2892    }
2893}
2894
2895#[cfg(feature = "v2_60")]
2896#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2897#[doc(hidden)]
2898impl FromGlib<ffi::GResolverNameLookupFlags> for ResolverNameLookupFlags {
2899    #[inline]
2900    unsafe fn from_glib(value: ffi::GResolverNameLookupFlags) -> Self {
2901        Self::from_bits_truncate(value)
2902    }
2903}
2904
2905#[cfg(feature = "v2_60")]
2906#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2907impl StaticType for ResolverNameLookupFlags {
2908    #[inline]
2909    #[doc(alias = "g_resolver_name_lookup_flags_get_type")]
2910    fn static_type() -> glib::Type {
2911        unsafe { from_glib(ffi::g_resolver_name_lookup_flags_get_type()) }
2912    }
2913}
2914
2915#[cfg(feature = "v2_60")]
2916#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2917impl glib::HasParamSpec for ResolverNameLookupFlags {
2918    type ParamSpec = glib::ParamSpecFlags;
2919    type SetValue = Self;
2920    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2921
2922    fn param_spec_builder() -> Self::BuilderFn {
2923        Self::ParamSpec::builder
2924    }
2925}
2926
2927#[cfg(feature = "v2_60")]
2928#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2929impl glib::value::ValueType for ResolverNameLookupFlags {
2930    type Type = Self;
2931}
2932
2933#[cfg(feature = "v2_60")]
2934#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2935unsafe impl<'a> glib::value::FromValue<'a> for ResolverNameLookupFlags {
2936    type Checker = glib::value::GenericValueTypeChecker<Self>;
2937
2938    #[inline]
2939    unsafe fn from_value(value: &'a glib::Value) -> Self {
2940        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2941    }
2942}
2943
2944#[cfg(feature = "v2_60")]
2945#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2946impl ToValue for ResolverNameLookupFlags {
2947    #[inline]
2948    fn to_value(&self) -> glib::Value {
2949        let mut value = glib::Value::for_value_type::<Self>();
2950        unsafe {
2951            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2952        }
2953        value
2954    }
2955
2956    #[inline]
2957    fn value_type(&self) -> glib::Type {
2958        Self::static_type()
2959    }
2960}
2961
2962#[cfg(feature = "v2_60")]
2963#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2964impl From<ResolverNameLookupFlags> for glib::Value {
2965    #[inline]
2966    fn from(v: ResolverNameLookupFlags) -> Self {
2967        ToValue::to_value(&v)
2968    }
2969}
2970
2971bitflags! {
2972    /// GResourceFlags give information about a particular file inside a resource
2973    /// bundle.
2974    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2975    #[doc(alias = "GResourceFlags")]
2976    pub struct ResourceFlags: u32 {
2977        /// No flags set.
2978        #[doc(alias = "G_RESOURCE_FLAGS_NONE")]
2979        const NONE = ffi::G_RESOURCE_FLAGS_NONE as _;
2980        /// The file is compressed.
2981        #[doc(alias = "G_RESOURCE_FLAGS_COMPRESSED")]
2982        const COMPRESSED = ffi::G_RESOURCE_FLAGS_COMPRESSED as _;
2983    }
2984}
2985
2986#[doc(hidden)]
2987impl IntoGlib for ResourceFlags {
2988    type GlibType = ffi::GResourceFlags;
2989
2990    #[inline]
2991    fn into_glib(self) -> ffi::GResourceFlags {
2992        self.bits()
2993    }
2994}
2995
2996#[doc(hidden)]
2997impl FromGlib<ffi::GResourceFlags> for ResourceFlags {
2998    #[inline]
2999    unsafe fn from_glib(value: ffi::GResourceFlags) -> Self {
3000        Self::from_bits_truncate(value)
3001    }
3002}
3003
3004impl StaticType for ResourceFlags {
3005    #[inline]
3006    #[doc(alias = "g_resource_flags_get_type")]
3007    fn static_type() -> glib::Type {
3008        unsafe { from_glib(ffi::g_resource_flags_get_type()) }
3009    }
3010}
3011
3012impl glib::HasParamSpec for ResourceFlags {
3013    type ParamSpec = glib::ParamSpecFlags;
3014    type SetValue = Self;
3015    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3016
3017    fn param_spec_builder() -> Self::BuilderFn {
3018        Self::ParamSpec::builder
3019    }
3020}
3021
3022impl glib::value::ValueType for ResourceFlags {
3023    type Type = Self;
3024}
3025
3026unsafe impl<'a> glib::value::FromValue<'a> for ResourceFlags {
3027    type Checker = glib::value::GenericValueTypeChecker<Self>;
3028
3029    #[inline]
3030    unsafe fn from_value(value: &'a glib::Value) -> Self {
3031        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3032    }
3033}
3034
3035impl ToValue for ResourceFlags {
3036    #[inline]
3037    fn to_value(&self) -> glib::Value {
3038        let mut value = glib::Value::for_value_type::<Self>();
3039        unsafe {
3040            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3041        }
3042        value
3043    }
3044
3045    #[inline]
3046    fn value_type(&self) -> glib::Type {
3047        Self::static_type()
3048    }
3049}
3050
3051impl From<ResourceFlags> for glib::Value {
3052    #[inline]
3053    fn from(v: ResourceFlags) -> Self {
3054        ToValue::to_value(&v)
3055    }
3056}
3057
3058bitflags! {
3059    /// GResourceLookupFlags determine how resource path lookups are handled.
3060    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3061    #[doc(alias = "GResourceLookupFlags")]
3062    pub struct ResourceLookupFlags: u32 {
3063        /// No flags set.
3064        #[doc(alias = "G_RESOURCE_LOOKUP_FLAGS_NONE")]
3065        const NONE = ffi::G_RESOURCE_LOOKUP_FLAGS_NONE as _;
3066    }
3067}
3068
3069#[doc(hidden)]
3070impl IntoGlib for ResourceLookupFlags {
3071    type GlibType = ffi::GResourceLookupFlags;
3072
3073    #[inline]
3074    fn into_glib(self) -> ffi::GResourceLookupFlags {
3075        self.bits()
3076    }
3077}
3078
3079#[doc(hidden)]
3080impl FromGlib<ffi::GResourceLookupFlags> for ResourceLookupFlags {
3081    #[inline]
3082    unsafe fn from_glib(value: ffi::GResourceLookupFlags) -> Self {
3083        Self::from_bits_truncate(value)
3084    }
3085}
3086
3087impl StaticType for ResourceLookupFlags {
3088    #[inline]
3089    #[doc(alias = "g_resource_lookup_flags_get_type")]
3090    fn static_type() -> glib::Type {
3091        unsafe { from_glib(ffi::g_resource_lookup_flags_get_type()) }
3092    }
3093}
3094
3095impl glib::HasParamSpec for ResourceLookupFlags {
3096    type ParamSpec = glib::ParamSpecFlags;
3097    type SetValue = Self;
3098    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3099
3100    fn param_spec_builder() -> Self::BuilderFn {
3101        Self::ParamSpec::builder
3102    }
3103}
3104
3105impl glib::value::ValueType for ResourceLookupFlags {
3106    type Type = Self;
3107}
3108
3109unsafe impl<'a> glib::value::FromValue<'a> for ResourceLookupFlags {
3110    type Checker = glib::value::GenericValueTypeChecker<Self>;
3111
3112    #[inline]
3113    unsafe fn from_value(value: &'a glib::Value) -> Self {
3114        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3115    }
3116}
3117
3118impl ToValue for ResourceLookupFlags {
3119    #[inline]
3120    fn to_value(&self) -> glib::Value {
3121        let mut value = glib::Value::for_value_type::<Self>();
3122        unsafe {
3123            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3124        }
3125        value
3126    }
3127
3128    #[inline]
3129    fn value_type(&self) -> glib::Type {
3130        Self::static_type()
3131    }
3132}
3133
3134impl From<ResourceLookupFlags> for glib::Value {
3135    #[inline]
3136    fn from(v: ResourceLookupFlags) -> Self {
3137        ToValue::to_value(&v)
3138    }
3139}
3140
3141bitflags! {
3142    /// Flags used when creating a binding.
3143    ///
3144    /// These flags determine in which direction the binding works. The default is to
3145    /// synchronize in both directions.
3146    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3147    #[doc(alias = "GSettingsBindFlags")]
3148    pub struct SettingsBindFlags: u32 {
3149        /// Equivalent to `G_SETTINGS_BIND_GET|G_SETTINGS_BIND_SET`
3150        #[doc(alias = "G_SETTINGS_BIND_DEFAULT")]
3151        const DEFAULT = ffi::G_SETTINGS_BIND_DEFAULT as _;
3152        /// Update the [`glib::Object`][crate::glib::Object] property when the setting changes.
3153        ///   It is an error to use this flag if the property is not writable.
3154        #[doc(alias = "G_SETTINGS_BIND_GET")]
3155        const GET = ffi::G_SETTINGS_BIND_GET as _;
3156        /// Update the setting when the [`glib::Object`][crate::glib::Object] property changes.
3157        ///   It is an error to use this flag if the property is not readable.
3158        #[doc(alias = "G_SETTINGS_BIND_SET")]
3159        const SET = ffi::G_SETTINGS_BIND_SET as _;
3160        /// Do not try to bind a ‘sensitivity’ property to the writability of the setting
3161        #[doc(alias = "G_SETTINGS_BIND_NO_SENSITIVITY")]
3162        const NO_SENSITIVITY = ffi::G_SETTINGS_BIND_NO_SENSITIVITY as _;
3163        /// When set in addition to [flags@Gio.SettingsBindFlags.GET],
3164        ///   set the [`glib::Object`][crate::glib::Object] property
3165        ///   value initially from the setting, but do not listen for changes of the setting
3166        #[doc(alias = "G_SETTINGS_BIND_GET_NO_CHANGES")]
3167        const GET_NO_CHANGES = ffi::G_SETTINGS_BIND_GET_NO_CHANGES as _;
3168        /// When passed to [`SettingsExtManual::bind()`][crate::prelude::SettingsExtManual::bind()],
3169        ///   uses a pair of mapping functions that invert
3170        ///   the boolean value when mapping between the setting and the property.  The setting and property must both
3171        ///   be booleans.  You cannot pass this flag to [`SettingsExtManual::bind_with_mapping()`][crate::prelude::SettingsExtManual::bind_with_mapping()].
3172        #[doc(alias = "G_SETTINGS_BIND_INVERT_BOOLEAN")]
3173        const INVERT_BOOLEAN = ffi::G_SETTINGS_BIND_INVERT_BOOLEAN as _;
3174    }
3175}
3176
3177#[doc(hidden)]
3178impl IntoGlib for SettingsBindFlags {
3179    type GlibType = ffi::GSettingsBindFlags;
3180
3181    #[inline]
3182    fn into_glib(self) -> ffi::GSettingsBindFlags {
3183        self.bits()
3184    }
3185}
3186
3187#[doc(hidden)]
3188impl FromGlib<ffi::GSettingsBindFlags> for SettingsBindFlags {
3189    #[inline]
3190    unsafe fn from_glib(value: ffi::GSettingsBindFlags) -> Self {
3191        Self::from_bits_truncate(value)
3192    }
3193}
3194
3195impl StaticType for SettingsBindFlags {
3196    #[inline]
3197    #[doc(alias = "g_settings_bind_flags_get_type")]
3198    fn static_type() -> glib::Type {
3199        unsafe { from_glib(ffi::g_settings_bind_flags_get_type()) }
3200    }
3201}
3202
3203impl glib::HasParamSpec for SettingsBindFlags {
3204    type ParamSpec = glib::ParamSpecFlags;
3205    type SetValue = Self;
3206    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3207
3208    fn param_spec_builder() -> Self::BuilderFn {
3209        Self::ParamSpec::builder
3210    }
3211}
3212
3213impl glib::value::ValueType for SettingsBindFlags {
3214    type Type = Self;
3215}
3216
3217unsafe impl<'a> glib::value::FromValue<'a> for SettingsBindFlags {
3218    type Checker = glib::value::GenericValueTypeChecker<Self>;
3219
3220    #[inline]
3221    unsafe fn from_value(value: &'a glib::Value) -> Self {
3222        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3223    }
3224}
3225
3226impl ToValue for SettingsBindFlags {
3227    #[inline]
3228    fn to_value(&self) -> glib::Value {
3229        let mut value = glib::Value::for_value_type::<Self>();
3230        unsafe {
3231            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3232        }
3233        value
3234    }
3235
3236    #[inline]
3237    fn value_type(&self) -> glib::Type {
3238        Self::static_type()
3239    }
3240}
3241
3242impl From<SettingsBindFlags> for glib::Value {
3243    #[inline]
3244    fn from(v: SettingsBindFlags) -> Self {
3245        ToValue::to_value(&v)
3246    }
3247}
3248
3249bitflags! {
3250    /// Flags to define the behaviour of a #GSubprocess.
3251    ///
3252    /// Note that the default for stdin is to redirect from `/dev/null`.  For
3253    /// stdout and stderr the default are for them to inherit the
3254    /// corresponding descriptor from the calling process.
3255    ///
3256    /// Note that it is a programmer error to mix 'incompatible' flags.  For
3257    /// example, you may not request both [`STDOUT_PIPE`][Self::STDOUT_PIPE] and
3258    /// [`STDOUT_SILENCE`][Self::STDOUT_SILENCE].
3259    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3260    #[doc(alias = "GSubprocessFlags")]
3261    pub struct SubprocessFlags: u32 {
3262        /// No flags.
3263        #[doc(alias = "G_SUBPROCESS_FLAGS_NONE")]
3264        const NONE = ffi::G_SUBPROCESS_FLAGS_NONE as _;
3265        /// create a pipe for the stdin of the
3266        ///   spawned process that can be accessed with
3267        ///   g_subprocess_get_stdin_pipe().
3268        #[doc(alias = "G_SUBPROCESS_FLAGS_STDIN_PIPE")]
3269        const STDIN_PIPE = ffi::G_SUBPROCESS_FLAGS_STDIN_PIPE as _;
3270        /// stdin is inherited from the
3271        ///   calling process.
3272        #[doc(alias = "G_SUBPROCESS_FLAGS_STDIN_INHERIT")]
3273        const STDIN_INHERIT = ffi::G_SUBPROCESS_FLAGS_STDIN_INHERIT as _;
3274        /// create a pipe for the stdout of the
3275        ///   spawned process that can be accessed with
3276        ///   g_subprocess_get_stdout_pipe().
3277        #[doc(alias = "G_SUBPROCESS_FLAGS_STDOUT_PIPE")]
3278        const STDOUT_PIPE = ffi::G_SUBPROCESS_FLAGS_STDOUT_PIPE as _;
3279        /// silence the stdout of the spawned
3280        ///   process (ie: redirect to `/dev/null`).
3281        #[doc(alias = "G_SUBPROCESS_FLAGS_STDOUT_SILENCE")]
3282        const STDOUT_SILENCE = ffi::G_SUBPROCESS_FLAGS_STDOUT_SILENCE as _;
3283        /// create a pipe for the stderr of the
3284        ///   spawned process that can be accessed with
3285        ///   g_subprocess_get_stderr_pipe().
3286        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_PIPE")]
3287        const STDERR_PIPE = ffi::G_SUBPROCESS_FLAGS_STDERR_PIPE as _;
3288        /// silence the stderr of the spawned
3289        ///   process (ie: redirect to `/dev/null`).
3290        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_SILENCE")]
3291        const STDERR_SILENCE = ffi::G_SUBPROCESS_FLAGS_STDERR_SILENCE as _;
3292        /// merge the stderr of the spawned
3293        ///   process with whatever the stdout happens to be.  This is a good way
3294        ///   of directing both streams to a common log file, for example.
3295        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_MERGE")]
3296        const STDERR_MERGE = ffi::G_SUBPROCESS_FLAGS_STDERR_MERGE as _;
3297        /// spawned processes will inherit the
3298        ///   file descriptors of their parent, unless those descriptors have
3299        ///   been explicitly marked as close-on-exec.  This flag has no effect
3300        ///   over the "standard" file descriptors (stdin, stdout, stderr).
3301        #[doc(alias = "G_SUBPROCESS_FLAGS_INHERIT_FDS")]
3302        const INHERIT_FDS = ffi::G_SUBPROCESS_FLAGS_INHERIT_FDS as _;
3303        /// if path searching is
3304        ///   needed when spawning the subprocess, use the `PATH` in the launcher
3305        ///   environment. (Since: 2.72)
3306        #[cfg(feature = "v2_72")]
3307        #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
3308        #[doc(alias = "G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP")]
3309        const SEARCH_PATH_FROM_ENVP = ffi::G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP as _;
3310    }
3311}
3312
3313#[doc(hidden)]
3314impl IntoGlib for SubprocessFlags {
3315    type GlibType = ffi::GSubprocessFlags;
3316
3317    #[inline]
3318    fn into_glib(self) -> ffi::GSubprocessFlags {
3319        self.bits()
3320    }
3321}
3322
3323#[doc(hidden)]
3324impl FromGlib<ffi::GSubprocessFlags> for SubprocessFlags {
3325    #[inline]
3326    unsafe fn from_glib(value: ffi::GSubprocessFlags) -> Self {
3327        Self::from_bits_truncate(value)
3328    }
3329}
3330
3331impl StaticType for SubprocessFlags {
3332    #[inline]
3333    #[doc(alias = "g_subprocess_flags_get_type")]
3334    fn static_type() -> glib::Type {
3335        unsafe { from_glib(ffi::g_subprocess_flags_get_type()) }
3336    }
3337}
3338
3339impl glib::HasParamSpec for SubprocessFlags {
3340    type ParamSpec = glib::ParamSpecFlags;
3341    type SetValue = Self;
3342    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3343
3344    fn param_spec_builder() -> Self::BuilderFn {
3345        Self::ParamSpec::builder
3346    }
3347}
3348
3349impl glib::value::ValueType for SubprocessFlags {
3350    type Type = Self;
3351}
3352
3353unsafe impl<'a> glib::value::FromValue<'a> for SubprocessFlags {
3354    type Checker = glib::value::GenericValueTypeChecker<Self>;
3355
3356    #[inline]
3357    unsafe fn from_value(value: &'a glib::Value) -> Self {
3358        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3359    }
3360}
3361
3362impl ToValue for SubprocessFlags {
3363    #[inline]
3364    fn to_value(&self) -> glib::Value {
3365        let mut value = glib::Value::for_value_type::<Self>();
3366        unsafe {
3367            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3368        }
3369        value
3370    }
3371
3372    #[inline]
3373    fn value_type(&self) -> glib::Type {
3374        Self::static_type()
3375    }
3376}
3377
3378impl From<SubprocessFlags> for glib::Value {
3379    #[inline]
3380    fn from(v: SubprocessFlags) -> Self {
3381        ToValue::to_value(&v)
3382    }
3383}
3384
3385bitflags! {
3386    /// Flags to define future #GTestDBus behaviour.
3387    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3388    #[doc(alias = "GTestDBusFlags")]
3389    pub struct TestDBusFlags: u32 {
3390        /// No flags.
3391        #[doc(alias = "G_TEST_DBUS_NONE")]
3392        const NONE = ffi::G_TEST_DBUS_NONE as _;
3393    }
3394}
3395
3396#[doc(hidden)]
3397impl IntoGlib for TestDBusFlags {
3398    type GlibType = ffi::GTestDBusFlags;
3399
3400    #[inline]
3401    fn into_glib(self) -> ffi::GTestDBusFlags {
3402        self.bits()
3403    }
3404}
3405
3406#[doc(hidden)]
3407impl FromGlib<ffi::GTestDBusFlags> for TestDBusFlags {
3408    #[inline]
3409    unsafe fn from_glib(value: ffi::GTestDBusFlags) -> Self {
3410        Self::from_bits_truncate(value)
3411    }
3412}
3413
3414impl StaticType for TestDBusFlags {
3415    #[inline]
3416    #[doc(alias = "g_test_dbus_flags_get_type")]
3417    fn static_type() -> glib::Type {
3418        unsafe { from_glib(ffi::g_test_dbus_flags_get_type()) }
3419    }
3420}
3421
3422impl glib::HasParamSpec for TestDBusFlags {
3423    type ParamSpec = glib::ParamSpecFlags;
3424    type SetValue = Self;
3425    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3426
3427    fn param_spec_builder() -> Self::BuilderFn {
3428        Self::ParamSpec::builder
3429    }
3430}
3431
3432impl glib::value::ValueType for TestDBusFlags {
3433    type Type = Self;
3434}
3435
3436unsafe impl<'a> glib::value::FromValue<'a> for TestDBusFlags {
3437    type Checker = glib::value::GenericValueTypeChecker<Self>;
3438
3439    #[inline]
3440    unsafe fn from_value(value: &'a glib::Value) -> Self {
3441        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3442    }
3443}
3444
3445impl ToValue for TestDBusFlags {
3446    #[inline]
3447    fn to_value(&self) -> glib::Value {
3448        let mut value = glib::Value::for_value_type::<Self>();
3449        unsafe {
3450            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3451        }
3452        value
3453    }
3454
3455    #[inline]
3456    fn value_type(&self) -> glib::Type {
3457        Self::static_type()
3458    }
3459}
3460
3461impl From<TestDBusFlags> for glib::Value {
3462    #[inline]
3463    fn from(v: TestDBusFlags) -> Self {
3464        ToValue::to_value(&v)
3465    }
3466}
3467
3468bitflags! {
3469    /// A set of flags describing TLS certification validation. This can be
3470    /// used to describe why a particular certificate was rejected (for
3471    /// example, in #GTlsConnection::accept-certificate).
3472    ///
3473    /// GLib guarantees that if certificate verification fails, at least one
3474    /// flag will be set, but it does not guarantee that all possible flags
3475    /// will be set. Accordingly, you may not safely decide to ignore any
3476    /// particular type of error. For example, it would be incorrect to mask
3477    /// [`EXPIRED`][Self::EXPIRED] if you want to allow expired certificates,
3478    /// because this could potentially be the only error flag set even if
3479    /// other problems exist with the certificate.
3480    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3481    #[doc(alias = "GTlsCertificateFlags")]
3482    pub struct TlsCertificateFlags: u32 {
3483        /// The signing certificate authority is
3484        ///   not known.
3485        #[doc(alias = "G_TLS_CERTIFICATE_UNKNOWN_CA")]
3486        const UNKNOWN_CA = ffi::G_TLS_CERTIFICATE_UNKNOWN_CA as _;
3487        /// The certificate does not match the
3488        ///   expected identity of the site that it was retrieved from.
3489        #[doc(alias = "G_TLS_CERTIFICATE_BAD_IDENTITY")]
3490        const BAD_IDENTITY = ffi::G_TLS_CERTIFICATE_BAD_IDENTITY as _;
3491        /// The certificate's activation time
3492        ///   is still in the future
3493        #[doc(alias = "G_TLS_CERTIFICATE_NOT_ACTIVATED")]
3494        const NOT_ACTIVATED = ffi::G_TLS_CERTIFICATE_NOT_ACTIVATED as _;
3495        /// The certificate has expired
3496        #[doc(alias = "G_TLS_CERTIFICATE_EXPIRED")]
3497        const EXPIRED = ffi::G_TLS_CERTIFICATE_EXPIRED as _;
3498        /// The certificate has been revoked
3499        ///   according to the #GTlsConnection's certificate revocation list.
3500        #[doc(alias = "G_TLS_CERTIFICATE_REVOKED")]
3501        const REVOKED = ffi::G_TLS_CERTIFICATE_REVOKED as _;
3502        /// The certificate's algorithm is
3503        ///   considered insecure.
3504        #[doc(alias = "G_TLS_CERTIFICATE_INSECURE")]
3505        const INSECURE = ffi::G_TLS_CERTIFICATE_INSECURE as _;
3506        /// Some other error occurred validating
3507        ///   the certificate
3508        #[doc(alias = "G_TLS_CERTIFICATE_GENERIC_ERROR")]
3509        const GENERIC_ERROR = ffi::G_TLS_CERTIFICATE_GENERIC_ERROR as _;
3510        /// the combination of all of the above
3511        ///   flags
3512        #[doc(alias = "G_TLS_CERTIFICATE_VALIDATE_ALL")]
3513        const VALIDATE_ALL = ffi::G_TLS_CERTIFICATE_VALIDATE_ALL as _;
3514    }
3515}
3516
3517#[doc(hidden)]
3518impl IntoGlib for TlsCertificateFlags {
3519    type GlibType = ffi::GTlsCertificateFlags;
3520
3521    #[inline]
3522    fn into_glib(self) -> ffi::GTlsCertificateFlags {
3523        self.bits()
3524    }
3525}
3526
3527#[doc(hidden)]
3528impl FromGlib<ffi::GTlsCertificateFlags> for TlsCertificateFlags {
3529    #[inline]
3530    unsafe fn from_glib(value: ffi::GTlsCertificateFlags) -> Self {
3531        Self::from_bits_truncate(value)
3532    }
3533}
3534
3535impl StaticType for TlsCertificateFlags {
3536    #[inline]
3537    #[doc(alias = "g_tls_certificate_flags_get_type")]
3538    fn static_type() -> glib::Type {
3539        unsafe { from_glib(ffi::g_tls_certificate_flags_get_type()) }
3540    }
3541}
3542
3543impl glib::HasParamSpec for TlsCertificateFlags {
3544    type ParamSpec = glib::ParamSpecFlags;
3545    type SetValue = Self;
3546    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3547
3548    fn param_spec_builder() -> Self::BuilderFn {
3549        Self::ParamSpec::builder
3550    }
3551}
3552
3553impl glib::value::ValueType for TlsCertificateFlags {
3554    type Type = Self;
3555}
3556
3557unsafe impl<'a> glib::value::FromValue<'a> for TlsCertificateFlags {
3558    type Checker = glib::value::GenericValueTypeChecker<Self>;
3559
3560    #[inline]
3561    unsafe fn from_value(value: &'a glib::Value) -> Self {
3562        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3563    }
3564}
3565
3566impl ToValue for TlsCertificateFlags {
3567    #[inline]
3568    fn to_value(&self) -> glib::Value {
3569        let mut value = glib::Value::for_value_type::<Self>();
3570        unsafe {
3571            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3572        }
3573        value
3574    }
3575
3576    #[inline]
3577    fn value_type(&self) -> glib::Type {
3578        Self::static_type()
3579    }
3580}
3581
3582impl From<TlsCertificateFlags> for glib::Value {
3583    #[inline]
3584    fn from(v: TlsCertificateFlags) -> Self {
3585        ToValue::to_value(&v)
3586    }
3587}
3588
3589bitflags! {
3590    /// Flags for g_tls_interaction_request_certificate(),
3591    /// g_tls_interaction_request_certificate_async(), and
3592    /// g_tls_interaction_invoke_request_certificate().
3593    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3594    #[doc(alias = "GTlsCertificateRequestFlags")]
3595    pub struct TlsCertificateRequestFlags: u32 {
3596        /// No flags
3597        #[doc(alias = "G_TLS_CERTIFICATE_REQUEST_NONE")]
3598        const NONE = ffi::G_TLS_CERTIFICATE_REQUEST_NONE as _;
3599    }
3600}
3601
3602#[doc(hidden)]
3603impl IntoGlib for TlsCertificateRequestFlags {
3604    type GlibType = ffi::GTlsCertificateRequestFlags;
3605
3606    #[inline]
3607    fn into_glib(self) -> ffi::GTlsCertificateRequestFlags {
3608        self.bits()
3609    }
3610}
3611
3612#[doc(hidden)]
3613impl FromGlib<ffi::GTlsCertificateRequestFlags> for TlsCertificateRequestFlags {
3614    #[inline]
3615    unsafe fn from_glib(value: ffi::GTlsCertificateRequestFlags) -> Self {
3616        Self::from_bits_truncate(value)
3617    }
3618}
3619
3620impl StaticType for TlsCertificateRequestFlags {
3621    #[inline]
3622    #[doc(alias = "g_tls_certificate_request_flags_get_type")]
3623    fn static_type() -> glib::Type {
3624        unsafe { from_glib(ffi::g_tls_certificate_request_flags_get_type()) }
3625    }
3626}
3627
3628impl glib::HasParamSpec for TlsCertificateRequestFlags {
3629    type ParamSpec = glib::ParamSpecFlags;
3630    type SetValue = Self;
3631    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3632
3633    fn param_spec_builder() -> Self::BuilderFn {
3634        Self::ParamSpec::builder
3635    }
3636}
3637
3638impl glib::value::ValueType for TlsCertificateRequestFlags {
3639    type Type = Self;
3640}
3641
3642unsafe impl<'a> glib::value::FromValue<'a> for TlsCertificateRequestFlags {
3643    type Checker = glib::value::GenericValueTypeChecker<Self>;
3644
3645    #[inline]
3646    unsafe fn from_value(value: &'a glib::Value) -> Self {
3647        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3648    }
3649}
3650
3651impl ToValue for TlsCertificateRequestFlags {
3652    #[inline]
3653    fn to_value(&self) -> glib::Value {
3654        let mut value = glib::Value::for_value_type::<Self>();
3655        unsafe {
3656            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3657        }
3658        value
3659    }
3660
3661    #[inline]
3662    fn value_type(&self) -> glib::Type {
3663        Self::static_type()
3664    }
3665}
3666
3667impl From<TlsCertificateRequestFlags> for glib::Value {
3668    #[inline]
3669    fn from(v: TlsCertificateRequestFlags) -> Self {
3670        ToValue::to_value(&v)
3671    }
3672}
3673
3674bitflags! {
3675    /// Flags for g_tls_database_lookup_certificate_for_handle(),
3676    /// g_tls_database_lookup_certificate_issuer(),
3677    /// and g_tls_database_lookup_certificates_issued_by().
3678    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3679    #[doc(alias = "GTlsDatabaseLookupFlags")]
3680    pub struct TlsDatabaseLookupFlags: u32 {
3681        /// No lookup flags
3682        #[doc(alias = "G_TLS_DATABASE_LOOKUP_NONE")]
3683        const NONE = ffi::G_TLS_DATABASE_LOOKUP_NONE as _;
3684        /// Restrict lookup to certificates that have
3685        ///     a private key.
3686        #[doc(alias = "G_TLS_DATABASE_LOOKUP_KEYPAIR")]
3687        const KEYPAIR = ffi::G_TLS_DATABASE_LOOKUP_KEYPAIR as _;
3688    }
3689}
3690
3691#[doc(hidden)]
3692impl IntoGlib for TlsDatabaseLookupFlags {
3693    type GlibType = ffi::GTlsDatabaseLookupFlags;
3694
3695    #[inline]
3696    fn into_glib(self) -> ffi::GTlsDatabaseLookupFlags {
3697        self.bits()
3698    }
3699}
3700
3701#[doc(hidden)]
3702impl FromGlib<ffi::GTlsDatabaseLookupFlags> for TlsDatabaseLookupFlags {
3703    #[inline]
3704    unsafe fn from_glib(value: ffi::GTlsDatabaseLookupFlags) -> Self {
3705        Self::from_bits_truncate(value)
3706    }
3707}
3708
3709impl StaticType for TlsDatabaseLookupFlags {
3710    #[inline]
3711    #[doc(alias = "g_tls_database_lookup_flags_get_type")]
3712    fn static_type() -> glib::Type {
3713        unsafe { from_glib(ffi::g_tls_database_lookup_flags_get_type()) }
3714    }
3715}
3716
3717impl glib::HasParamSpec for TlsDatabaseLookupFlags {
3718    type ParamSpec = glib::ParamSpecFlags;
3719    type SetValue = Self;
3720    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3721
3722    fn param_spec_builder() -> Self::BuilderFn {
3723        Self::ParamSpec::builder
3724    }
3725}
3726
3727impl glib::value::ValueType for TlsDatabaseLookupFlags {
3728    type Type = Self;
3729}
3730
3731unsafe impl<'a> glib::value::FromValue<'a> for TlsDatabaseLookupFlags {
3732    type Checker = glib::value::GenericValueTypeChecker<Self>;
3733
3734    #[inline]
3735    unsafe fn from_value(value: &'a glib::Value) -> Self {
3736        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3737    }
3738}
3739
3740impl ToValue for TlsDatabaseLookupFlags {
3741    #[inline]
3742    fn to_value(&self) -> glib::Value {
3743        let mut value = glib::Value::for_value_type::<Self>();
3744        unsafe {
3745            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3746        }
3747        value
3748    }
3749
3750    #[inline]
3751    fn value_type(&self) -> glib::Type {
3752        Self::static_type()
3753    }
3754}
3755
3756impl From<TlsDatabaseLookupFlags> for glib::Value {
3757    #[inline]
3758    fn from(v: TlsDatabaseLookupFlags) -> Self {
3759        ToValue::to_value(&v)
3760    }
3761}
3762
3763bitflags! {
3764    /// Flags for g_tls_database_verify_chain().
3765    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3766    #[doc(alias = "GTlsDatabaseVerifyFlags")]
3767    pub struct TlsDatabaseVerifyFlags: u32 {
3768        /// No verification flags
3769        #[doc(alias = "G_TLS_DATABASE_VERIFY_NONE")]
3770        const NONE = ffi::G_TLS_DATABASE_VERIFY_NONE as _;
3771    }
3772}
3773
3774#[doc(hidden)]
3775impl IntoGlib for TlsDatabaseVerifyFlags {
3776    type GlibType = ffi::GTlsDatabaseVerifyFlags;
3777
3778    #[inline]
3779    fn into_glib(self) -> ffi::GTlsDatabaseVerifyFlags {
3780        self.bits()
3781    }
3782}
3783
3784#[doc(hidden)]
3785impl FromGlib<ffi::GTlsDatabaseVerifyFlags> for TlsDatabaseVerifyFlags {
3786    #[inline]
3787    unsafe fn from_glib(value: ffi::GTlsDatabaseVerifyFlags) -> Self {
3788        Self::from_bits_truncate(value)
3789    }
3790}
3791
3792impl StaticType for TlsDatabaseVerifyFlags {
3793    #[inline]
3794    #[doc(alias = "g_tls_database_verify_flags_get_type")]
3795    fn static_type() -> glib::Type {
3796        unsafe { from_glib(ffi::g_tls_database_verify_flags_get_type()) }
3797    }
3798}
3799
3800impl glib::HasParamSpec for TlsDatabaseVerifyFlags {
3801    type ParamSpec = glib::ParamSpecFlags;
3802    type SetValue = Self;
3803    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3804
3805    fn param_spec_builder() -> Self::BuilderFn {
3806        Self::ParamSpec::builder
3807    }
3808}
3809
3810impl glib::value::ValueType for TlsDatabaseVerifyFlags {
3811    type Type = Self;
3812}
3813
3814unsafe impl<'a> glib::value::FromValue<'a> for TlsDatabaseVerifyFlags {
3815    type Checker = glib::value::GenericValueTypeChecker<Self>;
3816
3817    #[inline]
3818    unsafe fn from_value(value: &'a glib::Value) -> Self {
3819        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3820    }
3821}
3822
3823impl ToValue for TlsDatabaseVerifyFlags {
3824    #[inline]
3825    fn to_value(&self) -> glib::Value {
3826        let mut value = glib::Value::for_value_type::<Self>();
3827        unsafe {
3828            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3829        }
3830        value
3831    }
3832
3833    #[inline]
3834    fn value_type(&self) -> glib::Type {
3835        Self::static_type()
3836    }
3837}
3838
3839impl From<TlsDatabaseVerifyFlags> for glib::Value {
3840    #[inline]
3841    fn from(v: TlsDatabaseVerifyFlags) -> Self {
3842        ToValue::to_value(&v)
3843    }
3844}
3845
3846bitflags! {
3847    /// Various flags for the password.
3848    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3849    #[doc(alias = "GTlsPasswordFlags")]
3850    pub struct TlsPasswordFlags: u32 {
3851        /// No flags
3852        #[doc(alias = "G_TLS_PASSWORD_NONE")]
3853        const NONE = ffi::G_TLS_PASSWORD_NONE as _;
3854        /// The password was wrong, and the user should retry.
3855        #[doc(alias = "G_TLS_PASSWORD_RETRY")]
3856        const RETRY = ffi::G_TLS_PASSWORD_RETRY as _;
3857        /// Hint to the user that the password has been
3858        ///    wrong many times, and the user may not have many chances left.
3859        #[doc(alias = "G_TLS_PASSWORD_MANY_TRIES")]
3860        const MANY_TRIES = ffi::G_TLS_PASSWORD_MANY_TRIES as _;
3861        /// Hint to the user that this is the last try to get
3862        ///    this password right.
3863        #[doc(alias = "G_TLS_PASSWORD_FINAL_TRY")]
3864        const FINAL_TRY = ffi::G_TLS_PASSWORD_FINAL_TRY as _;
3865        /// For PKCS #11, the user PIN is required.
3866        ///    Since: 2.70.
3867        #[doc(alias = "G_TLS_PASSWORD_PKCS11_USER")]
3868        const PKCS11_USER = ffi::G_TLS_PASSWORD_PKCS11_USER as _;
3869        /// For PKCS #11, the security officer
3870        ///    PIN is required. Since: 2.70.
3871        #[doc(alias = "G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER")]
3872        const PKCS11_SECURITY_OFFICER = ffi::G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER as _;
3873        /// For PKCS #11, the context-specific
3874        ///    PIN is required. Since: 2.70.
3875        #[doc(alias = "G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC")]
3876        const PKCS11_CONTEXT_SPECIFIC = ffi::G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC as _;
3877    }
3878}
3879
3880#[doc(hidden)]
3881impl IntoGlib for TlsPasswordFlags {
3882    type GlibType = ffi::GTlsPasswordFlags;
3883
3884    #[inline]
3885    fn into_glib(self) -> ffi::GTlsPasswordFlags {
3886        self.bits()
3887    }
3888}
3889
3890#[doc(hidden)]
3891impl FromGlib<ffi::GTlsPasswordFlags> for TlsPasswordFlags {
3892    #[inline]
3893    unsafe fn from_glib(value: ffi::GTlsPasswordFlags) -> Self {
3894        Self::from_bits_truncate(value)
3895    }
3896}
3897
3898impl StaticType for TlsPasswordFlags {
3899    #[inline]
3900    #[doc(alias = "g_tls_password_flags_get_type")]
3901    fn static_type() -> glib::Type {
3902        unsafe { from_glib(ffi::g_tls_password_flags_get_type()) }
3903    }
3904}
3905
3906impl glib::HasParamSpec for TlsPasswordFlags {
3907    type ParamSpec = glib::ParamSpecFlags;
3908    type SetValue = Self;
3909    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3910
3911    fn param_spec_builder() -> Self::BuilderFn {
3912        Self::ParamSpec::builder
3913    }
3914}
3915
3916impl glib::value::ValueType for TlsPasswordFlags {
3917    type Type = Self;
3918}
3919
3920unsafe impl<'a> glib::value::FromValue<'a> for TlsPasswordFlags {
3921    type Checker = glib::value::GenericValueTypeChecker<Self>;
3922
3923    #[inline]
3924    unsafe fn from_value(value: &'a glib::Value) -> Self {
3925        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3926    }
3927}
3928
3929impl ToValue for TlsPasswordFlags {
3930    #[inline]
3931    fn to_value(&self) -> glib::Value {
3932        let mut value = glib::Value::for_value_type::<Self>();
3933        unsafe {
3934            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3935        }
3936        value
3937    }
3938
3939    #[inline]
3940    fn value_type(&self) -> glib::Type {
3941        Self::static_type()
3942    }
3943}
3944
3945impl From<TlsPasswordFlags> for glib::Value {
3946    #[inline]
3947    fn from(v: TlsPasswordFlags) -> Self {
3948        ToValue::to_value(&v)
3949    }
3950}