gamedig/
lib.rs

1//! Game Server Query Library.
2//!
3//! # Usage example:
4//!
5//! ## For a specific game
6//! ```
7//! use gamedig::games::teamfortress2;
8//!
9//! let response = teamfortress2::query(&"127.0.0.1".parse().unwrap(), None); // None is the default port (which is 27015), could also be Some(27015)
10//! match response { // Result type, must check what it is...
11//!     Err(error) => println!("Couldn't query, error: {}", error),
12//!     Ok(r) => println!("{:#?}", r)
13//! }
14//! ```
15//!
16//! ## Using a game definition
17//! ```
18//! use gamedig::{GAMES, query};
19//!
20//! let game = GAMES.get("teamfortress2").unwrap(); // Get a game definition, the full list can be found in src/games/mod.rs
21//! let response = query(game, &"127.0.0.1".parse().unwrap(), None); // None will use the default port
22//! match response {
23//!     Err(error) => println!("Couldn't query, error: {}", error),
24//!     Ok(r) => println!("{:#?}", r.as_json()),
25//! }
26//! ```
27//!
28//! # Crate features:
29//! Enabled by default: `games`, `game_defs`, `services`
30//!
31//! `serde` - enables serde serialization/deserialization for many gamedig types
32//! using serde derive. <br>
33//! `games` - include games support. <br>
34//! `services` - include services support. <br>
35//! `game_defs` - include game definitions for programmatic access (enabled by
36//! default). <br>
37//! `clap` - enable clap derivations for gamedig settings types. <br>
38//! `tls` - enable TLS support for the HTTP client.
39
40pub mod errors;
41#[cfg(feature = "games")]
42pub mod games;
43pub mod protocols;
44#[cfg(feature = "services")]
45pub mod services;
46
47mod buffer;
48mod http;
49mod socket;
50mod utils;
51
52#[cfg(feature = "packet_capture")]
53pub mod capture;
54
55pub use errors::*;
56#[cfg(feature = "games")]
57pub use games::*;
58#[allow(unused_imports)]
59#[cfg(feature = "games")]
60pub use query::*;
61#[cfg(feature = "services")]
62pub use services::*;
63
64// Re-export types needed to call games::query::query in the root
65pub use protocols::types::{ExtraRequestSettings, TimeoutSettings};