1use crate::ffi;
7use glib::{bitflags::bitflags, prelude::*, translate::*};
8
9bitflags! {
10 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
11 #[doc(alias = "TrackerSparqlConnectionFlags")]
12 pub struct SparqlConnectionFlags: u32 {
13 #[doc(alias = "TRACKER_SPARQL_CONNECTION_FLAGS_NONE")]
14 const NONE = ffi::TRACKER_SPARQL_CONNECTION_FLAGS_NONE as _;
15 #[doc(alias = "TRACKER_SPARQL_CONNECTION_FLAGS_READONLY")]
16 const READONLY = ffi::TRACKER_SPARQL_CONNECTION_FLAGS_READONLY as _;
17 #[doc(alias = "TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_STEMMER")]
18 const FTS_ENABLE_STEMMER = ffi::TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_STEMMER as _;
19 #[doc(alias = "TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_UNACCENT")]
20 const FTS_ENABLE_UNACCENT = ffi::TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_UNACCENT as _;
21 #[doc(alias = "TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_STOP_WORDS")]
22 const FTS_ENABLE_STOP_WORDS = ffi::TRACKER_SPARQL_CONNECTION_FLAGS_FTS_ENABLE_STOP_WORDS as _;
23 #[doc(alias = "TRACKER_SPARQL_CONNECTION_FLAGS_FTS_IGNORE_NUMBERS")]
24 const FTS_IGNORE_NUMBERS = ffi::TRACKER_SPARQL_CONNECTION_FLAGS_FTS_IGNORE_NUMBERS as _;
25 #[doc(alias = "TRACKER_SPARQL_CONNECTION_FLAGS_ANONYMOUS_BNODES")]
26 const ANONYMOUS_BNODES = ffi::TRACKER_SPARQL_CONNECTION_FLAGS_ANONYMOUS_BNODES as _;
27 }
28}
29
30#[doc(hidden)]
31impl IntoGlib for SparqlConnectionFlags {
32 type GlibType = ffi::TrackerSparqlConnectionFlags;
33
34 #[inline]
35 fn into_glib(self) -> ffi::TrackerSparqlConnectionFlags {
36 self.bits()
37 }
38}
39
40#[doc(hidden)]
41impl FromGlib<ffi::TrackerSparqlConnectionFlags> for SparqlConnectionFlags {
42 #[inline]
43 unsafe fn from_glib(value: ffi::TrackerSparqlConnectionFlags) -> Self {
44 skip_assert_initialized!();
45 Self::from_bits_truncate(value)
46 }
47}
48
49impl StaticType for SparqlConnectionFlags {
50 #[inline]
51 #[doc(alias = "tracker_sparql_connection_flags_get_type")]
52 fn static_type() -> glib::Type {
53 unsafe { from_glib(ffi::tracker_sparql_connection_flags_get_type()) }
54 }
55}
56
57impl glib::HasParamSpec for SparqlConnectionFlags {
58 type ParamSpec = glib::ParamSpecFlags;
59 type SetValue = Self;
60 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
61
62 fn param_spec_builder() -> Self::BuilderFn {
63 Self::ParamSpec::builder
64 }
65}
66
67impl glib::value::ValueType for SparqlConnectionFlags {
68 type Type = Self;
69}
70
71unsafe impl<'a> glib::value::FromValue<'a> for SparqlConnectionFlags {
72 type Checker = glib::value::GenericValueTypeChecker<Self>;
73
74 #[inline]
75 unsafe fn from_value(value: &'a glib::Value) -> Self {
76 skip_assert_initialized!();
77 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
78 }
79}
80
81impl ToValue for SparqlConnectionFlags {
82 #[inline]
83 fn to_value(&self) -> glib::Value {
84 let mut value = glib::Value::for_value_type::<Self>();
85 unsafe {
86 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
87 }
88 value
89 }
90
91 #[inline]
92 fn value_type(&self) -> glib::Type {
93 Self::static_type()
94 }
95}
96
97impl From<SparqlConnectionFlags> for glib::Value {
98 #[inline]
99 fn from(v: SparqlConnectionFlags) -> Self {
100 skip_assert_initialized!();
101 ToValue::to_value(&v)
102 }
103}