#![deny(unsafe_code)]
#![deny(missing_docs)]
#[macro_use]
extern crate log;
mod cursor;
mod server_info;
pub mod admin;
pub mod color;
pub mod filter;
pub mod game;
pub mod master;
pub mod server;
pub mod wrappers;
pub use cursor::Error as CursorError;
pub use server_info::ServerInfo;
use thiserror::Error;
use crate::filter::Version;
pub const PROTOCOL_VERSION: u8 = 49;
pub const CLIENT_VERSION: Version = Version::new(0, 20);
#[derive(Error, Debug, PartialEq, Eq)]
pub enum Error {
#[error("Invalid packet")]
InvalidPacket,
#[error("Invalid region")]
InvalidRegion,
#[error("Invalid client announce IP")]
InvalidClientAnnounceIp,
#[error("Invalid last server IP")]
InvalidQueryServersLast,
#[error("Invalid protocol version")]
InvalidProtocolVersion,
#[error("{0}")]
CursorError(#[from] CursorError),
#[error("Invalid value for server add key `{0}`: {1}")]
InvalidServerValue(&'static str, #[source] CursorError),
#[error("Invalid value for filter key `{0}`: {1}")]
InvalidFilterValue(&'static str, #[source] CursorError),
}