Skip to content

Commit 437fbda

Browse files
authored
Implement LifetimeFree for tuples (#17)
Implement `LifetimeFree` for tuples with up to 10 elements, whose elements also implement `LifetimeFree`.
1 parent 83ae3fa commit 437fbda

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/lifetime_free.rs

+21
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,27 @@ unsafe impl<T: LifetimeFree> LifetimeFree for core::num::Wrapping<T> {}
8383
unsafe impl<T: LifetimeFree> LifetimeFree for core::cell::Cell<T> {}
8484
unsafe impl<T: LifetimeFree> LifetimeFree for core::cell::RefCell<T> {}
8585

86+
macro_rules! tuple_impls {
87+
($( $( $name:ident )+, )+) => {
88+
$(
89+
unsafe impl<$($name: LifetimeFree),+> LifetimeFree for ($($name,)+) {}
90+
)+
91+
};
92+
}
93+
94+
tuple_impls! {
95+
T0,
96+
T0 T1,
97+
T0 T1 T2,
98+
T0 T1 T2 T3,
99+
T0 T1 T2 T3 T4,
100+
T0 T1 T2 T3 T4 T5,
101+
T0 T1 T2 T3 T4 T5 T6,
102+
T0 T1 T2 T3 T4 T5 T6 T7,
103+
T0 T1 T2 T3 T4 T5 T6 T7 T8,
104+
T0 T1 T2 T3 T4 T5 T6 T7 T8 T9,
105+
}
106+
86107
#[cfg(feature = "std")]
87108
mod std_impls {
88109
use super::LifetimeFree;

0 commit comments

Comments
 (0)