gio/auto/
file_attribute_matcher.rs1use gio_sys;
6use glib::translate::*;
7use glib::GString;
8use std::fmt;
9
10glib_wrapper! {
11 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
12 pub struct FileAttributeMatcher(Shared<gio_sys::GFileAttributeMatcher>);
13
14 match fn {
15 ref => |ptr| gio_sys::g_file_attribute_matcher_ref(ptr),
16 unref => |ptr| gio_sys::g_file_attribute_matcher_unref(ptr),
17 get_type => || gio_sys::g_file_attribute_matcher_get_type(),
18 }
19}
20
21impl FileAttributeMatcher {
22 pub fn new(attributes: &str) -> FileAttributeMatcher {
23 unsafe {
24 from_glib_full(gio_sys::g_file_attribute_matcher_new(
25 attributes.to_glib_none().0,
26 ))
27 }
28 }
29
30 pub fn enumerate_namespace(&self, ns: &str) -> bool {
31 unsafe {
32 from_glib(gio_sys::g_file_attribute_matcher_enumerate_namespace(
33 self.to_glib_none().0,
34 ns.to_glib_none().0,
35 ))
36 }
37 }
38
39 pub fn matches(&self, attribute: &str) -> bool {
40 unsafe {
41 from_glib(gio_sys::g_file_attribute_matcher_matches(
42 self.to_glib_none().0,
43 attribute.to_glib_none().0,
44 ))
45 }
46 }
47
48 pub fn matches_only(&self, attribute: &str) -> bool {
49 unsafe {
50 from_glib(gio_sys::g_file_attribute_matcher_matches_only(
51 self.to_glib_none().0,
52 attribute.to_glib_none().0,
53 ))
54 }
55 }
56
57 pub fn subtract(
58 &self,
59 subtract: Option<&FileAttributeMatcher>,
60 ) -> Option<FileAttributeMatcher> {
61 unsafe {
62 from_glib_full(gio_sys::g_file_attribute_matcher_subtract(
63 self.to_glib_none().0,
64 subtract.to_glib_none().0,
65 ))
66 }
67 }
68
69 fn to_string(&self) -> GString {
70 unsafe {
71 from_glib_full(gio_sys::g_file_attribute_matcher_to_string(
72 self.to_glib_none().0,
73 ))
74 }
75 }
76}
77
78impl fmt::Display for FileAttributeMatcher {
79 #[inline]
80 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
81 write!(f, "{}", self.to_string())
82 }
83}