From f2f7b6ffec7bf657966353c850d25c6ab218ff7c Mon Sep 17 00:00:00 2001 From: Vika Date: Tue, 22 Oct 2024 21:52:10 +0300 Subject: vendor libsecret The libsecret-rs crate is unmaintained, so I'm vendoring it for now. Bumping the glib version turned out to be enough. The exact process I used was: 1. Cloning the repository 2. Making changes 3. `cargo build` to ensure it works 4. `cargo package --no-verify` (b/c it tries to build all crates separately instead of the entire workspace as a whole) 5. `mkdir libsecret/sys -p` 6. `tar --strip-components 1 -C libsecret -xvf ../libsecret-rs/target/package/libsecret-0.6.0.crate` 7. `tar --strip-components 1 -C libsecret/sys -xvf ../libsecret-rs/target/package/libsecret-sys-0.6.0.crate` Then `Cargo.toml` is modified to ensure the libsecret and its `-sys` crate build out of my vendored sources. In the future, if I gain maintainership of the `libsecret` crate, I could just revert this commit to make it point back to the upstream. --- libsecret/src/auto/prompt.rs | 76 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 libsecret/src/auto/prompt.rs (limited to 'libsecret/src/auto/prompt.rs') diff --git a/libsecret/src/auto/prompt.rs b/libsecret/src/auto/prompt.rs new file mode 100644 index 0000000..245f68a --- /dev/null +++ b/libsecret/src/auto/prompt.rs @@ -0,0 +1,76 @@ +// This file was generated by gir (https://github.com/gtk-rs/gir) +// from +// from gir-files (https://github.com/gtk-rs/gir-files.git) +// DO NOT EDIT + +use glib::{prelude::*, translate::*}; + +glib::wrapper! { + #[doc(alias = "SecretPrompt")] + pub struct Prompt(Object) @extends gio::DBusProxy, @implements gio::DBusInterface, gio::Initable; + + match fn { + type_ => || ffi::secret_prompt_get_type(), + } +} + +impl Prompt { + pub const NONE: Option<&'static Prompt> = None; +} + +mod sealed { + pub trait Sealed {} + impl> Sealed for T {} +} + +pub trait PromptExt: IsA + sealed::Sealed + 'static { + #[doc(alias = "secret_prompt_perform_sync")] + fn perform_sync( + &self, + window_id: Option<&str>, + cancellable: Option<&impl IsA>, + return_type: &glib::VariantTy, + ) -> Result { + unsafe { + let mut error = std::ptr::null_mut(); + let ret = ffi::secret_prompt_perform_sync( + self.as_ref().to_glib_none().0, + window_id.to_glib_none().0, + cancellable.map(|p| p.as_ref()).to_glib_none().0, + return_type.to_glib_none().0, + &mut error, + ); + if error.is_null() { + Ok(from_glib_full(ret)) + } else { + Err(from_glib_full(error)) + } + } + } + + #[doc(alias = "secret_prompt_run")] + fn run( + &self, + window_id: Option<&str>, + cancellable: Option<&impl IsA>, + return_type: &glib::VariantTy, + ) -> Result { + unsafe { + let mut error = std::ptr::null_mut(); + let ret = ffi::secret_prompt_run( + self.as_ref().to_glib_none().0, + window_id.to_glib_none().0, + cancellable.map(|p| p.as_ref()).to_glib_none().0, + return_type.to_glib_none().0, + &mut error, + ); + if error.is_null() { + Ok(from_glib_full(ret)) + } else { + Err(from_glib_full(error)) + } + } + } +} + +impl> PromptExt for O {} -- cgit 1.4.1