use gtk::{gio::Cancellable, prelude::CancellableExt};
use std::cell::RefCell;
pub struct Client {
pub cancellable: RefCell<Cancellable>,
pub gemini: gemini::Client,
}
impl Client {
pub fn new() -> Self {
Self {
cancellable: RefCell::new(Cancellable::new()),
gemini: gemini::Client::new(),
}
}
pub fn cancellable(&self) -> Cancellable {
let cancellable = Cancellable::new();
let previous = self.cancellable.replace(cancellable.clone());
if !previous.is_cancelled() {
previous.cancel();
}
cancellable
}
}