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
// Copyright 2022 Vladislav Melnik
// SPDX-License-Identifier: MIT

#![forbid(unsafe_code)]
#![deny(clippy::all)]
#![cfg_attr(feature = "nightly", feature(min_specialization))]
#![cfg_attr(not(any(feature = "codec", feature = "std")), no_std)]

#[macro_use]
extern crate alloc;

extern crate self as radiation;

#[cfg(feature = "derive")]
pub use radiation_macros::{Absorb, Emit, Limit};

pub use nom;

mod absorb;
pub use self::absorb::{
    Absorb, AbsorbExt, ParseError, ParseErrorKind, Limit, LimitDescriptor, LimitError,
};

mod emit;
pub use self::emit::{RadiationBuffer, Emit};

#[cfg(all(test, feature = "derive"))]
mod tests;

#[derive(Default, Debug, Clone, PartialEq, Eq)]
pub struct DynSized<T>(pub T);

#[derive(Default, Debug, Clone, PartialEq, Eq)]
pub struct Collection<C>(pub C);

#[cfg(feature = "codec")]
pub mod codec;

#[cfg(feature = "dilithium")]
mod dil;