use updatehub_sdk::{listener, Result};
async fn download_callback(mut handler: listener::Handler) -> Result<()> {
println!("function called when starting the Download state; it will cancel the transition");
handler.cancel().await
}
#[tokio::main]
async fn main() -> Result<()> {
let mut listener = listener::StateChange::default();
listener.on_state(listener::State::Download, download_callback);
listener.on_state(listener::State::Install, |handler| async move {
println!("closure called when starting the Install state");
handler.proceed().await
});
listener.listen().await
}