ab_core_primitives/
lib.rs

1//! Core primitives for the protocol
2
3#![no_std]
4#![warn(rust_2018_idioms, missing_debug_implementations, missing_docs)]
5#![feature(
6    array_chunks,
7    const_trait_impl,
8    const_try,
9    generic_arg_infer,
10    portable_simd,
11    ptr_as_ref_unchecked,
12    step_trait,
13    trusted_len
14)]
15#![cfg_attr(feature = "alloc", feature(new_zeroed_alloc))]
16#![expect(incomplete_features, reason = "generic_const_exprs")]
17// TODO: This feature is not actually used in this crate, but is added as a workaround for
18//  https://github.com/rust-lang/rust/issues/141492
19#![feature(generic_const_exprs)]
20
21pub mod address;
22pub mod balance;
23pub mod block;
24#[cfg(feature = "scale-codec")]
25pub mod checksum;
26pub mod ed25519;
27pub mod hashes;
28pub mod pieces;
29pub mod pos;
30pub mod pot;
31pub mod sectors;
32pub mod segments;
33pub mod shard;
34pub mod solutions;
35pub mod transaction;
36
37#[cfg(feature = "alloc")]
38extern crate alloc;
39
40const _: () = {
41    assert!(
42        size_of::<usize>() >= size_of::<u32>(),
43        "Must be at least 32-bit platform"
44    );
45};