Skip to main content

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