ExtraChat/server/src/handlers/version.rs

27 lines
532 B
Rust
Raw Normal View History

2022-07-08 02:58:32 +00:00
use anyhow::Result;
use crate::{
ErrorResponse,
types::protocol::{
VersionRequest,
VersionResponse,
},
util::send,
WsStream,
};
2022-07-10 00:53:15 +00:00
const VERSION: u32 = 1;
2022-07-08 02:58:32 +00:00
pub async fn version(conn: &mut WsStream, number: u32, req: VersionRequest) -> Result<bool> {
2022-07-10 00:53:15 +00:00
if req.version != VERSION {
2022-07-08 02:58:32 +00:00
send(conn, number, ErrorResponse::new(None, "unsupported version")).await?;
return Ok(false);
}
send(conn, number, VersionResponse {
2022-07-10 00:53:15 +00:00
version: VERSION,
2022-07-08 02:58:32 +00:00
}).await?;
Ok(true)
}