1#![cfg_attr(doc, doc = include_str!("../README.md"))]
11
12#![expect(
13 missing_copy_implementations,
14 missing_debug_implementations,
15 reason = "The four uninhabited Speed types are what trigger these lints",
16)]
17
18#![no_std]
19
20#[cfg(feature = "std")]
21extern crate std;
22
23#[cfg(feature = "alloc")]
24extern crate alloc;
25
26
27mod speed;
28
29mod independent;
30mod mirrored;
31mod mixed;
32
33mod blanket_impls;
34
35
36pub use self::{
37 blanket_impls::NonRecursive,
38 independent::IndependentClone,
39 mirrored::MirroredClone,
40 mixed::MixedClone,
41};
42pub use self::speed::{Speed, NearInstant, ConstantTime, LogTime, AnySpeed};
43
44
45macro_rules! call_varargs_macro {
46 ($macro:ident) => {
47 $macro!(T1);
48 $macro!(T1, T2);
49 $macro!(T1, T2, T3);
50 $macro!(T1, T2, T3, T4);
51 $macro!(T1, T2, T3, T4, T5);
52 $macro!(T1, T2, T3, T4, T5, T6);
53 $macro!(T1, T2, T3, T4, T5, T6, T7);
54 $macro!(T1, T2, T3, T4, T5, T6, T7, T8);
55 $macro!(T1, T2, T3, T4, T5, T6, T7, T8, T9);
56 $macro!(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10);
57 $macro!(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11);
58 $macro!(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12);
59 };
60}
61
62pub(crate) use call_varargs_macro;