1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//! # `wow_world_messages`
//!
//! Implementation of the network protocol used between World of
//! Warcraft [game servers and clients](https://wowdev.wiki/World_Packet) for game versions 1.12.x (Vanilla), 2.4.3 (The Burning Crusade), and 3.3.5 (Wrath of the Lich King).
//! See the [WoWDev Login page](https://wowdev.wiki/Login) for details on getting to this message exchange.
//!
//! ## Usage
//!
//! Remove the expansions you don't need from the following command:
//!
//! ```bash
//! cargo add wow_world_messages --features 'vanilla tbc wrath sync tokio async-std flate2 chrono'
//! ```
//! The library is split into the top level modules:
//!
//! * [`vanilla`] for items valid for version 1.12.x.
//! * [`tbc`] for items valid for version 2.4.3.8606.
//! * [`wrath`] for items valid for version 3.3.5.12340.
//! * [`shared`] for items that are valid for multiple versions.
//!
//! These are also exported through the regular modules, so for example if you are working with vanilla it is only necessary to export items from [`vanilla`].
//!
//!
//! ## Features/Serde support
//!
//! This crate has the following features:
//!
//! * `vanilla`, for client version 1.12.x.
//! * `tbc`, for client version 2.4.3.8606.
//! * `wrath`, for client version 3.3.5.x.
//! * `encryption`, for functions that take automatically encrypt/decrypt the header.
//! * `chrono`, for support for adding a [`TryFrom`] `chrono::prelude::TimeZone` to [`DateTime`].
//! * `flate2`, for supporting compressed messages.
//! * `tokio`, for `tokio` async support.
//! * `async-std` for `async-std` async support.
//!
//!
//! ## Design Decisions
//!
//! Types have been named the ugly `CMD_SCREAMING_SNAKE_CASE` way because that's
//! what other (mostly C++) emulators call them. This makes it significantly easier
//! to search through other emulators or other documentation.
//!
//! ## Examples
//!
//! The [`wow_messages` repo](https://github.com/gtker/wow_messages/tree/main/examples) has a few example applications that showcase the library.
//!
//! ## Auto Generation
//!
//! This crate is partially auto generated by the `wowm` files in the
//! [`wow_messages` repository](https://github.com/gtker/wow_messages/).
//!
//! ## Other Work
//!
//! * [`vMaNGOS` (C++)](https://github.com/vmangos/core)
//! and `MaNGOS` derivatives in general have a relatively complete list of messages for popular versions,
//! but they are not available as a library.
pub
pub
pub
pub
// Panics in testcase prints
pub use private;
pub use Message;
pub use *;
pub use *;
pub use Guid;
/// Default port that is connected to whenever a port isn't specified.
pub const DEFAULT_PORT: u16 = 8085;