diff --git a/rust-bindings/rust/conf/ostree.toml b/rust-bindings/rust/conf/ostree.toml index f677e673..51189ebb 100644 --- a/rust-bindings/rust/conf/ostree.toml +++ b/rust-bindings/rust/conf/ostree.toml @@ -89,6 +89,7 @@ manual = [ "OSTree.KernelArgs", "OSTree.RepoCheckoutAtOptions", "OSTree.RepoCheckoutFilter", + "OSTree.RepoTransactionStats", "OSTree.SysrootWriteDeploymentsOpts", "OSTree.SysrootDeployTreeOpts", ] @@ -187,12 +188,6 @@ status = "generate" name = "dup" ignore = true -[[object]] -name = "OSTree.RepoTransactionStats" -status = "generate" -init_function_expression = "|_ptr| ()" -clear_function_expression = "|_ptr| ()" - [[object]] name = "OSTree.SePolicy" status = "generate" diff --git a/rust-bindings/rust/src/auto/mod.rs b/rust-bindings/rust/src/auto/mod.rs index 128b8b0b..09eb3089 100644 --- a/rust-bindings/rust/src/auto/mod.rs +++ b/rust-bindings/rust/src/auto/mod.rs @@ -108,9 +108,6 @@ mod repo_finder_result; #[cfg(any(feature = "v2018_6", feature = "dox"))] pub use self::repo_finder_result::RepoFinderResult; -mod repo_transaction_stats; -pub use self::repo_transaction_stats::RepoTransactionStats; - mod enums; pub use self::enums::DeploymentUnlockedState; pub use self::enums::GpgSignatureAttr; diff --git a/rust-bindings/rust/src/auto/repo_transaction_stats.rs b/rust-bindings/rust/src/auto/repo_transaction_stats.rs deleted file mode 100644 index ed91ba69..00000000 --- a/rust-bindings/rust/src/auto/repo_transaction_stats.rs +++ /dev/null @@ -1,19 +0,0 @@ -// 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 gobject_sys; -use ostree_sys; - -glib_wrapper! { - #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] - pub struct RepoTransactionStats(Boxed); - - match fn { - copy => |ptr| gobject_sys::g_boxed_copy(ostree_sys::ostree_repo_transaction_stats_get_type(), ptr as *mut _) as *mut ostree_sys::OstreeRepoTransactionStats, - free => |ptr| gobject_sys::g_boxed_free(ostree_sys::ostree_repo_transaction_stats_get_type(), ptr as *mut _), - init => |_ptr| (), - clear => |_ptr| (), - get_type => || ostree_sys::ostree_repo_transaction_stats_get_type(), - } -} diff --git a/rust-bindings/rust/src/lib.rs b/rust-bindings/rust/src/lib.rs index 78352506..d17bddd1 100644 --- a/rust-bindings/rust/src/lib.rs +++ b/rust-bindings/rust/src/lib.rs @@ -50,6 +50,8 @@ pub use crate::repo::*; mod repo_checkout_at_options; #[cfg(any(feature = "v2016_8", feature = "dox"))] pub use crate::repo_checkout_at_options::*; +mod repo_transaction_stats; +pub use repo_transaction_stats::RepoTransactionStats; mod se_policy; pub use crate::se_policy::*; #[cfg(any(feature = "v2020_1", feature = "dox"))] diff --git a/rust-bindings/rust/src/repo_transaction_stats.rs b/rust-bindings/rust/src/repo_transaction_stats.rs new file mode 100644 index 00000000..578b429b --- /dev/null +++ b/rust-bindings/rust/src/repo_transaction_stats.rs @@ -0,0 +1,48 @@ +use gobject_sys; +use ostree_sys; + +glib_wrapper! { + /// A list of statistics for each transaction that may be interesting for reporting purposes. + #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] + pub struct RepoTransactionStats(Boxed); + + match fn { + copy => |ptr| gobject_sys::g_boxed_copy(ostree_sys::ostree_repo_transaction_stats_get_type(), ptr as *mut _) as *mut ostree_sys::OstreeRepoTransactionStats, + free => |ptr| gobject_sys::g_boxed_free(ostree_sys::ostree_repo_transaction_stats_get_type(), ptr as *mut _), + init => |_ptr| (), + clear => |_ptr| (), + get_type => || ostree_sys::ostree_repo_transaction_stats_get_type(), + } +} + +impl RepoTransactionStats { + /// The total number of metadata objects in the repository after this transaction has completed. + pub fn get_metadata_objects_total(&self) -> usize { + self.0.metadata_objects_total as usize + } + + /// The number of metadata objects that were written to the repository in this transaction. + pub fn get_metadata_objects_written(&self) -> usize { + self.0.metadata_objects_written as usize + } + + /// The total number of content objects in the repository after this transaction has completed. + pub fn get_content_objects_total(&self) -> usize { + self.0.content_objects_total as usize + } + + /// The number of content objects that were written to the repository in this transaction. + pub fn get_content_objects_written(&self) -> usize { + self.0.content_objects_written as usize + } + + /// The amount of data added to the repository, in bytes, counting only content objects. + pub fn get_content_bytes_written(&self) -> u64 { + self.0.content_bytes_written + } + + /// The amount of cache hits during this transaction. + pub fn get_devino_cache_hits(&self) -> usize { + self.0.devino_cache_hits as usize + } +}