dstar_gateway_core/codec/dplus/
mod.rs

1//! `DPlus` (REF reflectors, UDP port 20001) wire codec.
2//!
3//! See [`packet`] for the canonical packet enums. [`encode`] and
4//! [`decode`] are the wire-format (en/de)coders, [`auth`] parses the
5//! TCP host list response from `auth.dstargateway.org`.
6//!
7//! Reference implementations:
8//! - `ircDDBGateway/Common/DPlusProtocolHandler.cpp` (parser dispatch)
9//! - `ircDDBGateway/Common/ConnectData.cpp` (connect packet codec)
10//! - `ircDDBGateway/Common/DPlusAuthenticator.cpp` (TCP auth)
11//! - `ircDDBGateway/Common/HeaderData.cpp` (voice header)
12//! - `ircDDBGateway/Common/AMBEData.cpp` (voice data + EOT)
13//! - `xlxd/src/cdplusprotocol.cpp` (mirror reference)
14
15pub mod auth;
16pub mod consts;
17pub mod decode;
18pub mod encode;
19pub mod error;
20pub mod packet;
21
22pub use auth::{DPlusHost, HostList, parse_auth_response};
23pub use decode::{decode_client_to_server, decode_server_to_client};
24pub use encode::{
25    encode_link1, encode_link1_ack, encode_link2, encode_link2_reply, encode_poll,
26    encode_poll_echo, encode_unlink, encode_unlink_ack, encode_voice_data, encode_voice_eot,
27    encode_voice_header,
28};
29pub use error::DPlusError;
30pub use packet::{ClientPacket, Link2Result, ServerPacket};