implement cancel action

This commit is contained in:
yggverse 2024-11-30 17:26:03 +02:00
parent 6ee60e9d9d
commit cdf35db0d6
2 changed files with 12 additions and 1 deletions

View file

@ -2,7 +2,7 @@ pub mod error;
pub use error::Error;
use gio::{
prelude::{IOStreamExt, TlsConnectionExt},
prelude::{CancellableExt, IOStreamExt, TlsConnectionExt},
Cancellable, IOStream, NetworkAddress, SocketConnection, TlsCertificate, TlsClientConnection,
};
use glib::object::{Cast, IsA};
@ -50,6 +50,15 @@ impl Connection {
// Actions
/// Apply `cancel` action to `Self` [Cancellable](https://docs.gtk.org/gio/method.Cancellable.cancel.html)
/// * return `Error` on `Cancellable` not found
pub fn cancel(&self) -> Result<(), Error> {
match self.cancellable {
Some(ref cancellable) => Ok(cancellable.cancel()),
None => Err(Error::Cancel),
}
}
/// Close owned [SocketConnection](https://docs.gtk.org/gio/class.SocketConnection.html)
pub fn close(&self) -> Result<(), Error> {
match self.socket_connection.close(self.cancellable.as_ref()) {