naptime 0.1.0

Detect sleep and wake notifications from the OS.
Documentation
#![forbid(unsafe_code)]
#![warn(clippy::all)]

use naptime::{EventHandler, Naptime};
use tracing::info;

struct Printer {}
impl EventHandler for Printer {
  fn sleep_query(&mut self) -> naptime::SleepQueryResponse {
    info!("sleep_query");
    naptime::SleepQueryResponse::Allow
  }

  fn sleep_failed(&mut self) {
    info!("sleep_failed");
  }

  fn sleep(&mut self) {
    info!("sleep");
  }

  fn wake(&mut self) {
    info!("wake");
  }
}

#[tokio::main]
async fn main() {
  tracing_subscriber::fmt().init();
  info!("hello!");

  let printer = Printer {};
  let naptime = Naptime::new(printer);

  info!("waiting forever. good luck. Ctrl-C to kill");
  tokio::signal::ctrl_c().await.unwrap();
  info!("dropping naptime");
  drop(naptime);
}