zebra_chain/
serialization.rs

1//! Consensus-critical serialization.
2//!
3//! This module contains four traits: `ZcashSerialize` and `ZcashDeserialize`,
4//! analogs of the Serde `Serialize` and `Deserialize` traits but intended for
5//! consensus-critical Zcash serialization formats, and `WriteZcashExt` and
6//! `ReadZcashExt`, extension traits for `io::Read` and `io::Write` with utility functions
7//! for reading and writing data (e.g., the Bitcoin variable-integer format).
8
9mod compact_size;
10mod constraint;
11mod date_time;
12mod error;
13mod read_zcash;
14mod write_zcash;
15mod zcash_deserialize;
16mod zcash_serialize;
17
18pub mod display_order;
19pub mod sha256d;
20
21pub(crate) mod serde_helpers;
22
23#[cfg(any(test, feature = "proptest-impl"))]
24pub mod arbitrary;
25
26#[cfg(test)]
27pub mod tests;
28
29pub use compact_size::{CompactSize64, CompactSizeMessage};
30pub use constraint::AtLeastOne;
31pub use date_time::{DateTime32, Duration32};
32pub use display_order::BytesInDisplayOrder;
33pub use error::SerializationError;
34pub use read_zcash::ReadZcashExt;
35pub use write_zcash::WriteZcashExt;
36pub use zcash_deserialize::{
37    zcash_deserialize_bytes_external_count, zcash_deserialize_external_count,
38    zcash_deserialize_string_external_count, TrustedPreallocate, ZcashDeserialize,
39    ZcashDeserializeInto,
40};
41pub use zcash_serialize::{
42    zcash_serialize_bytes, zcash_serialize_bytes_external_count, zcash_serialize_empty_list,
43    zcash_serialize_external_count, FakeWriter, ZcashSerialize, MAX_PROTOCOL_MESSAGE_LEN,
44};