use super::Executable;
pub trait Delegate = Fn();
pub struct Lambda<D>
where
D: Delegate,
{
delegate: D,
}
impl<D> Lambda<D>
where
D: Delegate,
{
pub fn new(delegate: D) -> Self
{
Self { delegate }
}
}
impl<D> Executable for Lambda<D>
where
D: Delegate,
{
fn execute(&self)
{
(self.delegate)();
}
}