1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// devela::data::codec
//
// public
// crypto
//!
//! ## Determinism & Side Effects
//! Encoding and decoding should be **deterministic**.
//! Implementations should avoid introducing side effects where possible.
//!
//! **Potential sources of non-determinism:**
//! - Writing to or reading from external files or devices.
//! - Using randomness during encoding or decoding.
//! - Modifying or depending on global state.
//!
//! ## Example
//! ```
//! use devela::{Encodable, CodecLenValue, IoWrite};
//!
//! # #[cfg(feature = "alloc")] { use devela::Vec;
//! let mut buf = Vec::new();
//! CodecLenValue::<_, u8>::new("hello").encode(&mut buf).unwrap();
//! assert_eq!(&buf, b"\x05hello");
//! # }
//! ```
//
// encoders and decoders.
// radix-based encodings (Base32, Base64, Base58…).
// mod compress; // WIP compression algorithms
// pub mod crypto; // cryptography
// mod _wip_crc; // WIP
// pub mod frame; // WIP
// hashing algorithms (Fnv, Fx, MD5).
// mod hex; // WIP Hexadecimal literals and conversions.
// mod rle; // WIP Run-length encoding and similar techniques.
// WIP structured serialization/deserialization.
// pub mod schema; // WIP
// #[cfg(feature = "alloc")]
// mod lempel_ziv; // WIP
cratestructural_mods!