use std::sync::Arc;
use tokio::signal;
use tokio::sync::Notify;
#[tokio::main]
async fn main() -> rifts::Result<()> {
tracing_subscriber::fmt()
.with_env_filter("rifts=debug")
.init();
let shutdown = Arc::new(Notify::new());
let server = rifts::RiftServer::builder().websocket_transport().build()?;
let addr = "127.0.0.1:9000".parse().unwrap();
let srv_hdl = tokio::spawn({
let shutdown = shutdown.clone();
async move { server.run(addr, shutdown).await }
});
signal::ctrl_c().await.ok();
shutdown.notify_one();
srv_hdl.await.unwrap()?;
Ok(())
}