libappstream/flags.rs
1use glib::bitflags::bitflags;
2use glib::translate::*;
3use std::fmt;
4
5bitflags! {
6    /// The token match kind, which we want to be exactly 16 bits for storage
7    /// reasons.
8    #[derive(Debug)]
9    #[doc(alias = "AsSearchTokenMatch")]
10    pub struct SearchTokenMatch: u16 {
11        /// No token matching
12        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_NONE")]
13        const NONE = ffi::AS_SEARCH_TOKEN_MATCH_NONE as u16;
14        /// Use the component mediatypes
15        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_MEDIATYPE")]
16        const MEDIATYPE = ffi::AS_SEARCH_TOKEN_MATCH_MEDIATYPE as u16;
17        /// Use the component package name
18        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_PKGNAME")]
19        const PKGNAME = ffi::AS_SEARCH_TOKEN_MATCH_PKGNAME as u16;
20        /// Use the app origin
21        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_ORIGIN")]
22        const ORIGIN = ffi::AS_SEARCH_TOKEN_MATCH_ORIGIN as u16;
23        /// Use the component description
24        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_DESCRIPTION")]
25        const DESCRIPTION = ffi::AS_SEARCH_TOKEN_MATCH_DESCRIPTION as u16;
26        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_SUMMARY")]
27        const SUMMARY = ffi::AS_SEARCH_TOKEN_MATCH_SUMMARY as u16;
28        /// Use the component keyword
29        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_KEYWORD")]
30        const KEYWORD = ffi::AS_SEARCH_TOKEN_MATCH_KEYWORD as u16;
31        /// Use the component name
32        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_NAME")]
33        const NAME = ffi::AS_SEARCH_TOKEN_MATCH_NAME as u16;
34        /// Use the component ID
35        #[doc(alias = "AS_SEARCH_TOKEN_MATCH_ID")]
36        const ID = ffi::AS_SEARCH_TOKEN_MATCH_ID as u16;
37    }
38}
39
40impl fmt::Display for SearchTokenMatch {
41    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
42        <Self as fmt::Debug>::fmt(self, f)
43    }
44}
45
46#[doc(hidden)]
47impl IntoGlib for SearchTokenMatch {
48    type GlibType = ffi::AsSearchTokenMatch;
49
50    fn into_glib(self) -> ffi::AsSearchTokenMatch {
51        self.bits()
52    }
53}
54
55#[doc(hidden)]
56impl FromGlib<ffi::AsSearchTokenMatch> for SearchTokenMatch {
57    unsafe fn from_glib(value: ffi::AsSearchTokenMatch) -> Self {
58        skip_assert_initialized!();
59        Self::from_bits_truncate(value)
60    }
61}