// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use Error; use SePolicyRestoreconFlags; use ffi; use gio; use glib; use glib::StaticType; use glib::Value; use glib::object::IsA; use glib::translate::*; use glib_ffi; use gobject_ffi; use std::mem; use std::ptr; glib_wrapper! { pub struct SePolicy(Object); match fn { get_type => || ffi::ostree_sepolicy_get_type(), } } impl SePolicy { pub fn new<'a, P: IsA, Q: Into>>(path: &P, cancellable: Q) -> Result { let cancellable = cancellable.into(); let cancellable = cancellable.to_glib_none(); unsafe { let mut error = ptr::null_mut(); let ret = ffi::ostree_sepolicy_new(path.to_glib_none().0, cancellable.0, &mut error); if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) } } } #[cfg(any(feature = "v2017_4", feature = "dox"))] pub fn new_at<'a, P: Into>>(rootfs_dfd: i32, cancellable: P) -> Result { let cancellable = cancellable.into(); let cancellable = cancellable.to_glib_none(); unsafe { let mut error = ptr::null_mut(); let ret = ffi::ostree_sepolicy_new_at(rootfs_dfd, cancellable.0, &mut error); if error.is_null() { Ok(from_glib_full(ret)) } else { Err(from_glib_full(error)) } } } //pub fn fscreatecon_cleanup>>(unused: P) { // unsafe { TODO: call ffi::ostree_sepolicy_fscreatecon_cleanup() } //} } pub trait SePolicyExt { #[cfg(any(feature = "v2016_5", feature = "dox"))] fn get_csum(&self) -> Option; fn get_label<'a, P: Into>>(&self, relpath: &str, unix_mode: u32, cancellable: P) -> Result; fn get_name(&self) -> Option; fn get_path(&self) -> Option; fn restorecon<'a, 'b, P: Into>, Q: IsA, R: Into>>(&self, path: &str, info: P, target: &Q, flags: SePolicyRestoreconFlags, cancellable: R) -> Result; fn setfscreatecon(&self, path: &str, mode: u32) -> Result<(), Error>; fn get_property_rootfs_dfd(&self) -> i32; } impl + IsA> SePolicyExt for O { #[cfg(any(feature = "v2016_5", feature = "dox"))] fn get_csum(&self) -> Option { unsafe { from_glib_none(ffi::ostree_sepolicy_get_csum(self.to_glib_none().0)) } } fn get_label<'a, P: Into>>(&self, relpath: &str, unix_mode: u32, cancellable: P) -> Result { let cancellable = cancellable.into(); let cancellable = cancellable.to_glib_none(); unsafe { let mut out_label = ptr::null_mut(); let mut error = ptr::null_mut(); let _ = ffi::ostree_sepolicy_get_label(self.to_glib_none().0, relpath.to_glib_none().0, unix_mode, &mut out_label, cancellable.0, &mut error); if error.is_null() { Ok(from_glib_full(out_label)) } else { Err(from_glib_full(error)) } } } fn get_name(&self) -> Option { unsafe { from_glib_none(ffi::ostree_sepolicy_get_name(self.to_glib_none().0)) } } fn get_path(&self) -> Option { unsafe { from_glib_none(ffi::ostree_sepolicy_get_path(self.to_glib_none().0)) } } fn restorecon<'a, 'b, P: Into>, Q: IsA, R: Into>>(&self, path: &str, info: P, target: &Q, flags: SePolicyRestoreconFlags, cancellable: R) -> Result { let info = info.into(); let info = info.to_glib_none(); let cancellable = cancellable.into(); let cancellable = cancellable.to_glib_none(); unsafe { let mut out_new_label = ptr::null_mut(); let mut error = ptr::null_mut(); let _ = ffi::ostree_sepolicy_restorecon(self.to_glib_none().0, path.to_glib_none().0, info.0, target.to_glib_none().0, flags.to_glib(), &mut out_new_label, cancellable.0, &mut error); if error.is_null() { Ok(from_glib_full(out_new_label)) } else { Err(from_glib_full(error)) } } } fn setfscreatecon(&self, path: &str, mode: u32) -> Result<(), Error> { unsafe { let mut error = ptr::null_mut(); let _ = ffi::ostree_sepolicy_setfscreatecon(self.to_glib_none().0, path.to_glib_none().0, mode, &mut error); if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) } } } fn get_property_rootfs_dfd(&self) -> i32 { unsafe { let mut value = Value::from_type(::static_type()); gobject_ffi::g_object_get_property(self.to_glib_none().0, "rootfs-dfd".to_glib_none().0, value.to_glib_none_mut().0); value.get().unwrap() } } }