clone_behavior/
lib.rs

1// See https://linebender.org/blog/doc-include for this README inclusion strategy
2// File links are not supported by rustdoc
3//!
4//! [LICENSE-APACHE]: https://github.com/robofinch/generic-container/blob/main/LICENSE-APACHE
5//! [LICENSE-MIT]: https://github.com/robofinch/generic-container/blob/main/LICENSE-MIT
6//!
7//! <style>
8//! .rustdoc-hidden { display: none; }
9//! </style>
10#![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 deep;
30mod mirrored;
31
32
33pub use self::{
34    deep::DeepClone,
35    mirrored::MirroredClone,
36};
37pub use self::speed::{Fast, FastSpeed, MaybeSlow, Speed};
38
39
40macro_rules! call_varargs_macro {
41    ($macro:ident) => {
42        $macro!(T1);
43        $macro!(T1, T2);
44        $macro!(T1, T2, T3);
45        $macro!(T1, T2, T3, T4);
46        $macro!(T1, T2, T3, T4, T5);
47        $macro!(T1, T2, T3, T4, T5, T6);
48        $macro!(T1, T2, T3, T4, T5, T6, T7);
49        $macro!(T1, T2, T3, T4, T5, T6, T7, T8);
50        $macro!(T1, T2, T3, T4, T5, T6, T7, T8, T9);
51        $macro!(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10);
52        $macro!(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11);
53        $macro!(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12);
54    };
55}
56
57pub(crate) use call_varargs_macro;