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::object::IsA; 8 use glib::translate::*; 9 use std::fmt; 10 use std::ptr; 11 use Cancellable; 12 13 glib_wrapper! { 14 pub struct Seekable(Interface<gio_sys::GSeekable>); 15 16 match fn { 17 get_type => || gio_sys::g_seekable_get_type(), 18 } 19 } 20 21 pub const NONE_SEEKABLE: Option<&Seekable> = None; 22 23 pub trait SeekableExt: 'static { can_seek(&self) -> bool24 fn can_seek(&self) -> bool; 25 can_truncate(&self) -> bool26 fn can_truncate(&self) -> bool; 27 seek<P: IsA<Cancellable>>( &self, offset: i64, type_: glib::SeekType, cancellable: Option<&P>, ) -> Result<(), glib::Error>28 fn seek<P: IsA<Cancellable>>( 29 &self, 30 offset: i64, 31 type_: glib::SeekType, 32 cancellable: Option<&P>, 33 ) -> Result<(), glib::Error>; 34 tell(&self) -> i6435 fn tell(&self) -> i64; 36 truncate<P: IsA<Cancellable>>( &self, offset: i64, cancellable: Option<&P>, ) -> Result<(), glib::Error>37 fn truncate<P: IsA<Cancellable>>( 38 &self, 39 offset: i64, 40 cancellable: Option<&P>, 41 ) -> Result<(), glib::Error>; 42 } 43 44 impl<O: IsA<Seekable>> SeekableExt for O { can_seek(&self) -> bool45 fn can_seek(&self) -> bool { 46 unsafe { from_glib(gio_sys::g_seekable_can_seek(self.as_ref().to_glib_none().0)) } 47 } 48 can_truncate(&self) -> bool49 fn can_truncate(&self) -> bool { 50 unsafe { 51 from_glib(gio_sys::g_seekable_can_truncate( 52 self.as_ref().to_glib_none().0, 53 )) 54 } 55 } 56 seek<P: IsA<Cancellable>>( &self, offset: i64, type_: glib::SeekType, cancellable: Option<&P>, ) -> Result<(), glib::Error>57 fn seek<P: IsA<Cancellable>>( 58 &self, 59 offset: i64, 60 type_: glib::SeekType, 61 cancellable: Option<&P>, 62 ) -> Result<(), glib::Error> { 63 unsafe { 64 let mut error = ptr::null_mut(); 65 let _ = gio_sys::g_seekable_seek( 66 self.as_ref().to_glib_none().0, 67 offset, 68 type_.to_glib(), 69 cancellable.map(|p| p.as_ref()).to_glib_none().0, 70 &mut error, 71 ); 72 if error.is_null() { 73 Ok(()) 74 } else { 75 Err(from_glib_full(error)) 76 } 77 } 78 } 79 tell(&self) -> i6480 fn tell(&self) -> i64 { 81 unsafe { gio_sys::g_seekable_tell(self.as_ref().to_glib_none().0) } 82 } 83 truncate<P: IsA<Cancellable>>( &self, offset: i64, cancellable: Option<&P>, ) -> Result<(), glib::Error>84 fn truncate<P: IsA<Cancellable>>( 85 &self, 86 offset: i64, 87 cancellable: Option<&P>, 88 ) -> Result<(), glib::Error> { 89 unsafe { 90 let mut error = ptr::null_mut(); 91 let _ = gio_sys::g_seekable_truncate( 92 self.as_ref().to_glib_none().0, 93 offset, 94 cancellable.map(|p| p.as_ref()).to_glib_none().0, 95 &mut error, 96 ); 97 if error.is_null() { 98 Ok(()) 99 } else { 100 Err(from_glib_full(error)) 101 } 102 } 103 } 104 } 105 106 impl fmt::Display for Seekable { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result107 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 108 write!(f, "Seekable") 109 } 110 } 111