use redis::IntoConnectionInfo; mod airdata; mod auth; mod error; use tdlib_autogen::ClientExt; //mod handlers; //mod lossy; mod router; use router::UpdateHandler; fn main() { let runtime = tokio::runtime::Builder::new_multi_thread() .worker_threads(5) .enable_io() .build() .unwrap(); runtime.block_on(async_main()).expect("Main errored"); } async fn async_main() -> error::AirceptionResult<()> { dotenv::dotenv().ok(); env_logger::init(); let data = airdata::AsyncData::new("redis://127.0.0.1/".into_connection_info()?).await?; #[allow(unused)] let tg = tdlib_rs::ClientBuilder::new(UpdateHandler(data)) .log_level(tdlib_rs::LogLevel::Warn) //.log_file("tg.log") .build(); std::thread::sleep(std::time::Duration::from_secs(1)); log::warn!("{:#?}", tg.get_me().await); log::warn!("{:#?}", tg.get_network_statistics(true).await); loop { let auth_state = tg.get_authorization_state().await; match auth_state { Ok(tdlib_autogen::AuthorizationState::AuthorizationStateReady) => break, _ => {} }; log::info!("{:#?}", auth_state); std::thread::sleep(std::time::Duration::from_secs(5)); } /* sleep forever */ std::thread::park(); Ok(()) }