//! Decode-and-verify abstraction for byte-canonical transport artifacts.
//!
//! Types whose canonical form is a self-contained byte string (signed
//! blocks, vote certificates, vote staples) implement [`Verifiable`] to
//! offer a single decode entry point. The associated [`Verifiable::Context`]
//! carries any extra inputs verification needs (e.g. a validation
//! configuration and a moment for time-bounded checks); types whose
//! verification needs nothing use `Context = ()`.
use Vec;
/// Reconstruct `Self` from its canonical transport bytes, verifying any
/// invariants required to trust the result.