///|
pub(all) struct LifecycleHooks {
on_start : (String, String) -> Unit
on_stop : () -> Unit
}
///|
let lifecycle_hooks : Ref[LifecycleHooks?] = Ref(None)
///|
pub fn set_lifecycle_hooks(hooks : LifecycleHooks) -> Unit {
lifecycle_hooks.val = Some(hooks)
}
///|
pub fn reset_lifecycle_hooks() -> Unit {
lifecycle_hooks.val = None
}
///|
#warnings("-unused_value")
fn invoke_on_start(canvas : String, title : String) -> Unit {
match lifecycle_hooks.val {
Some(hooks) => (hooks.on_start)(canvas, title)
None => ()
}
}
///|
#warnings("-unused_value")
fn invoke_on_stop() -> Unit {
match lifecycle_hooks.val {
Some(hooks) => (hooks.on_stop)()
None => ()
}
}