The encoding foundation that the rest of the workspace builds on:
minicbor for CBOR (re-exported) and a Rust port
of the Plutus Core flat format. Most users won't depend on this crate
directly — they'll get its types transitively through pallas-primitives,
pallas-traverse, pallas-txbuilder, etc.
use pallas_codec::minicbor;
#[derive(minicbor::Encode, minicbor::Decode)]
struct Pair(#[n(0)] u64, #[n(1)] String);
let bytes = minicbor::to_vec(Pair(1, "hi".into()))?;
let back: Pair = minicbor::decode(&bytes)?;minicbor— re-exported as-is; this is the workspace's single source of truth for CBOR.flat— Rust port of the Haskell flat reference implementation, used for Plutus Core scripts.utils— round-trip-friendly helper types (KeepRaw,KeyValuePairs,MaybeIndefArray,NonEmptySet,Nullable,PositiveCoin, …) reused by the higher-level era types.Fragmenttrait — blanket-implemented for any type that is bothminicbor::Encodeandminicbor::Decode; used as a bound where the workspace wants "any CBOR-roundtrippable type".codec_by_datatype!macro — derives a tag-free CBOR codec for enums whose variants are distinguished by their data-type rather than a discriminant.