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
68
69
//! The shared vocabulary of the `pith` suite: the one error type, the
//! fixed-width digest value, the Hamming distance between digests, and
//! the closed sets of names that appear in on-disk records. Also the
//! computational primitives every modality crate shares: SHA-256, the
//! checksums (CRC-32, Adler-32, FNV-1a 64), splitmix64 and the bit
//! reader.
//!
//! The foundation crate of the zero-dependency `pith` suite. Every other
//! crate builds on these types and nothing builds beneath them: this
//! crate has an empty `[dependencies]` table, enforced by
//! `scripts/check-zero-deps.py`.
//!
//! The crate is `core`-only in its library shape: no filesystem,
//! network, clock or environment, and no code path allocates. The
//! `std` feature (on by default) links `std` so the `cdylib` the
//! language SDKs bind through carries a panic handler; the library
//! surface itself stays `core`-only either way.
// The Java SDK's native-method surface: `Java_hash_pith_digest_*`
// exports that forward to the C ABI above. Compiled out of the
// unit-test build (the `#[no_mangle]` exports would collide with the
// test binary's copies) and out of `--no-default-features` builds (the
// glue needs `std` allocations); `tests/java_ffi.rs` covers the glue
// against a synthetic JNI environment instead. Private module: the JVM
// links the exports by symbol name, so nothing here needs to be
// publicly nameable in Rust.
pub use crate;
pub use crateBitReader;
pub use crate;
pub use cratecrc32c;
pub use crate;
pub use cratehamming;
pub use crate;
pub use crate;
pub use cratemurmur3_x64_128;
pub use crate;
pub use cratesha1;
pub use cratesha256;
pub use cratesha512;
pub use crateSplitMix64;
pub use crateXoshiro256StarStar;
pub use cratexxh64;