gio/auto/
file_info.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#![allow(deprecated)]
5
6use crate::{ffi, FileAttributeMatcher, FileAttributeStatus, FileAttributeType, FileType, Icon};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10    #[doc(alias = "GFileInfo")]
11    pub struct FileInfo(Object<ffi::GFileInfo, ffi::GFileInfoClass>);
12
13    match fn {
14        type_ => || ffi::g_file_info_get_type(),
15    }
16}
17
18impl FileInfo {
19    #[doc(alias = "g_file_info_new")]
20    pub fn new() -> FileInfo {
21        unsafe { from_glib_full(ffi::g_file_info_new()) }
22    }
23
24    #[doc(alias = "g_file_info_clear_status")]
25    pub fn clear_status(&self) {
26        unsafe {
27            ffi::g_file_info_clear_status(self.to_glib_none().0);
28        }
29    }
30
31    #[doc(alias = "g_file_info_copy_into")]
32    pub fn copy_into(&self, dest_info: &FileInfo) {
33        unsafe {
34            ffi::g_file_info_copy_into(self.to_glib_none().0, dest_info.to_glib_none().0);
35        }
36    }
37
38    #[doc(alias = "g_file_info_dup")]
39    #[must_use]
40    pub fn dup(&self) -> FileInfo {
41        unsafe { from_glib_full(ffi::g_file_info_dup(self.to_glib_none().0)) }
42    }
43
44    #[cfg(feature = "v2_70")]
45    #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
46    #[doc(alias = "g_file_info_get_access_date_time")]
47    #[doc(alias = "get_access_date_time")]
48    pub fn access_date_time(&self) -> Option<glib::DateTime> {
49        unsafe { from_glib_full(ffi::g_file_info_get_access_date_time(self.to_glib_none().0)) }
50    }
51
52    #[doc(alias = "g_file_info_get_attribute_as_string")]
53    #[doc(alias = "get_attribute_as_string")]
54    pub fn attribute_as_string(&self, attribute: &str) -> Option<glib::GString> {
55        unsafe {
56            from_glib_full(ffi::g_file_info_get_attribute_as_string(
57                self.to_glib_none().0,
58                attribute.to_glib_none().0,
59            ))
60        }
61    }
62
63    #[doc(alias = "g_file_info_get_attribute_boolean")]
64    #[doc(alias = "get_attribute_boolean")]
65    pub fn boolean(&self, attribute: &str) -> bool {
66        unsafe {
67            from_glib(ffi::g_file_info_get_attribute_boolean(
68                self.to_glib_none().0,
69                attribute.to_glib_none().0,
70            ))
71        }
72    }
73
74    #[doc(alias = "g_file_info_get_attribute_byte_string")]
75    #[doc(alias = "get_attribute_byte_string")]
76    pub fn attribute_byte_string(&self, attribute: &str) -> Option<glib::GString> {
77        unsafe {
78            from_glib_none(ffi::g_file_info_get_attribute_byte_string(
79                self.to_glib_none().0,
80                attribute.to_glib_none().0,
81            ))
82        }
83    }
84
85    //#[doc(alias = "g_file_info_get_attribute_data")]
86    //#[doc(alias = "get_attribute_data")]
87    //pub fn attribute_data(&self, attribute: &str, value_pp: /*Unimplemented*/&mut Basic: Pointer) -> Option<(FileAttributeType, FileAttributeStatus)> {
88    //    unsafe { TODO: call ffi:g_file_info_get_attribute_data() }
89    //}
90
91    #[cfg(feature = "v2_78")]
92    #[cfg_attr(docsrs, doc(cfg(feature = "v2_78")))]
93    #[doc(alias = "g_file_info_get_attribute_file_path")]
94    #[doc(alias = "get_attribute_file_path")]
95    pub fn attribute_file_path(&self, attribute: &str) -> Option<std::path::PathBuf> {
96        unsafe {
97            from_glib_none(ffi::g_file_info_get_attribute_file_path(
98                self.to_glib_none().0,
99                attribute.to_glib_none().0,
100            ))
101        }
102    }
103
104    #[doc(alias = "g_file_info_get_attribute_int32")]
105    #[doc(alias = "get_attribute_int32")]
106    pub fn attribute_int32(&self, attribute: &str) -> i32 {
107        unsafe {
108            ffi::g_file_info_get_attribute_int32(self.to_glib_none().0, attribute.to_glib_none().0)
109        }
110    }
111
112    #[doc(alias = "g_file_info_get_attribute_int64")]
113    #[doc(alias = "get_attribute_int64")]
114    pub fn attribute_int64(&self, attribute: &str) -> i64 {
115        unsafe {
116            ffi::g_file_info_get_attribute_int64(self.to_glib_none().0, attribute.to_glib_none().0)
117        }
118    }
119
120    #[doc(alias = "g_file_info_get_attribute_object")]
121    #[doc(alias = "get_attribute_object")]
122    pub fn attribute_object(&self, attribute: &str) -> Option<glib::Object> {
123        unsafe {
124            from_glib_none(ffi::g_file_info_get_attribute_object(
125                self.to_glib_none().0,
126                attribute.to_glib_none().0,
127            ))
128        }
129    }
130
131    #[doc(alias = "g_file_info_get_attribute_status")]
132    #[doc(alias = "get_attribute_status")]
133    pub fn attribute_status(&self, attribute: &str) -> FileAttributeStatus {
134        unsafe {
135            from_glib(ffi::g_file_info_get_attribute_status(
136                self.to_glib_none().0,
137                attribute.to_glib_none().0,
138            ))
139        }
140    }
141
142    #[doc(alias = "g_file_info_get_attribute_string")]
143    #[doc(alias = "get_attribute_string")]
144    pub fn attribute_string(&self, attribute: &str) -> Option<glib::GString> {
145        unsafe {
146            from_glib_none(ffi::g_file_info_get_attribute_string(
147                self.to_glib_none().0,
148                attribute.to_glib_none().0,
149            ))
150        }
151    }
152
153    #[doc(alias = "g_file_info_get_attribute_type")]
154    #[doc(alias = "get_attribute_type")]
155    pub fn attribute_type(&self, attribute: &str) -> FileAttributeType {
156        unsafe {
157            from_glib(ffi::g_file_info_get_attribute_type(
158                self.to_glib_none().0,
159                attribute.to_glib_none().0,
160            ))
161        }
162    }
163
164    #[doc(alias = "g_file_info_get_attribute_uint32")]
165    #[doc(alias = "get_attribute_uint32")]
166    pub fn attribute_uint32(&self, attribute: &str) -> u32 {
167        unsafe {
168            ffi::g_file_info_get_attribute_uint32(self.to_glib_none().0, attribute.to_glib_none().0)
169        }
170    }
171
172    #[doc(alias = "g_file_info_get_attribute_uint64")]
173    #[doc(alias = "get_attribute_uint64")]
174    pub fn attribute_uint64(&self, attribute: &str) -> u64 {
175        unsafe {
176            ffi::g_file_info_get_attribute_uint64(self.to_glib_none().0, attribute.to_glib_none().0)
177        }
178    }
179
180    #[doc(alias = "g_file_info_get_content_type")]
181    #[doc(alias = "get_content_type")]
182    pub fn content_type(&self) -> Option<glib::GString> {
183        unsafe { from_glib_none(ffi::g_file_info_get_content_type(self.to_glib_none().0)) }
184    }
185
186    #[cfg(feature = "v2_70")]
187    #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
188    #[doc(alias = "g_file_info_get_creation_date_time")]
189    #[doc(alias = "get_creation_date_time")]
190    pub fn creation_date_time(&self) -> Option<glib::DateTime> {
191        unsafe {
192            from_glib_full(ffi::g_file_info_get_creation_date_time(
193                self.to_glib_none().0,
194            ))
195        }
196    }
197
198    #[doc(alias = "g_file_info_get_deletion_date")]
199    #[doc(alias = "get_deletion_date")]
200    pub fn deletion_date(&self) -> Option<glib::DateTime> {
201        unsafe { from_glib_full(ffi::g_file_info_get_deletion_date(self.to_glib_none().0)) }
202    }
203
204    #[doc(alias = "g_file_info_get_display_name")]
205    #[doc(alias = "get_display_name")]
206    pub fn display_name(&self) -> glib::GString {
207        unsafe { from_glib_none(ffi::g_file_info_get_display_name(self.to_glib_none().0)) }
208    }
209
210    #[doc(alias = "g_file_info_get_edit_name")]
211    #[doc(alias = "get_edit_name")]
212    pub fn edit_name(&self) -> glib::GString {
213        unsafe { from_glib_none(ffi::g_file_info_get_edit_name(self.to_glib_none().0)) }
214    }
215
216    #[doc(alias = "g_file_info_get_etag")]
217    #[doc(alias = "get_etag")]
218    pub fn etag(&self) -> Option<glib::GString> {
219        unsafe { from_glib_none(ffi::g_file_info_get_etag(self.to_glib_none().0)) }
220    }
221
222    #[doc(alias = "g_file_info_get_file_type")]
223    #[doc(alias = "get_file_type")]
224    pub fn file_type(&self) -> FileType {
225        unsafe { from_glib(ffi::g_file_info_get_file_type(self.to_glib_none().0)) }
226    }
227
228    #[doc(alias = "g_file_info_get_icon")]
229    #[doc(alias = "get_icon")]
230    pub fn icon(&self) -> Option<Icon> {
231        unsafe { from_glib_none(ffi::g_file_info_get_icon(self.to_glib_none().0)) }
232    }
233
234    #[doc(alias = "g_file_info_get_is_backup")]
235    #[doc(alias = "get_is_backup")]
236    pub fn is_backup(&self) -> bool {
237        unsafe { from_glib(ffi::g_file_info_get_is_backup(self.to_glib_none().0)) }
238    }
239
240    #[doc(alias = "g_file_info_get_is_hidden")]
241    #[doc(alias = "get_is_hidden")]
242    pub fn is_hidden(&self) -> bool {
243        unsafe { from_glib(ffi::g_file_info_get_is_hidden(self.to_glib_none().0)) }
244    }
245
246    #[doc(alias = "g_file_info_get_is_symlink")]
247    #[doc(alias = "get_is_symlink")]
248    pub fn is_symlink(&self) -> bool {
249        unsafe { from_glib(ffi::g_file_info_get_is_symlink(self.to_glib_none().0)) }
250    }
251
252    #[cfg(feature = "v2_62")]
253    #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
254    #[doc(alias = "g_file_info_get_modification_date_time")]
255    #[doc(alias = "get_modification_date_time")]
256    pub fn modification_date_time(&self) -> Option<glib::DateTime> {
257        unsafe {
258            from_glib_full(ffi::g_file_info_get_modification_date_time(
259                self.to_glib_none().0,
260            ))
261        }
262    }
263
264    #[doc(alias = "g_file_info_get_name")]
265    #[doc(alias = "get_name")]
266    pub fn name(&self) -> std::path::PathBuf {
267        unsafe { from_glib_none(ffi::g_file_info_get_name(self.to_glib_none().0)) }
268    }
269
270    #[doc(alias = "g_file_info_get_size")]
271    #[doc(alias = "get_size")]
272    pub fn size(&self) -> i64 {
273        unsafe { ffi::g_file_info_get_size(self.to_glib_none().0) }
274    }
275
276    #[doc(alias = "g_file_info_get_sort_order")]
277    #[doc(alias = "get_sort_order")]
278    pub fn sort_order(&self) -> i32 {
279        unsafe { ffi::g_file_info_get_sort_order(self.to_glib_none().0) }
280    }
281
282    #[doc(alias = "g_file_info_get_symbolic_icon")]
283    #[doc(alias = "get_symbolic_icon")]
284    pub fn symbolic_icon(&self) -> Option<Icon> {
285        unsafe { from_glib_none(ffi::g_file_info_get_symbolic_icon(self.to_glib_none().0)) }
286    }
287
288    #[doc(alias = "g_file_info_get_symlink_target")]
289    #[doc(alias = "get_symlink_target")]
290    pub fn symlink_target(&self) -> Option<std::path::PathBuf> {
291        unsafe { from_glib_none(ffi::g_file_info_get_symlink_target(self.to_glib_none().0)) }
292    }
293
294    #[doc(alias = "g_file_info_has_attribute")]
295    pub fn has_attribute(&self, attribute: &str) -> bool {
296        unsafe {
297            from_glib(ffi::g_file_info_has_attribute(
298                self.to_glib_none().0,
299                attribute.to_glib_none().0,
300            ))
301        }
302    }
303
304    #[doc(alias = "g_file_info_has_namespace")]
305    pub fn has_namespace(&self, name_space: &str) -> bool {
306        unsafe {
307            from_glib(ffi::g_file_info_has_namespace(
308                self.to_glib_none().0,
309                name_space.to_glib_none().0,
310            ))
311        }
312    }
313
314    #[doc(alias = "g_file_info_list_attributes")]
315    pub fn list_attributes(&self, name_space: Option<&str>) -> Vec<glib::GString> {
316        unsafe {
317            FromGlibPtrContainer::from_glib_full(ffi::g_file_info_list_attributes(
318                self.to_glib_none().0,
319                name_space.to_glib_none().0,
320            ))
321        }
322    }
323
324    #[doc(alias = "g_file_info_remove_attribute")]
325    pub fn remove_attribute(&self, attribute: &str) {
326        unsafe {
327            ffi::g_file_info_remove_attribute(self.to_glib_none().0, attribute.to_glib_none().0);
328        }
329    }
330
331    #[cfg(feature = "v2_70")]
332    #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
333    #[doc(alias = "g_file_info_set_access_date_time")]
334    pub fn set_access_date_time(&self, atime: &glib::DateTime) {
335        unsafe {
336            ffi::g_file_info_set_access_date_time(self.to_glib_none().0, atime.to_glib_none().0);
337        }
338    }
339
340    //#[doc(alias = "g_file_info_set_attribute")]
341    //pub fn set_attribute(&self, attribute: &str, type_: FileAttributeType, value_p: /*Unimplemented*/Basic: Pointer) {
342    //    unsafe { TODO: call ffi:g_file_info_set_attribute() }
343    //}
344
345    #[doc(alias = "g_file_info_set_attribute_boolean")]
346    pub fn set_attribute_boolean(&self, attribute: &str, attr_value: bool) {
347        unsafe {
348            ffi::g_file_info_set_attribute_boolean(
349                self.to_glib_none().0,
350                attribute.to_glib_none().0,
351                attr_value.into_glib(),
352            );
353        }
354    }
355
356    #[doc(alias = "g_file_info_set_attribute_byte_string")]
357    pub fn set_attribute_byte_string(&self, attribute: &str, attr_value: &str) {
358        unsafe {
359            ffi::g_file_info_set_attribute_byte_string(
360                self.to_glib_none().0,
361                attribute.to_glib_none().0,
362                attr_value.to_glib_none().0,
363            );
364        }
365    }
366
367    #[cfg(feature = "v2_78")]
368    #[cfg_attr(docsrs, doc(cfg(feature = "v2_78")))]
369    #[doc(alias = "g_file_info_set_attribute_file_path")]
370    pub fn set_attribute_file_path(
371        &self,
372        attribute: &str,
373        attr_value: impl AsRef<std::path::Path>,
374    ) {
375        unsafe {
376            ffi::g_file_info_set_attribute_file_path(
377                self.to_glib_none().0,
378                attribute.to_glib_none().0,
379                attr_value.as_ref().to_glib_none().0,
380            );
381        }
382    }
383
384    #[doc(alias = "g_file_info_set_attribute_int32")]
385    pub fn set_attribute_int32(&self, attribute: &str, attr_value: i32) {
386        unsafe {
387            ffi::g_file_info_set_attribute_int32(
388                self.to_glib_none().0,
389                attribute.to_glib_none().0,
390                attr_value,
391            );
392        }
393    }
394
395    #[doc(alias = "g_file_info_set_attribute_int64")]
396    pub fn set_attribute_int64(&self, attribute: &str, attr_value: i64) {
397        unsafe {
398            ffi::g_file_info_set_attribute_int64(
399                self.to_glib_none().0,
400                attribute.to_glib_none().0,
401                attr_value,
402            );
403        }
404    }
405
406    #[doc(alias = "g_file_info_set_attribute_mask")]
407    pub fn set_attribute_mask(&self, mask: &FileAttributeMatcher) {
408        unsafe {
409            ffi::g_file_info_set_attribute_mask(self.to_glib_none().0, mask.to_glib_none().0);
410        }
411    }
412
413    #[doc(alias = "g_file_info_set_attribute_object")]
414    pub fn set_attribute_object(&self, attribute: &str, attr_value: &impl IsA<glib::Object>) {
415        unsafe {
416            ffi::g_file_info_set_attribute_object(
417                self.to_glib_none().0,
418                attribute.to_glib_none().0,
419                attr_value.as_ref().to_glib_none().0,
420            );
421        }
422    }
423
424    #[doc(alias = "g_file_info_set_attribute_status")]
425    pub fn set_attribute_status(&self, attribute: &str, status: FileAttributeStatus) -> bool {
426        unsafe {
427            from_glib(ffi::g_file_info_set_attribute_status(
428                self.to_glib_none().0,
429                attribute.to_glib_none().0,
430                status.into_glib(),
431            ))
432        }
433    }
434
435    #[doc(alias = "g_file_info_set_attribute_string")]
436    pub fn set_attribute_string(&self, attribute: &str, attr_value: &str) {
437        unsafe {
438            ffi::g_file_info_set_attribute_string(
439                self.to_glib_none().0,
440                attribute.to_glib_none().0,
441                attr_value.to_glib_none().0,
442            );
443        }
444    }
445
446    #[doc(alias = "g_file_info_set_attribute_uint32")]
447    pub fn set_attribute_uint32(&self, attribute: &str, attr_value: u32) {
448        unsafe {
449            ffi::g_file_info_set_attribute_uint32(
450                self.to_glib_none().0,
451                attribute.to_glib_none().0,
452                attr_value,
453            );
454        }
455    }
456
457    #[doc(alias = "g_file_info_set_attribute_uint64")]
458    pub fn set_attribute_uint64(&self, attribute: &str, attr_value: u64) {
459        unsafe {
460            ffi::g_file_info_set_attribute_uint64(
461                self.to_glib_none().0,
462                attribute.to_glib_none().0,
463                attr_value,
464            );
465        }
466    }
467
468    #[doc(alias = "g_file_info_set_content_type")]
469    pub fn set_content_type(&self, content_type: &str) {
470        unsafe {
471            ffi::g_file_info_set_content_type(self.to_glib_none().0, content_type.to_glib_none().0);
472        }
473    }
474
475    #[cfg(feature = "v2_70")]
476    #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
477    #[doc(alias = "g_file_info_set_creation_date_time")]
478    pub fn set_creation_date_time(&self, creation_time: &glib::DateTime) {
479        unsafe {
480            ffi::g_file_info_set_creation_date_time(
481                self.to_glib_none().0,
482                creation_time.to_glib_none().0,
483            );
484        }
485    }
486
487    #[doc(alias = "g_file_info_set_display_name")]
488    pub fn set_display_name(&self, display_name: &str) {
489        unsafe {
490            ffi::g_file_info_set_display_name(self.to_glib_none().0, display_name.to_glib_none().0);
491        }
492    }
493
494    #[doc(alias = "g_file_info_set_edit_name")]
495    pub fn set_edit_name(&self, edit_name: &str) {
496        unsafe {
497            ffi::g_file_info_set_edit_name(self.to_glib_none().0, edit_name.to_glib_none().0);
498        }
499    }
500
501    #[doc(alias = "g_file_info_set_file_type")]
502    pub fn set_file_type(&self, type_: FileType) {
503        unsafe {
504            ffi::g_file_info_set_file_type(self.to_glib_none().0, type_.into_glib());
505        }
506    }
507
508    #[doc(alias = "g_file_info_set_icon")]
509    pub fn set_icon(&self, icon: &impl IsA<Icon>) {
510        unsafe {
511            ffi::g_file_info_set_icon(self.to_glib_none().0, icon.as_ref().to_glib_none().0);
512        }
513    }
514
515    #[doc(alias = "g_file_info_set_is_hidden")]
516    pub fn set_is_hidden(&self, is_hidden: bool) {
517        unsafe {
518            ffi::g_file_info_set_is_hidden(self.to_glib_none().0, is_hidden.into_glib());
519        }
520    }
521
522    #[doc(alias = "g_file_info_set_is_symlink")]
523    pub fn set_is_symlink(&self, is_symlink: bool) {
524        unsafe {
525            ffi::g_file_info_set_is_symlink(self.to_glib_none().0, is_symlink.into_glib());
526        }
527    }
528
529    #[cfg(feature = "v2_62")]
530    #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
531    #[doc(alias = "g_file_info_set_modification_date_time")]
532    pub fn set_modification_date_time(&self, mtime: &glib::DateTime) {
533        unsafe {
534            ffi::g_file_info_set_modification_date_time(
535                self.to_glib_none().0,
536                mtime.to_glib_none().0,
537            );
538        }
539    }
540
541    #[doc(alias = "g_file_info_set_name")]
542    pub fn set_name(&self, name: impl AsRef<std::path::Path>) {
543        unsafe {
544            ffi::g_file_info_set_name(self.to_glib_none().0, name.as_ref().to_glib_none().0);
545        }
546    }
547
548    #[doc(alias = "g_file_info_set_size")]
549    pub fn set_size(&self, size: i64) {
550        unsafe {
551            ffi::g_file_info_set_size(self.to_glib_none().0, size);
552        }
553    }
554
555    #[doc(alias = "g_file_info_set_sort_order")]
556    pub fn set_sort_order(&self, sort_order: i32) {
557        unsafe {
558            ffi::g_file_info_set_sort_order(self.to_glib_none().0, sort_order);
559        }
560    }
561
562    #[doc(alias = "g_file_info_set_symbolic_icon")]
563    pub fn set_symbolic_icon(&self, icon: &impl IsA<Icon>) {
564        unsafe {
565            ffi::g_file_info_set_symbolic_icon(
566                self.to_glib_none().0,
567                icon.as_ref().to_glib_none().0,
568            );
569        }
570    }
571
572    #[doc(alias = "g_file_info_set_symlink_target")]
573    pub fn set_symlink_target(&self, symlink_target: impl AsRef<std::path::Path>) {
574        unsafe {
575            ffi::g_file_info_set_symlink_target(
576                self.to_glib_none().0,
577                symlink_target.as_ref().to_glib_none().0,
578            );
579        }
580    }
581
582    #[doc(alias = "g_file_info_unset_attribute_mask")]
583    pub fn unset_attribute_mask(&self) {
584        unsafe {
585            ffi::g_file_info_unset_attribute_mask(self.to_glib_none().0);
586        }
587    }
588}
589
590impl Default for FileInfo {
591    fn default() -> Self {
592        Self::new()
593    }
594}