use crate::{ error::Error, wire::{Request, Response}, GameIf, }; use std::sync::Arc; /// Parse a request and call a game interface function for it pub async fn request(req: Request, game: Arc) -> Response { use Request::*; match req { Register(name, pw) => super::register(game.register(name, pw).await), Login(name, pw_hash) => super::login(game.login(name, pw_hash).await), Logout(user) => super::logout(game.logout(user).await), _ => super::invalid(), } }