diff options
Diffstat (limited to 'games/rstnode/rst-core/src/wire/proto')
-rw-r--r-- | games/rstnode/rst-core/src/wire/proto/mod.rs | 25 | ||||
-rw-r--r-- | games/rstnode/rst-core/src/wire/proto/request.rs | 41 | ||||
-rw-r--r-- | games/rstnode/rst-core/src/wire/proto/response.rs | 0 |
3 files changed, 66 insertions, 0 deletions
diff --git a/games/rstnode/rst-core/src/wire/proto/mod.rs b/games/rstnode/rst-core/src/wire/proto/mod.rs new file mode 100644 index 000000000000..07598bc85540 --- /dev/null +++ b/games/rstnode/rst-core/src/wire/proto/mod.rs @@ -0,0 +1,25 @@ +//! This module implements the client-server game protocol + +use super::{Request, Response}; + +pub enum NetErr { + Refused, + Dropped, + Timeout, + BadData, +} + +/// Use this function to send a request to a partical remote +/// +/// The function makes sure that you get a valid response back, but +/// does not yet ensure that this response is correct for the request +/// in question. +pub fn request_to(r: Request, remote: String) -> Result<Response, NetErr> { + todo!() +} + +/// Use this function to send a response to a client +pub fn response_to(r: Response, client: String) -> Result<(), NetErr> { + todo!() +} + diff --git a/games/rstnode/rst-core/src/wire/proto/request.rs b/games/rstnode/rst-core/src/wire/proto/request.rs new file mode 100644 index 000000000000..a95c240c4a14 --- /dev/null +++ b/games/rstnode/rst-core/src/wire/proto/request.rs @@ -0,0 +1,41 @@ +use crate::wire::{Action, LobbyId, MatchId, Request, User}; + +pub fn register(name: String, pw: String) -> Request { + Request::Register(name, pw) +} +c +pub fn login(name: String, pw: String) -> Request { + Request::Login(name, pw) +} + +pub fn logout(user: User) -> Request { + Request::Logout(user) +} + +pub fn anonymous(name: String) -> Request { + Request::Anonymous(name) +} + +pub fn join(user: User, lid: LobbyId) -> Request { + Request::Join(user, lid) +} + +pub fn leave(user: User, lid: LobbyId) -> Request { + Request::Leave(user, lid) +} + +pub fn ready(user: User, lid: LobbyId, ready: bool) -> Request { + Request::Ready(user, lid, ready) +} + +pub fn start_req(user: User, lid: LobbyId) -> Request { + Request::StartReq(user, lid) +} + +pub fn game_action(user: User, mid: MatchId, act: Action) -> Request { + Request::GameAction(user, mid, act) +} + +pub fn leave_game(user: User, mid: MatchId) -> Request { + Request::LeaveGame(user, mid) +} diff --git a/games/rstnode/rst-core/src/wire/proto/response.rs b/games/rstnode/rst-core/src/wire/proto/response.rs new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/games/rstnode/rst-core/src/wire/proto/response.rs |