use crate::builtin::{Callable, CowStr};
use crate::classes::Object;
use crate::obj::Gd;
use crate::sys;
pub struct ConnectHandle {
receiver_object: Gd<Object>,
signal_name: CowStr,
callable: Callable,
}
impl ConnectHandle {
pub(super) fn new(
receiver_object: Gd<Object>,
signal_name: CowStr,
callable: Callable,
) -> Self {
Self {
receiver_object,
signal_name,
callable,
}
}
pub fn disconnect(mut self) {
sys::balanced_assert!(self.is_connected());
self.receiver_object
.disconnect(&*self.signal_name, &self.callable);
}
pub fn is_connected(&self) -> bool {
self.receiver_object.is_instance_valid()
&& self
.receiver_object
.is_connected(&*self.signal_name, &self.callable)
}
}