Skip to main content

wowlab_parsers/parsers/parcel/
mod.rs

1//! LibParcel-1.0 wire-format codec; Rust counterpart of the pure-Lua `packages/LibParcel-1.0/`.
2//!
3//! ```
4//! use wowlab_parsers::parcel::{Codec, CodecConfig};
5//!
6//! let codec = Codec::new(CodecConfig {
7//!     prefix: "!DEMO:1!".into(),
8//!     content_types: vec!["json".into()],
9//!     default_content_type: None,
10//!     max_encoded_len: None,
11//!     max_decoded_body: None,
12//!     max_payload_bytes: None,
13//! }).expect("static config");
14//!
15//! let encoded = codec.encode(b"{\"hello\":1}", None).unwrap();
16//! let decoded = codec.decode(&encoded).unwrap();
17//! assert_eq!(decoded.payload, b"{\"hello\":1}");
18//! ```
19
20mod base64;
21mod codec;
22mod crc32;
23mod errors;
24mod payload;
25
26#[cfg(test)]
27mod tests;
28
29pub use codec::{
30    Codec, CodecConfig, DEFAULT_MAX_DECODED_BODY, DEFAULT_MAX_ENCODED_LEN,
31    DEFAULT_MAX_PAYLOAD_BYTES, DecodeMeta, DecodedParcel,
32};
33pub use errors::{CodecBuildError, ParcelError};
34pub use payload::{
35    DecodeExportError, EncodeExportError, ExportKind, RESULT_EXPORT_CONTENT_TYPE,
36    RESULT_EXPORT_PREFIX, RESULT_EXPORT_SCHEMA_VERSION, ResultExport, ResultItem,
37    decode_result_export, encode_result_export, result_export_codec,
38};