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        /// Mount the volume read-only. Since: 2.92
2612        #[cfg(feature = "v2_92")]
2613        #[cfg_attr(docsrs, doc(cfg(feature = "v2_92")))]
2614        #[doc(alias = "G_MOUNT_MOUNT_READ_ONLY")]
2615        const READ_ONLY = ffi::G_MOUNT_MOUNT_READ_ONLY as _;
2616    }
2617}
2618
2619#[doc(hidden)]
2620impl IntoGlib for MountMountFlags {
2621    type GlibType = ffi::GMountMountFlags;
2622
2623    #[inline]
2624    fn into_glib(self) -> ffi::GMountMountFlags {
2625        self.bits()
2626    }
2627}
2628
2629#[doc(hidden)]
2630impl FromGlib<ffi::GMountMountFlags> for MountMountFlags {
2631    #[inline]
2632    unsafe fn from_glib(value: ffi::GMountMountFlags) -> Self {
2633        Self::from_bits_truncate(value)
2634    }
2635}
2636
2637impl StaticType for MountMountFlags {
2638    #[inline]
2639    #[doc(alias = "g_mount_mount_flags_get_type")]
2640    fn static_type() -> glib::Type {
2641        unsafe { from_glib(ffi::g_mount_mount_flags_get_type()) }
2642    }
2643}
2644
2645impl glib::HasParamSpec for MountMountFlags {
2646    type ParamSpec = glib::ParamSpecFlags;
2647    type SetValue = Self;
2648    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2649
2650    fn param_spec_builder() -> Self::BuilderFn {
2651        Self::ParamSpec::builder
2652    }
2653}
2654
2655impl glib::value::ValueType for MountMountFlags {
2656    type Type = Self;
2657}
2658
2659unsafe impl<'a> glib::value::FromValue<'a> for MountMountFlags {
2660    type Checker = glib::value::GenericValueTypeChecker<Self>;
2661
2662    #[inline]
2663    unsafe fn from_value(value: &'a glib::Value) -> Self {
2664        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2665    }
2666}
2667
2668impl ToValue for MountMountFlags {
2669    #[inline]
2670    fn to_value(&self) -> glib::Value {
2671        let mut value = glib::Value::for_value_type::<Self>();
2672        unsafe {
2673            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2674        }
2675        value
2676    }
2677
2678    #[inline]
2679    fn value_type(&self) -> glib::Type {
2680        Self::static_type()
2681    }
2682}
2683
2684impl From<MountMountFlags> for glib::Value {
2685    #[inline]
2686    fn from(v: MountMountFlags) -> Self {
2687        ToValue::to_value(&v)
2688    }
2689}
2690
2691bitflags! {
2692    /// Flags used when an unmounting a mount.
2693    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2694    #[doc(alias = "GMountUnmountFlags")]
2695    pub struct MountUnmountFlags: u32 {
2696        /// No flags set.
2697        #[doc(alias = "G_MOUNT_UNMOUNT_NONE")]
2698        const NONE = ffi::G_MOUNT_UNMOUNT_NONE as _;
2699        /// Unmount even if there are outstanding
2700        ///  file operations on the mount.
2701        #[doc(alias = "G_MOUNT_UNMOUNT_FORCE")]
2702        const FORCE = ffi::G_MOUNT_UNMOUNT_FORCE as _;
2703    }
2704}
2705
2706#[doc(hidden)]
2707impl IntoGlib for MountUnmountFlags {
2708    type GlibType = ffi::GMountUnmountFlags;
2709
2710    #[inline]
2711    fn into_glib(self) -> ffi::GMountUnmountFlags {
2712        self.bits()
2713    }
2714}
2715
2716#[doc(hidden)]
2717impl FromGlib<ffi::GMountUnmountFlags> for MountUnmountFlags {
2718    #[inline]
2719    unsafe fn from_glib(value: ffi::GMountUnmountFlags) -> Self {
2720        Self::from_bits_truncate(value)
2721    }
2722}
2723
2724impl StaticType for MountUnmountFlags {
2725    #[inline]
2726    #[doc(alias = "g_mount_unmount_flags_get_type")]
2727    fn static_type() -> glib::Type {
2728        unsafe { from_glib(ffi::g_mount_unmount_flags_get_type()) }
2729    }
2730}
2731
2732impl glib::HasParamSpec for MountUnmountFlags {
2733    type ParamSpec = glib::ParamSpecFlags;
2734    type SetValue = Self;
2735    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2736
2737    fn param_spec_builder() -> Self::BuilderFn {
2738        Self::ParamSpec::builder
2739    }
2740}
2741
2742impl glib::value::ValueType for MountUnmountFlags {
2743    type Type = Self;
2744}
2745
2746unsafe impl<'a> glib::value::FromValue<'a> for MountUnmountFlags {
2747    type Checker = glib::value::GenericValueTypeChecker<Self>;
2748
2749    #[inline]
2750    unsafe fn from_value(value: &'a glib::Value) -> Self {
2751        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2752    }
2753}
2754
2755impl ToValue for MountUnmountFlags {
2756    #[inline]
2757    fn to_value(&self) -> glib::Value {
2758        let mut value = glib::Value::for_value_type::<Self>();
2759        unsafe {
2760            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2761        }
2762        value
2763    }
2764
2765    #[inline]
2766    fn value_type(&self) -> glib::Type {
2767        Self::static_type()
2768    }
2769}
2770
2771impl From<MountUnmountFlags> for glib::Value {
2772    #[inline]
2773    fn from(v: MountUnmountFlags) -> Self {
2774        ToValue::to_value(&v)
2775    }
2776}
2777
2778bitflags! {
2779    /// GOutputStreamSpliceFlags determine how streams should be spliced.
2780    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2781    #[doc(alias = "GOutputStreamSpliceFlags")]
2782    pub struct OutputStreamSpliceFlags: u32 {
2783        /// Do not close either stream.
2784        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_NONE")]
2785        const NONE = ffi::G_OUTPUT_STREAM_SPLICE_NONE as _;
2786        /// Close the source stream after
2787        ///     the splice.
2788        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE")]
2789        const CLOSE_SOURCE = ffi::G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE as _;
2790        /// Close the target stream after
2791        ///     the splice.
2792        #[doc(alias = "G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET")]
2793        const CLOSE_TARGET = ffi::G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET as _;
2794    }
2795}
2796
2797#[doc(hidden)]
2798impl IntoGlib for OutputStreamSpliceFlags {
2799    type GlibType = ffi::GOutputStreamSpliceFlags;
2800
2801    #[inline]
2802    fn into_glib(self) -> ffi::GOutputStreamSpliceFlags {
2803        self.bits()
2804    }
2805}
2806
2807#[doc(hidden)]
2808impl FromGlib<ffi::GOutputStreamSpliceFlags> for OutputStreamSpliceFlags {
2809    #[inline]
2810    unsafe fn from_glib(value: ffi::GOutputStreamSpliceFlags) -> Self {
2811        Self::from_bits_truncate(value)
2812    }
2813}
2814
2815impl StaticType for OutputStreamSpliceFlags {
2816    #[inline]
2817    #[doc(alias = "g_output_stream_splice_flags_get_type")]
2818    fn static_type() -> glib::Type {
2819        unsafe { from_glib(ffi::g_output_stream_splice_flags_get_type()) }
2820    }
2821}
2822
2823impl glib::HasParamSpec for OutputStreamSpliceFlags {
2824    type ParamSpec = glib::ParamSpecFlags;
2825    type SetValue = Self;
2826    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2827
2828    fn param_spec_builder() -> Self::BuilderFn {
2829        Self::ParamSpec::builder
2830    }
2831}
2832
2833impl glib::value::ValueType for OutputStreamSpliceFlags {
2834    type Type = Self;
2835}
2836
2837unsafe impl<'a> glib::value::FromValue<'a> for OutputStreamSpliceFlags {
2838    type Checker = glib::value::GenericValueTypeChecker<Self>;
2839
2840    #[inline]
2841    unsafe fn from_value(value: &'a glib::Value) -> Self {
2842        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2843    }
2844}
2845
2846impl ToValue for OutputStreamSpliceFlags {
2847    #[inline]
2848    fn to_value(&self) -> glib::Value {
2849        let mut value = glib::Value::for_value_type::<Self>();
2850        unsafe {
2851            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2852        }
2853        value
2854    }
2855
2856    #[inline]
2857    fn value_type(&self) -> glib::Type {
2858        Self::static_type()
2859    }
2860}
2861
2862impl From<OutputStreamSpliceFlags> for glib::Value {
2863    #[inline]
2864    fn from(v: OutputStreamSpliceFlags) -> Self {
2865        ToValue::to_value(&v)
2866    }
2867}
2868
2869#[cfg(feature = "v2_60")]
2870bitflags! {
2871    /// Flags to modify lookup behavior.
2872    #[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2873    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2874    #[doc(alias = "GResolverNameLookupFlags")]
2875    pub struct ResolverNameLookupFlags: u32 {
2876        /// default behavior (same as g_resolver_lookup_by_name())
2877        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT")]
2878        const DEFAULT = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT as _;
2879        /// only resolve ipv4 addresses
2880        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY")]
2881        const IPV4_ONLY = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY as _;
2882        /// only resolve ipv6 addresses
2883        #[doc(alias = "G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY")]
2884        const IPV6_ONLY = ffi::G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY as _;
2885    }
2886}
2887
2888#[cfg(feature = "v2_60")]
2889#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2890#[doc(hidden)]
2891impl IntoGlib for ResolverNameLookupFlags {
2892    type GlibType = ffi::GResolverNameLookupFlags;
2893
2894    #[inline]
2895    fn into_glib(self) -> ffi::GResolverNameLookupFlags {
2896        self.bits()
2897    }
2898}
2899
2900#[cfg(feature = "v2_60")]
2901#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2902#[doc(hidden)]
2903impl FromGlib<ffi::GResolverNameLookupFlags> for ResolverNameLookupFlags {
2904    #[inline]
2905    unsafe fn from_glib(value: ffi::GResolverNameLookupFlags) -> Self {
2906        Self::from_bits_truncate(value)
2907    }
2908}
2909
2910#[cfg(feature = "v2_60")]
2911#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2912impl StaticType for ResolverNameLookupFlags {
2913    #[inline]
2914    #[doc(alias = "g_resolver_name_lookup_flags_get_type")]
2915    fn static_type() -> glib::Type {
2916        unsafe { from_glib(ffi::g_resolver_name_lookup_flags_get_type()) }
2917    }
2918}
2919
2920#[cfg(feature = "v2_60")]
2921#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2922impl glib::HasParamSpec for ResolverNameLookupFlags {
2923    type ParamSpec = glib::ParamSpecFlags;
2924    type SetValue = Self;
2925    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
2926
2927    fn param_spec_builder() -> Self::BuilderFn {
2928        Self::ParamSpec::builder
2929    }
2930}
2931
2932#[cfg(feature = "v2_60")]
2933#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2934impl glib::value::ValueType for ResolverNameLookupFlags {
2935    type Type = Self;
2936}
2937
2938#[cfg(feature = "v2_60")]
2939#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2940unsafe impl<'a> glib::value::FromValue<'a> for ResolverNameLookupFlags {
2941    type Checker = glib::value::GenericValueTypeChecker<Self>;
2942
2943    #[inline]
2944    unsafe fn from_value(value: &'a glib::Value) -> Self {
2945        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
2946    }
2947}
2948
2949#[cfg(feature = "v2_60")]
2950#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2951impl ToValue for ResolverNameLookupFlags {
2952    #[inline]
2953    fn to_value(&self) -> glib::Value {
2954        let mut value = glib::Value::for_value_type::<Self>();
2955        unsafe {
2956            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
2957        }
2958        value
2959    }
2960
2961    #[inline]
2962    fn value_type(&self) -> glib::Type {
2963        Self::static_type()
2964    }
2965}
2966
2967#[cfg(feature = "v2_60")]
2968#[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
2969impl From<ResolverNameLookupFlags> for glib::Value {
2970    #[inline]
2971    fn from(v: ResolverNameLookupFlags) -> Self {
2972        ToValue::to_value(&v)
2973    }
2974}
2975
2976bitflags! {
2977    /// GResourceFlags give information about a particular file inside a resource
2978    /// bundle.
2979    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
2980    #[doc(alias = "GResourceFlags")]
2981    pub struct ResourceFlags: u32 {
2982        /// No flags set.
2983        #[doc(alias = "G_RESOURCE_FLAGS_NONE")]
2984        const NONE = ffi::G_RESOURCE_FLAGS_NONE as _;
2985        /// The file is compressed.
2986        #[doc(alias = "G_RESOURCE_FLAGS_COMPRESSED")]
2987        const COMPRESSED = ffi::G_RESOURCE_FLAGS_COMPRESSED as _;
2988    }
2989}
2990
2991#[doc(hidden)]
2992impl IntoGlib for ResourceFlags {
2993    type GlibType = ffi::GResourceFlags;
2994
2995    #[inline]
2996    fn into_glib(self) -> ffi::GResourceFlags {
2997        self.bits()
2998    }
2999}
3000
3001#[doc(hidden)]
3002impl FromGlib<ffi::GResourceFlags> for ResourceFlags {
3003    #[inline]
3004    unsafe fn from_glib(value: ffi::GResourceFlags) -> Self {
3005        Self::from_bits_truncate(value)
3006    }
3007}
3008
3009impl StaticType for ResourceFlags {
3010    #[inline]
3011    #[doc(alias = "g_resource_flags_get_type")]
3012    fn static_type() -> glib::Type {
3013        unsafe { from_glib(ffi::g_resource_flags_get_type()) }
3014    }
3015}
3016
3017impl glib::HasParamSpec for ResourceFlags {
3018    type ParamSpec = glib::ParamSpecFlags;
3019    type SetValue = Self;
3020    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3021
3022    fn param_spec_builder() -> Self::BuilderFn {
3023        Self::ParamSpec::builder
3024    }
3025}
3026
3027impl glib::value::ValueType for ResourceFlags {
3028    type Type = Self;
3029}
3030
3031unsafe impl<'a> glib::value::FromValue<'a> for ResourceFlags {
3032    type Checker = glib::value::GenericValueTypeChecker<Self>;
3033
3034    #[inline]
3035    unsafe fn from_value(value: &'a glib::Value) -> Self {
3036        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3037    }
3038}
3039
3040impl ToValue for ResourceFlags {
3041    #[inline]
3042    fn to_value(&self) -> glib::Value {
3043        let mut value = glib::Value::for_value_type::<Self>();
3044        unsafe {
3045            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3046        }
3047        value
3048    }
3049
3050    #[inline]
3051    fn value_type(&self) -> glib::Type {
3052        Self::static_type()
3053    }
3054}
3055
3056impl From<ResourceFlags> for glib::Value {
3057    #[inline]
3058    fn from(v: ResourceFlags) -> Self {
3059        ToValue::to_value(&v)
3060    }
3061}
3062
3063bitflags! {
3064    /// GResourceLookupFlags determine how resource path lookups are handled.
3065    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3066    #[doc(alias = "GResourceLookupFlags")]
3067    pub struct ResourceLookupFlags: u32 {
3068        /// No flags set.
3069        #[doc(alias = "G_RESOURCE_LOOKUP_FLAGS_NONE")]
3070        const NONE = ffi::G_RESOURCE_LOOKUP_FLAGS_NONE as _;
3071    }
3072}
3073
3074#[doc(hidden)]
3075impl IntoGlib for ResourceLookupFlags {
3076    type GlibType = ffi::GResourceLookupFlags;
3077
3078    #[inline]
3079    fn into_glib(self) -> ffi::GResourceLookupFlags {
3080        self.bits()
3081    }
3082}
3083
3084#[doc(hidden)]
3085impl FromGlib<ffi::GResourceLookupFlags> for ResourceLookupFlags {
3086    #[inline]
3087    unsafe fn from_glib(value: ffi::GResourceLookupFlags) -> Self {
3088        Self::from_bits_truncate(value)
3089    }
3090}
3091
3092impl StaticType for ResourceLookupFlags {
3093    #[inline]
3094    #[doc(alias = "g_resource_lookup_flags_get_type")]
3095    fn static_type() -> glib::Type {
3096        unsafe { from_glib(ffi::g_resource_lookup_flags_get_type()) }
3097    }
3098}
3099
3100impl glib::HasParamSpec for ResourceLookupFlags {
3101    type ParamSpec = glib::ParamSpecFlags;
3102    type SetValue = Self;
3103    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3104
3105    fn param_spec_builder() -> Self::BuilderFn {
3106        Self::ParamSpec::builder
3107    }
3108}
3109
3110impl glib::value::ValueType for ResourceLookupFlags {
3111    type Type = Self;
3112}
3113
3114unsafe impl<'a> glib::value::FromValue<'a> for ResourceLookupFlags {
3115    type Checker = glib::value::GenericValueTypeChecker<Self>;
3116
3117    #[inline]
3118    unsafe fn from_value(value: &'a glib::Value) -> Self {
3119        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3120    }
3121}
3122
3123impl ToValue for ResourceLookupFlags {
3124    #[inline]
3125    fn to_value(&self) -> glib::Value {
3126        let mut value = glib::Value::for_value_type::<Self>();
3127        unsafe {
3128            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3129        }
3130        value
3131    }
3132
3133    #[inline]
3134    fn value_type(&self) -> glib::Type {
3135        Self::static_type()
3136    }
3137}
3138
3139impl From<ResourceLookupFlags> for glib::Value {
3140    #[inline]
3141    fn from(v: ResourceLookupFlags) -> Self {
3142        ToValue::to_value(&v)
3143    }
3144}
3145
3146bitflags! {
3147    /// Flags used when creating a binding.
3148    ///
3149    /// These flags determine in which direction the binding works. The default is to
3150    /// synchronize in both directions.
3151    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3152    #[doc(alias = "GSettingsBindFlags")]
3153    pub struct SettingsBindFlags: u32 {
3154        /// Equivalent to `G_SETTINGS_BIND_GET|G_SETTINGS_BIND_SET`
3155        #[doc(alias = "G_SETTINGS_BIND_DEFAULT")]
3156        const DEFAULT = ffi::G_SETTINGS_BIND_DEFAULT as _;
3157        /// Update the [`glib::Object`][crate::glib::Object] property when the setting changes.
3158        ///   It is an error to use this flag if the property is not writable.
3159        #[doc(alias = "G_SETTINGS_BIND_GET")]
3160        const GET = ffi::G_SETTINGS_BIND_GET as _;
3161        /// Update the setting when the [`glib::Object`][crate::glib::Object] property changes.
3162        ///   It is an error to use this flag if the property is not readable.
3163        #[doc(alias = "G_SETTINGS_BIND_SET")]
3164        const SET = ffi::G_SETTINGS_BIND_SET as _;
3165        /// Do not try to bind a ‘sensitivity’ property to the writability of the setting
3166        #[doc(alias = "G_SETTINGS_BIND_NO_SENSITIVITY")]
3167        const NO_SENSITIVITY = ffi::G_SETTINGS_BIND_NO_SENSITIVITY as _;
3168        /// When set in addition to [flags@Gio.SettingsBindFlags.GET],
3169        ///   set the [`glib::Object`][crate::glib::Object] property
3170        ///   value initially from the setting, but do not listen for changes of the setting
3171        #[doc(alias = "G_SETTINGS_BIND_GET_NO_CHANGES")]
3172        const GET_NO_CHANGES = ffi::G_SETTINGS_BIND_GET_NO_CHANGES as _;
3173        /// When passed to [`SettingsExtManual::bind()`][crate::prelude::SettingsExtManual::bind()],
3174        ///   uses a pair of mapping functions that invert
3175        ///   the boolean value when mapping between the setting and the property.  The setting and property must both
3176        ///   be booleans.  You cannot pass this flag to [`SettingsExtManual::bind_with_mapping()`][crate::prelude::SettingsExtManual::bind_with_mapping()].
3177        #[doc(alias = "G_SETTINGS_BIND_INVERT_BOOLEAN")]
3178        const INVERT_BOOLEAN = ffi::G_SETTINGS_BIND_INVERT_BOOLEAN as _;
3179    }
3180}
3181
3182#[doc(hidden)]
3183impl IntoGlib for SettingsBindFlags {
3184    type GlibType = ffi::GSettingsBindFlags;
3185
3186    #[inline]
3187    fn into_glib(self) -> ffi::GSettingsBindFlags {
3188        self.bits()
3189    }
3190}
3191
3192#[doc(hidden)]
3193impl FromGlib<ffi::GSettingsBindFlags> for SettingsBindFlags {
3194    #[inline]
3195    unsafe fn from_glib(value: ffi::GSettingsBindFlags) -> Self {
3196        Self::from_bits_truncate(value)
3197    }
3198}
3199
3200impl StaticType for SettingsBindFlags {
3201    #[inline]
3202    #[doc(alias = "g_settings_bind_flags_get_type")]
3203    fn static_type() -> glib::Type {
3204        unsafe { from_glib(ffi::g_settings_bind_flags_get_type()) }
3205    }
3206}
3207
3208impl glib::HasParamSpec for SettingsBindFlags {
3209    type ParamSpec = glib::ParamSpecFlags;
3210    type SetValue = Self;
3211    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3212
3213    fn param_spec_builder() -> Self::BuilderFn {
3214        Self::ParamSpec::builder
3215    }
3216}
3217
3218impl glib::value::ValueType for SettingsBindFlags {
3219    type Type = Self;
3220}
3221
3222unsafe impl<'a> glib::value::FromValue<'a> for SettingsBindFlags {
3223    type Checker = glib::value::GenericValueTypeChecker<Self>;
3224
3225    #[inline]
3226    unsafe fn from_value(value: &'a glib::Value) -> Self {
3227        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3228    }
3229}
3230
3231impl ToValue for SettingsBindFlags {
3232    #[inline]
3233    fn to_value(&self) -> glib::Value {
3234        let mut value = glib::Value::for_value_type::<Self>();
3235        unsafe {
3236            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3237        }
3238        value
3239    }
3240
3241    #[inline]
3242    fn value_type(&self) -> glib::Type {
3243        Self::static_type()
3244    }
3245}
3246
3247impl From<SettingsBindFlags> for glib::Value {
3248    #[inline]
3249    fn from(v: SettingsBindFlags) -> Self {
3250        ToValue::to_value(&v)
3251    }
3252}
3253
3254bitflags! {
3255    /// Flags to define the behaviour of a #GSubprocess.
3256    ///
3257    /// Note that the default for stdin is to redirect from `/dev/null`.  For
3258    /// stdout and stderr the default are for them to inherit the
3259    /// corresponding descriptor from the calling process.
3260    ///
3261    /// Note that it is a programmer error to mix 'incompatible' flags.  For
3262    /// example, you may not request both [`STDOUT_PIPE`][Self::STDOUT_PIPE] and
3263    /// [`STDOUT_SILENCE`][Self::STDOUT_SILENCE].
3264    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3265    #[doc(alias = "GSubprocessFlags")]
3266    pub struct SubprocessFlags: u32 {
3267        /// No flags.
3268        #[doc(alias = "G_SUBPROCESS_FLAGS_NONE")]
3269        const NONE = ffi::G_SUBPROCESS_FLAGS_NONE as _;
3270        /// create a pipe for the stdin of the
3271        ///   spawned process that can be accessed with
3272        ///   g_subprocess_get_stdin_pipe().
3273        #[doc(alias = "G_SUBPROCESS_FLAGS_STDIN_PIPE")]
3274        const STDIN_PIPE = ffi::G_SUBPROCESS_FLAGS_STDIN_PIPE as _;
3275        /// stdin is inherited from the
3276        ///   calling process.
3277        #[doc(alias = "G_SUBPROCESS_FLAGS_STDIN_INHERIT")]
3278        const STDIN_INHERIT = ffi::G_SUBPROCESS_FLAGS_STDIN_INHERIT as _;
3279        /// create a pipe for the stdout of the
3280        ///   spawned process that can be accessed with
3281        ///   g_subprocess_get_stdout_pipe().
3282        #[doc(alias = "G_SUBPROCESS_FLAGS_STDOUT_PIPE")]
3283        const STDOUT_PIPE = ffi::G_SUBPROCESS_FLAGS_STDOUT_PIPE as _;
3284        /// silence the stdout of the spawned
3285        ///   process (ie: redirect to `/dev/null`).
3286        #[doc(alias = "G_SUBPROCESS_FLAGS_STDOUT_SILENCE")]
3287        const STDOUT_SILENCE = ffi::G_SUBPROCESS_FLAGS_STDOUT_SILENCE as _;
3288        /// create a pipe for the stderr of the
3289        ///   spawned process that can be accessed with
3290        ///   g_subprocess_get_stderr_pipe().
3291        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_PIPE")]
3292        const STDERR_PIPE = ffi::G_SUBPROCESS_FLAGS_STDERR_PIPE as _;
3293        /// silence the stderr of the spawned
3294        ///   process (ie: redirect to `/dev/null`).
3295        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_SILENCE")]
3296        const STDERR_SILENCE = ffi::G_SUBPROCESS_FLAGS_STDERR_SILENCE as _;
3297        /// merge the stderr of the spawned
3298        ///   process with whatever the stdout happens to be.  This is a good way
3299        ///   of directing both streams to a common log file, for example.
3300        #[doc(alias = "G_SUBPROCESS_FLAGS_STDERR_MERGE")]
3301        const STDERR_MERGE = ffi::G_SUBPROCESS_FLAGS_STDERR_MERGE as _;
3302        /// spawned processes will inherit the
3303        ///   file descriptors of their parent, unless those descriptors have
3304        ///   been explicitly marked as close-on-exec.  This flag has no effect
3305        ///   over the "standard" file descriptors (stdin, stdout, stderr).
3306        #[doc(alias = "G_SUBPROCESS_FLAGS_INHERIT_FDS")]
3307        const INHERIT_FDS = ffi::G_SUBPROCESS_FLAGS_INHERIT_FDS as _;
3308        /// if path searching is
3309        ///   needed when spawning the subprocess, use the `PATH` in the launcher
3310        ///   environment. (Since: 2.72)
3311        #[cfg(feature = "v2_72")]
3312        #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
3313        #[doc(alias = "G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP")]
3314        const SEARCH_PATH_FROM_ENVP = ffi::G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP as _;
3315    }
3316}
3317
3318#[doc(hidden)]
3319impl IntoGlib for SubprocessFlags {
3320    type GlibType = ffi::GSubprocessFlags;
3321
3322    #[inline]
3323    fn into_glib(self) -> ffi::GSubprocessFlags {
3324        self.bits()
3325    }
3326}
3327
3328#[doc(hidden)]
3329impl FromGlib<ffi::GSubprocessFlags> for SubprocessFlags {
3330    #[inline]
3331    unsafe fn from_glib(value: ffi::GSubprocessFlags) -> Self {
3332        Self::from_bits_truncate(value)
3333    }
3334}
3335
3336impl StaticType for SubprocessFlags {
3337    #[inline]
3338    #[doc(alias = "g_subprocess_flags_get_type")]
3339    fn static_type() -> glib::Type {
3340        unsafe { from_glib(ffi::g_subprocess_flags_get_type()) }
3341    }
3342}
3343
3344impl glib::HasParamSpec for SubprocessFlags {
3345    type ParamSpec = glib::ParamSpecFlags;
3346    type SetValue = Self;
3347    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3348
3349    fn param_spec_builder() -> Self::BuilderFn {
3350        Self::ParamSpec::builder
3351    }
3352}
3353
3354impl glib::value::ValueType for SubprocessFlags {
3355    type Type = Self;
3356}
3357
3358unsafe impl<'a> glib::value::FromValue<'a> for SubprocessFlags {
3359    type Checker = glib::value::GenericValueTypeChecker<Self>;
3360
3361    #[inline]
3362    unsafe fn from_value(value: &'a glib::Value) -> Self {
3363        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3364    }
3365}
3366
3367impl ToValue for SubprocessFlags {
3368    #[inline]
3369    fn to_value(&self) -> glib::Value {
3370        let mut value = glib::Value::for_value_type::<Self>();
3371        unsafe {
3372            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3373        }
3374        value
3375    }
3376
3377    #[inline]
3378    fn value_type(&self) -> glib::Type {
3379        Self::static_type()
3380    }
3381}
3382
3383impl From<SubprocessFlags> for glib::Value {
3384    #[inline]
3385    fn from(v: SubprocessFlags) -> Self {
3386        ToValue::to_value(&v)
3387    }
3388}
3389
3390bitflags! {
3391    /// Flags to define future #GTestDBus behaviour.
3392    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3393    #[doc(alias = "GTestDBusFlags")]
3394    pub struct TestDBusFlags: u32 {
3395        /// No flags.
3396        #[doc(alias = "G_TEST_DBUS_NONE")]
3397        const NONE = ffi::G_TEST_DBUS_NONE as _;
3398    }
3399}
3400
3401#[doc(hidden)]
3402impl IntoGlib for TestDBusFlags {
3403    type GlibType = ffi::GTestDBusFlags;
3404
3405    #[inline]
3406    fn into_glib(self) -> ffi::GTestDBusFlags {
3407        self.bits()
3408    }
3409}
3410
3411#[doc(hidden)]
3412impl FromGlib<ffi::GTestDBusFlags> for TestDBusFlags {
3413    #[inline]
3414    unsafe fn from_glib(value: ffi::GTestDBusFlags) -> Self {
3415        Self::from_bits_truncate(value)
3416    }
3417}
3418
3419impl StaticType for TestDBusFlags {
3420    #[inline]
3421    #[doc(alias = "g_test_dbus_flags_get_type")]
3422    fn static_type() -> glib::Type {
3423        unsafe { from_glib(ffi::g_test_dbus_flags_get_type()) }
3424    }
3425}
3426
3427impl glib::HasParamSpec for TestDBusFlags {
3428    type ParamSpec = glib::ParamSpecFlags;
3429    type SetValue = Self;
3430    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3431
3432    fn param_spec_builder() -> Self::BuilderFn {
3433        Self::ParamSpec::builder
3434    }
3435}
3436
3437impl glib::value::ValueType for TestDBusFlags {
3438    type Type = Self;
3439}
3440
3441unsafe impl<'a> glib::value::FromValue<'a> for TestDBusFlags {
3442    type Checker = glib::value::GenericValueTypeChecker<Self>;
3443
3444    #[inline]
3445    unsafe fn from_value(value: &'a glib::Value) -> Self {
3446        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3447    }
3448}
3449
3450impl ToValue for TestDBusFlags {
3451    #[inline]
3452    fn to_value(&self) -> glib::Value {
3453        let mut value = glib::Value::for_value_type::<Self>();
3454        unsafe {
3455            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3456        }
3457        value
3458    }
3459
3460    #[inline]
3461    fn value_type(&self) -> glib::Type {
3462        Self::static_type()
3463    }
3464}
3465
3466impl From<TestDBusFlags> for glib::Value {
3467    #[inline]
3468    fn from(v: TestDBusFlags) -> Self {
3469        ToValue::to_value(&v)
3470    }
3471}
3472
3473bitflags! {
3474    /// A set of flags describing TLS certification validation. This can be
3475    /// used to describe why a particular certificate was rejected (for
3476    /// example, in #GTlsConnection::accept-certificate).
3477    ///
3478    /// GLib guarantees that if certificate verification fails, at least one
3479    /// flag will be set, but it does not guarantee that all possible flags
3480    /// will be set. Accordingly, you may not safely decide to ignore any
3481    /// particular type of error. For example, it would be incorrect to mask
3482    /// [`EXPIRED`][Self::EXPIRED] if you want to allow expired certificates,
3483    /// because this could potentially be the only error flag set even if
3484    /// other problems exist with the certificate.
3485    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3486    #[doc(alias = "GTlsCertificateFlags")]
3487    pub struct TlsCertificateFlags: u32 {
3488        /// The signing certificate authority is
3489        ///   not known.
3490        #[doc(alias = "G_TLS_CERTIFICATE_UNKNOWN_CA")]
3491        const UNKNOWN_CA = ffi::G_TLS_CERTIFICATE_UNKNOWN_CA as _;
3492        /// The certificate does not match the
3493        ///   expected identity of the site that it was retrieved from.
3494        #[doc(alias = "G_TLS_CERTIFICATE_BAD_IDENTITY")]
3495        const BAD_IDENTITY = ffi::G_TLS_CERTIFICATE_BAD_IDENTITY as _;
3496        /// The certificate's activation time
3497        ///   is still in the future
3498        #[doc(alias = "G_TLS_CERTIFICATE_NOT_ACTIVATED")]
3499        const NOT_ACTIVATED = ffi::G_TLS_CERTIFICATE_NOT_ACTIVATED as _;
3500        /// The certificate has expired
3501        #[doc(alias = "G_TLS_CERTIFICATE_EXPIRED")]
3502        const EXPIRED = ffi::G_TLS_CERTIFICATE_EXPIRED as _;
3503        /// The certificate has been revoked
3504        ///   according to the #GTlsConnection's certificate revocation list.
3505        #[doc(alias = "G_TLS_CERTIFICATE_REVOKED")]
3506        const REVOKED = ffi::G_TLS_CERTIFICATE_REVOKED as _;
3507        /// The certificate's algorithm is
3508        ///   considered insecure.
3509        #[doc(alias = "G_TLS_CERTIFICATE_INSECURE")]
3510        const INSECURE = ffi::G_TLS_CERTIFICATE_INSECURE as _;
3511        /// Some other error occurred validating
3512        ///   the certificate
3513        #[doc(alias = "G_TLS_CERTIFICATE_GENERIC_ERROR")]
3514        const GENERIC_ERROR = ffi::G_TLS_CERTIFICATE_GENERIC_ERROR as _;
3515        /// the combination of all of the above
3516        ///   flags
3517        #[doc(alias = "G_TLS_CERTIFICATE_VALIDATE_ALL")]
3518        const VALIDATE_ALL = ffi::G_TLS_CERTIFICATE_VALIDATE_ALL as _;
3519    }
3520}
3521
3522#[doc(hidden)]
3523impl IntoGlib for TlsCertificateFlags {
3524    type GlibType = ffi::GTlsCertificateFlags;
3525
3526    #[inline]
3527    fn into_glib(self) -> ffi::GTlsCertificateFlags {
3528        self.bits()
3529    }
3530}
3531
3532#[doc(hidden)]
3533impl FromGlib<ffi::GTlsCertificateFlags> for TlsCertificateFlags {
3534    #[inline]
3535    unsafe fn from_glib(value: ffi::GTlsCertificateFlags) -> Self {
3536        Self::from_bits_truncate(value)
3537    }
3538}
3539
3540impl StaticType for TlsCertificateFlags {
3541    #[inline]
3542    #[doc(alias = "g_tls_certificate_flags_get_type")]
3543    fn static_type() -> glib::Type {
3544        unsafe { from_glib(ffi::g_tls_certificate_flags_get_type()) }
3545    }
3546}
3547
3548impl glib::HasParamSpec for TlsCertificateFlags {
3549    type ParamSpec = glib::ParamSpecFlags;
3550    type SetValue = Self;
3551    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3552
3553    fn param_spec_builder() -> Self::BuilderFn {
3554        Self::ParamSpec::builder
3555    }
3556}
3557
3558impl glib::value::ValueType for TlsCertificateFlags {
3559    type Type = Self;
3560}
3561
3562unsafe impl<'a> glib::value::FromValue<'a> for TlsCertificateFlags {
3563    type Checker = glib::value::GenericValueTypeChecker<Self>;
3564
3565    #[inline]
3566    unsafe fn from_value(value: &'a glib::Value) -> Self {
3567        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3568    }
3569}
3570
3571impl ToValue for TlsCertificateFlags {
3572    #[inline]
3573    fn to_value(&self) -> glib::Value {
3574        let mut value = glib::Value::for_value_type::<Self>();
3575        unsafe {
3576            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3577        }
3578        value
3579    }
3580
3581    #[inline]
3582    fn value_type(&self) -> glib::Type {
3583        Self::static_type()
3584    }
3585}
3586
3587impl From<TlsCertificateFlags> for glib::Value {
3588    #[inline]
3589    fn from(v: TlsCertificateFlags) -> Self {
3590        ToValue::to_value(&v)
3591    }
3592}
3593
3594bitflags! {
3595    /// Flags for g_tls_interaction_request_certificate(),
3596    /// g_tls_interaction_request_certificate_async(), and
3597    /// g_tls_interaction_invoke_request_certificate().
3598    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3599    #[doc(alias = "GTlsCertificateRequestFlags")]
3600    pub struct TlsCertificateRequestFlags: u32 {
3601        /// No flags
3602        #[doc(alias = "G_TLS_CERTIFICATE_REQUEST_NONE")]
3603        const NONE = ffi::G_TLS_CERTIFICATE_REQUEST_NONE as _;
3604    }
3605}
3606
3607#[doc(hidden)]
3608impl IntoGlib for TlsCertificateRequestFlags {
3609    type GlibType = ffi::GTlsCertificateRequestFlags;
3610
3611    #[inline]
3612    fn into_glib(self) -> ffi::GTlsCertificateRequestFlags {
3613        self.bits()
3614    }
3615}
3616
3617#[doc(hidden)]
3618impl FromGlib<ffi::GTlsCertificateRequestFlags> for TlsCertificateRequestFlags {
3619    #[inline]
3620    unsafe fn from_glib(value: ffi::GTlsCertificateRequestFlags) -> Self {
3621        Self::from_bits_truncate(value)
3622    }
3623}
3624
3625impl StaticType for TlsCertificateRequestFlags {
3626    #[inline]
3627    #[doc(alias = "g_tls_certificate_request_flags_get_type")]
3628    fn static_type() -> glib::Type {
3629        unsafe { from_glib(ffi::g_tls_certificate_request_flags_get_type()) }
3630    }
3631}
3632
3633impl glib::HasParamSpec for TlsCertificateRequestFlags {
3634    type ParamSpec = glib::ParamSpecFlags;
3635    type SetValue = Self;
3636    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3637
3638    fn param_spec_builder() -> Self::BuilderFn {
3639        Self::ParamSpec::builder
3640    }
3641}
3642
3643impl glib::value::ValueType for TlsCertificateRequestFlags {
3644    type Type = Self;
3645}
3646
3647unsafe impl<'a> glib::value::FromValue<'a> for TlsCertificateRequestFlags {
3648    type Checker = glib::value::GenericValueTypeChecker<Self>;
3649
3650    #[inline]
3651    unsafe fn from_value(value: &'a glib::Value) -> Self {
3652        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3653    }
3654}
3655
3656impl ToValue for TlsCertificateRequestFlags {
3657    #[inline]
3658    fn to_value(&self) -> glib::Value {
3659        let mut value = glib::Value::for_value_type::<Self>();
3660        unsafe {
3661            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3662        }
3663        value
3664    }
3665
3666    #[inline]
3667    fn value_type(&self) -> glib::Type {
3668        Self::static_type()
3669    }
3670}
3671
3672impl From<TlsCertificateRequestFlags> for glib::Value {
3673    #[inline]
3674    fn from(v: TlsCertificateRequestFlags) -> Self {
3675        ToValue::to_value(&v)
3676    }
3677}
3678
3679bitflags! {
3680    /// Flags for g_tls_database_lookup_certificate_for_handle(),
3681    /// g_tls_database_lookup_certificate_issuer(),
3682    /// and g_tls_database_lookup_certificates_issued_by().
3683    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3684    #[doc(alias = "GTlsDatabaseLookupFlags")]
3685    pub struct TlsDatabaseLookupFlags: u32 {
3686        /// No lookup flags
3687        #[doc(alias = "G_TLS_DATABASE_LOOKUP_NONE")]
3688        const NONE = ffi::G_TLS_DATABASE_LOOKUP_NONE as _;
3689        /// Restrict lookup to certificates that have
3690        ///     a private key.
3691        #[doc(alias = "G_TLS_DATABASE_LOOKUP_KEYPAIR")]
3692        const KEYPAIR = ffi::G_TLS_DATABASE_LOOKUP_KEYPAIR as _;
3693    }
3694}
3695
3696#[doc(hidden)]
3697impl IntoGlib for TlsDatabaseLookupFlags {
3698    type GlibType = ffi::GTlsDatabaseLookupFlags;
3699
3700    #[inline]
3701    fn into_glib(self) -> ffi::GTlsDatabaseLookupFlags {
3702        self.bits()
3703    }
3704}
3705
3706#[doc(hidden)]
3707impl FromGlib<ffi::GTlsDatabaseLookupFlags> for TlsDatabaseLookupFlags {
3708    #[inline]
3709    unsafe fn from_glib(value: ffi::GTlsDatabaseLookupFlags) -> Self {
3710        Self::from_bits_truncate(value)
3711    }
3712}
3713
3714impl StaticType for TlsDatabaseLookupFlags {
3715    #[inline]
3716    #[doc(alias = "g_tls_database_lookup_flags_get_type")]
3717    fn static_type() -> glib::Type {
3718        unsafe { from_glib(ffi::g_tls_database_lookup_flags_get_type()) }
3719    }
3720}
3721
3722impl glib::HasParamSpec for TlsDatabaseLookupFlags {
3723    type ParamSpec = glib::ParamSpecFlags;
3724    type SetValue = Self;
3725    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3726
3727    fn param_spec_builder() -> Self::BuilderFn {
3728        Self::ParamSpec::builder
3729    }
3730}
3731
3732impl glib::value::ValueType for TlsDatabaseLookupFlags {
3733    type Type = Self;
3734}
3735
3736unsafe impl<'a> glib::value::FromValue<'a> for TlsDatabaseLookupFlags {
3737    type Checker = glib::value::GenericValueTypeChecker<Self>;
3738
3739    #[inline]
3740    unsafe fn from_value(value: &'a glib::Value) -> Self {
3741        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3742    }
3743}
3744
3745impl ToValue for TlsDatabaseLookupFlags {
3746    #[inline]
3747    fn to_value(&self) -> glib::Value {
3748        let mut value = glib::Value::for_value_type::<Self>();
3749        unsafe {
3750            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3751        }
3752        value
3753    }
3754
3755    #[inline]
3756    fn value_type(&self) -> glib::Type {
3757        Self::static_type()
3758    }
3759}
3760
3761impl From<TlsDatabaseLookupFlags> for glib::Value {
3762    #[inline]
3763    fn from(v: TlsDatabaseLookupFlags) -> Self {
3764        ToValue::to_value(&v)
3765    }
3766}
3767
3768bitflags! {
3769    /// Flags for g_tls_database_verify_chain().
3770    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3771    #[doc(alias = "GTlsDatabaseVerifyFlags")]
3772    pub struct TlsDatabaseVerifyFlags: u32 {
3773        /// No verification flags
3774        #[doc(alias = "G_TLS_DATABASE_VERIFY_NONE")]
3775        const NONE = ffi::G_TLS_DATABASE_VERIFY_NONE as _;
3776    }
3777}
3778
3779#[doc(hidden)]
3780impl IntoGlib for TlsDatabaseVerifyFlags {
3781    type GlibType = ffi::GTlsDatabaseVerifyFlags;
3782
3783    #[inline]
3784    fn into_glib(self) -> ffi::GTlsDatabaseVerifyFlags {
3785        self.bits()
3786    }
3787}
3788
3789#[doc(hidden)]
3790impl FromGlib<ffi::GTlsDatabaseVerifyFlags> for TlsDatabaseVerifyFlags {
3791    #[inline]
3792    unsafe fn from_glib(value: ffi::GTlsDatabaseVerifyFlags) -> Self {
3793        Self::from_bits_truncate(value)
3794    }
3795}
3796
3797impl StaticType for TlsDatabaseVerifyFlags {
3798    #[inline]
3799    #[doc(alias = "g_tls_database_verify_flags_get_type")]
3800    fn static_type() -> glib::Type {
3801        unsafe { from_glib(ffi::g_tls_database_verify_flags_get_type()) }
3802    }
3803}
3804
3805impl glib::HasParamSpec for TlsDatabaseVerifyFlags {
3806    type ParamSpec = glib::ParamSpecFlags;
3807    type SetValue = Self;
3808    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3809
3810    fn param_spec_builder() -> Self::BuilderFn {
3811        Self::ParamSpec::builder
3812    }
3813}
3814
3815impl glib::value::ValueType for TlsDatabaseVerifyFlags {
3816    type Type = Self;
3817}
3818
3819unsafe impl<'a> glib::value::FromValue<'a> for TlsDatabaseVerifyFlags {
3820    type Checker = glib::value::GenericValueTypeChecker<Self>;
3821
3822    #[inline]
3823    unsafe fn from_value(value: &'a glib::Value) -> Self {
3824        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3825    }
3826}
3827
3828impl ToValue for TlsDatabaseVerifyFlags {
3829    #[inline]
3830    fn to_value(&self) -> glib::Value {
3831        let mut value = glib::Value::for_value_type::<Self>();
3832        unsafe {
3833            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3834        }
3835        value
3836    }
3837
3838    #[inline]
3839    fn value_type(&self) -> glib::Type {
3840        Self::static_type()
3841    }
3842}
3843
3844impl From<TlsDatabaseVerifyFlags> for glib::Value {
3845    #[inline]
3846    fn from(v: TlsDatabaseVerifyFlags) -> Self {
3847        ToValue::to_value(&v)
3848    }
3849}
3850
3851bitflags! {
3852    /// Various flags for the password.
3853    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
3854    #[doc(alias = "GTlsPasswordFlags")]
3855    pub struct TlsPasswordFlags: u32 {
3856        /// No flags
3857        #[doc(alias = "G_TLS_PASSWORD_NONE")]
3858        const NONE = ffi::G_TLS_PASSWORD_NONE as _;
3859        /// The password was wrong, and the user should retry.
3860        #[doc(alias = "G_TLS_PASSWORD_RETRY")]
3861        const RETRY = ffi::G_TLS_PASSWORD_RETRY as _;
3862        /// Hint to the user that the password has been
3863        ///    wrong many times, and the user may not have many chances left.
3864        #[doc(alias = "G_TLS_PASSWORD_MANY_TRIES")]
3865        const MANY_TRIES = ffi::G_TLS_PASSWORD_MANY_TRIES as _;
3866        /// Hint to the user that this is the last try to get
3867        ///    this password right.
3868        #[doc(alias = "G_TLS_PASSWORD_FINAL_TRY")]
3869        const FINAL_TRY = ffi::G_TLS_PASSWORD_FINAL_TRY as _;
3870        /// For PKCS #11, the user PIN is required.
3871        ///    Since: 2.70.
3872        #[doc(alias = "G_TLS_PASSWORD_PKCS11_USER")]
3873        const PKCS11_USER = ffi::G_TLS_PASSWORD_PKCS11_USER as _;
3874        /// For PKCS #11, the security officer
3875        ///    PIN is required. Since: 2.70.
3876        #[doc(alias = "G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER")]
3877        const PKCS11_SECURITY_OFFICER = ffi::G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER as _;
3878        /// For PKCS #11, the context-specific
3879        ///    PIN is required. Since: 2.70.
3880        #[doc(alias = "G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC")]
3881        const PKCS11_CONTEXT_SPECIFIC = ffi::G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC as _;
3882    }
3883}
3884
3885#[doc(hidden)]
3886impl IntoGlib for TlsPasswordFlags {
3887    type GlibType = ffi::GTlsPasswordFlags;
3888
3889    #[inline]
3890    fn into_glib(self) -> ffi::GTlsPasswordFlags {
3891        self.bits()
3892    }
3893}
3894
3895#[doc(hidden)]
3896impl FromGlib<ffi::GTlsPasswordFlags> for TlsPasswordFlags {
3897    #[inline]
3898    unsafe fn from_glib(value: ffi::GTlsPasswordFlags) -> Self {
3899        Self::from_bits_truncate(value)
3900    }
3901}
3902
3903impl StaticType for TlsPasswordFlags {
3904    #[inline]
3905    #[doc(alias = "g_tls_password_flags_get_type")]
3906    fn static_type() -> glib::Type {
3907        unsafe { from_glib(ffi::g_tls_password_flags_get_type()) }
3908    }
3909}
3910
3911impl glib::HasParamSpec for TlsPasswordFlags {
3912    type ParamSpec = glib::ParamSpecFlags;
3913    type SetValue = Self;
3914    type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
3915
3916    fn param_spec_builder() -> Self::BuilderFn {
3917        Self::ParamSpec::builder
3918    }
3919}
3920
3921impl glib::value::ValueType for TlsPasswordFlags {
3922    type Type = Self;
3923}
3924
3925unsafe impl<'a> glib::value::FromValue<'a> for TlsPasswordFlags {
3926    type Checker = glib::value::GenericValueTypeChecker<Self>;
3927
3928    #[inline]
3929    unsafe fn from_value(value: &'a glib::Value) -> Self {
3930        unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
3931    }
3932}
3933
3934impl ToValue for TlsPasswordFlags {
3935    #[inline]
3936    fn to_value(&self) -> glib::Value {
3937        let mut value = glib::Value::for_value_type::<Self>();
3938        unsafe {
3939            glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
3940        }
3941        value
3942    }
3943
3944    #[inline]
3945    fn value_type(&self) -> glib::Type {
3946        Self::static_type()
3947    }
3948}
3949
3950impl From<TlsPasswordFlags> for glib::Value {
3951    #[inline]
3952    fn from(v: TlsPasswordFlags) -> Self {
3953        ToValue::to_value(&v)
3954    }
3955}