diff --git a/libafl/src/bolts/tuples.rs b/libafl/src/bolts/tuples.rs index 4b5bf0513c..6fcd58c13f 100644 --- a/libafl/src/bolts/tuples.rs +++ b/libafl/src/bolts/tuples.rs @@ -7,6 +7,8 @@ use core::any::TypeId; use xxhash_rust::const_xxh3::xxh3_64; pub trait HasLen { + const LEN: usize; + fn len(&self) -> usize; fn is_empty(&self) -> bool { self.len() == 0 @@ -14,6 +16,8 @@ pub trait HasLen { } impl HasLen for () { + const LEN: usize = 0; + fn len(&self) -> usize { 0 } @@ -23,6 +27,8 @@ impl HasLen for (Head, Tail) where Tail: HasLen, { + const LEN: usize = 1 + Tail::LEN; + fn len(&self) -> usize { 1 + self.1.len() }