use sqlx::MySqlPool;
use context_async::{Context, Timer};
#[derive(Debug, Clone, sqlx::FromRow)]
pub struct User {
pub user_id: i64,
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let sql = "SELECT 1 as user_id";
let pool = MySqlPool::connect("mysql://aaa:apsdjfopasjdopfjas!!!!@localhost:3306/dev").await?;
let fut = sqlx::query_as(sql).fetch_optional(&pool);
let timer = Timer::todo();
let user: Option<User> = timer.handle(fut).await??;
let user = user.unwrap_or(User { user_id: 111 });
println!("{}", user.user_id);
Ok(())
}