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