Skip to main content

Module parcel

Module parcel 

Source
Expand description

LibParcel-1.0 wire-format codec; Rust counterpart of the pure-Lua packages/LibParcel-1.0/.

use wowlab_parsers::parcel::{Codec, CodecConfig};

let codec = Codec::new(CodecConfig {
    prefix: "!DEMO:1!".into(),
    content_types: vec!["json".into()],
    default_content_type: None,
    max_encoded_len: None,
    max_decoded_body: None,
    max_payload_bytes: None,
}).expect("static config");

let encoded = codec.encode(b"{\"hello\":1}", None).unwrap();
let decoded = codec.decode(&encoded).unwrap();
assert_eq!(decoded.payload, b"{\"hello\":1}");

Re-exportsยง

pub use codec::Codec;
pub use codec::CodecConfig;
pub use codec::DEFAULT_MAX_DECODED_BODY;
pub use codec::DEFAULT_MAX_ENCODED_LEN;
pub use codec::DEFAULT_MAX_PAYLOAD_BYTES;
pub use codec::DecodeMeta;
pub use codec::DecodedParcel;
pub use errors::CodecBuildError;
pub use errors::ParcelError;
pub use payload::DecodeExportError;
pub use payload::EncodeExportError;
pub use payload::ExportKind;
pub use payload::RESULT_EXPORT_CONTENT_TYPE;
pub use payload::RESULT_EXPORT_PREFIX;
pub use payload::RESULT_EXPORT_SCHEMA_VERSION;
pub use payload::ResultExport;
pub use payload::ResultItem;
pub use payload::decode_result_export;
pub use payload::encode_result_export;
pub use payload::result_export_codec;

Modulesยง

base64 ๐Ÿ”’
Strict standard-base64 helpers (SPEC ยง1.3: canonical alphabet, required padding, no trailing bits).
codec ๐Ÿ”’
LibParcel-1.0 envelope codec; raw DEFLATE body, CRC-32 of the raw payload.
crc32 ๐Ÿ”’
CRC-32 helper (IEEE 802.3 / zlib polynomial 0xEDB88320, per SPEC ยง3).
errors ๐Ÿ”’
Canonical error codes matching SPEC.md ยง7 byte-for-byte.
payload ๐Ÿ”’
JSON payload schema for shipping Best-in-Bag and Droptimizer results to a WoW addon.