1#![deny(unsafe_code)]
5#![deny(missing_docs)]
6
7#[macro_use]
10extern crate log;
11
12mod cursor;
13mod server_info;
14
15pub mod admin;
16pub mod color;
17pub mod filter;
18pub mod game;
19pub mod master;
20pub mod server;
21pub mod wrappers;
22
23pub use cursor::Error as CursorError;
24pub use server_info::ServerInfo;
25
26use thiserror::Error;
27
28use crate::filter::Version;
29
30pub const PROTOCOL_VERSION: u8 = 49;
32pub const CLIENT_VERSION: Version = Version::new(0, 20);
34
35#[derive(Error, Debug, PartialEq, Eq)]
37pub enum Error {
38 #[error("Invalid packet")]
40 InvalidPacket,
41 #[error("Invalid region")]
43 InvalidRegion,
44 #[error("Invalid client announce IP")]
46 InvalidClientAnnounceIp,
47 #[error("Invalid last server IP")]
49 InvalidQueryServersLast,
50 #[error("Invalid protocol version")]
52 InvalidProtocolVersion,
53 #[error("{0}")]
55 CursorError(#[from] CursorError),
56 #[error("Invalid value for server add key `{0}`: {1}")]
58 InvalidServerValue(&'static str, #[source] CursorError),
59 #[error("Invalid value for filter key `{0}`: {1}")]
61 InvalidFilterValue(&'static str, #[source] CursorError),
62}