//! Rust-side MessagePack serialization plumbing.
//!
//! The current format is **ASAPv1**: each sketch serializes into one
//! self-delimiting envelope — a sketch-agnostic frame (magic, version,
//! `kind_id`, two length prefixes) around a metadata map and a payload
//! array. The framing lives in `envelope.rs`; the `kind_id`, metadata and
//! payload are per-sketch, in the `wire.rs` beside each sketch under
//! [`crate::sketches`] and [`crate::sketch_framework`]. `sketchlib-go`
//! mirrors ASAPv1, `asapv1_golden/` guards against drift, and
//! `docs/asapv1_wire_format.md` is the spec.
//!
//! Two sub-modules are the older path, being retired:
//!
//! - [`portable`] — pre-envelope types with their own Go goldens.
//! - [`native`] — thin shims over the sketches' `serialize_to_bytes` /
//! `deserialize_from_bytes`, each a pass-through to ASAPv1.
//!
//! [`MessagePackCodec`] and [`Error`] are the contract both share.
pub
pub
pub use MessagePackCodec;
pub use Error;