ab_core_primitives/
lib.rs

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