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 5 use gio_sys; 6 use glib; 7 use glib::translate::*; 8 use glib::GString; 9 use std; 10 use std::mem; 11 use std::ptr; 12 use InputStream; 13 use ResourceLookupFlags; 14 15 glib_wrapper! { 16 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] 17 pub struct Resource(Shared<gio_sys::GResource>); 18 19 match fn { 20 ref => |ptr| gio_sys::g_resource_ref(ptr), 21 unref => |ptr| gio_sys::g_resource_unref(ptr), 22 get_type => || gio_sys::g_resource_get_type(), 23 } 24 } 25 26 impl Resource { enumerate_children( &self, path: &str, lookup_flags: ResourceLookupFlags, ) -> Result<Vec<GString>, glib::Error>27 pub fn enumerate_children( 28 &self, 29 path: &str, 30 lookup_flags: ResourceLookupFlags, 31 ) -> Result<Vec<GString>, glib::Error> { 32 unsafe { 33 let mut error = ptr::null_mut(); 34 let ret = gio_sys::g_resource_enumerate_children( 35 self.to_glib_none().0, 36 path.to_glib_none().0, 37 lookup_flags.to_glib(), 38 &mut error, 39 ); 40 if error.is_null() { 41 Ok(FromGlibPtrContainer::from_glib_full(ret)) 42 } else { 43 Err(from_glib_full(error)) 44 } 45 } 46 } 47 get_info( &self, path: &str, lookup_flags: ResourceLookupFlags, ) -> Result<(usize, u32), glib::Error>48 pub fn get_info( 49 &self, 50 path: &str, 51 lookup_flags: ResourceLookupFlags, 52 ) -> Result<(usize, u32), glib::Error> { 53 unsafe { 54 let mut size = mem::MaybeUninit::uninit(); 55 let mut flags = mem::MaybeUninit::uninit(); 56 let mut error = ptr::null_mut(); 57 let _ = gio_sys::g_resource_get_info( 58 self.to_glib_none().0, 59 path.to_glib_none().0, 60 lookup_flags.to_glib(), 61 size.as_mut_ptr(), 62 flags.as_mut_ptr(), 63 &mut error, 64 ); 65 let size = size.assume_init(); 66 let flags = flags.assume_init(); 67 if error.is_null() { 68 Ok((size, flags)) 69 } else { 70 Err(from_glib_full(error)) 71 } 72 } 73 } 74 lookup_data( &self, path: &str, lookup_flags: ResourceLookupFlags, ) -> Result<glib::Bytes, glib::Error>75 pub fn lookup_data( 76 &self, 77 path: &str, 78 lookup_flags: ResourceLookupFlags, 79 ) -> Result<glib::Bytes, glib::Error> { 80 unsafe { 81 let mut error = ptr::null_mut(); 82 let ret = gio_sys::g_resource_lookup_data( 83 self.to_glib_none().0, 84 path.to_glib_none().0, 85 lookup_flags.to_glib(), 86 &mut error, 87 ); 88 if error.is_null() { 89 Ok(from_glib_full(ret)) 90 } else { 91 Err(from_glib_full(error)) 92 } 93 } 94 } 95 open_stream( &self, path: &str, lookup_flags: ResourceLookupFlags, ) -> Result<InputStream, glib::Error>96 pub fn open_stream( 97 &self, 98 path: &str, 99 lookup_flags: ResourceLookupFlags, 100 ) -> Result<InputStream, glib::Error> { 101 unsafe { 102 let mut error = ptr::null_mut(); 103 let ret = gio_sys::g_resource_open_stream( 104 self.to_glib_none().0, 105 path.to_glib_none().0, 106 lookup_flags.to_glib(), 107 &mut error, 108 ); 109 if error.is_null() { 110 Ok(from_glib_full(ret)) 111 } else { 112 Err(from_glib_full(error)) 113 } 114 } 115 } 116 load<P: AsRef<std::path::Path>>(filename: P) -> Result<Resource, glib::Error>117 pub fn load<P: AsRef<std::path::Path>>(filename: P) -> Result<Resource, glib::Error> { 118 unsafe { 119 let mut error = ptr::null_mut(); 120 let ret = gio_sys::g_resource_load(filename.as_ref().to_glib_none().0, &mut error); 121 if error.is_null() { 122 Ok(from_glib_full(ret)) 123 } else { 124 Err(from_glib_full(error)) 125 } 126 } 127 } 128 } 129