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};