use gloo_net::http::Request; use serde::Deserialize; #[derive(Deserialize)] enum AuthResponse { Ok(SessionId), PasswordReset(SessionId), } #[derive(Deserialize)] struct SessionId(String); enum ClientError { Unauthorized, } #[derive(Deserialize)] struct UserId(String); #[derive(Deserialize)] struct UserInfo { id: UserId, name: String, } trait Client { async fn auth(username: String, password: String) -> Result; async fn list_users(session_id: SessionId) -> Result, ClientError>; } impl Client for Connection { async fn auth(username: String, password: String) -> Result { let request = Request::post("http://localhost:8001") .body().unwrap(); } async fn list_users(session_id: SessionId) -> Result, ClientError> { } }