From 62f8310dea58fb6efaa87aaf21e1c76aefa3a28b Mon Sep 17 00:00:00 2001 From: Felix Krull Date: Sat, 29 Sep 2018 18:21:36 +0200 Subject: [PATCH] Add additional 'new' method to Repo --- rust-bindings/rust/libostree/src/lib.rs | 8 ++++++-- rust-bindings/rust/libostree/src/prelude.rs | 1 - rust-bindings/rust/libostree/src/repo.rs | 15 +++++++++++++++ rust-bindings/rust/sample/src/main.rs | 7 +------ 4 files changed, 22 insertions(+), 9 deletions(-) delete mode 100644 rust-bindings/rust/libostree/src/prelude.rs create mode 100644 rust-bindings/rust/libostree/src/repo.rs diff --git a/rust-bindings/rust/libostree/src/lib.rs b/rust-bindings/rust/libostree/src/lib.rs index 2e7accdc..f473ca80 100644 --- a/rust-bindings/rust/libostree/src/lib.rs +++ b/rust-bindings/rust/libostree/src/lib.rs @@ -13,6 +13,10 @@ use glib::Error; mod auto; pub use auto::*; +mod repo; + // public modules -pub mod prelude; -pub use prelude::*; +pub mod prelude { + pub use auto::traits::*; + pub use repo::RepoExtManual; +} diff --git a/rust-bindings/rust/libostree/src/prelude.rs b/rust-bindings/rust/libostree/src/prelude.rs deleted file mode 100644 index a289db03..00000000 --- a/rust-bindings/rust/libostree/src/prelude.rs +++ /dev/null @@ -1 +0,0 @@ -pub use traits::*; diff --git a/rust-bindings/rust/libostree/src/repo.rs b/rust-bindings/rust/libostree/src/repo.rs new file mode 100644 index 00000000..add41b23 --- /dev/null +++ b/rust-bindings/rust/libostree/src/repo.rs @@ -0,0 +1,15 @@ +use auto::Repo; + +use gio; +use glib; +use glib::IsA; + +pub trait RepoExtManual { + fn new_for_str(path: &str) -> Repo; +} + +impl + IsA + Clone + 'static> RepoExtManual for O { + fn new_for_str(path: &str) -> Repo { + Repo::new(&gio::File::new_for_path(path)) + } +} diff --git a/rust-bindings/rust/sample/src/main.rs b/rust-bindings/rust/sample/src/main.rs index 73443e8d..6735fc01 100644 --- a/rust-bindings/rust/sample/src/main.rs +++ b/rust-bindings/rust/sample/src/main.rs @@ -1,16 +1,11 @@ extern crate gio; extern crate libostree; -use gio::prelude::*; use libostree::prelude::*; fn main() { - let repo = libostree::Repo::new(&gio::File::new_for_path("test-repo")); + let repo = libostree::Repo::new_for_str("test-repo"); let result = repo.create(libostree::RepoMode::Archive, Option::None); - result.expect("we did not expect this to fail :O"); - - let path = repo.get_path(); - println!("path: {}", path.unwrap().get_path().unwrap().to_str().unwrap()); }