···13131414enum SpanLen {
1515 /// all collections are known
1616+ #[allow(dead_code)]
1617 Exactly(usize),
1718 /// at least one gap exists
1919+ #[allow(dead_code)]
1820 AtLeast(usize),
1921}
2022···3638 /// check if any collections are present
3739 ///
3840 /// None if we can't be sure (we only have a gap)
4141+ #[allow(dead_code)]
3942 fn is_empty(&self) -> Option<bool> {
4043 match self.len() {
4144 SpanLen::AtLeast(0) => None,
···6770 /// key exist -> true
6871 /// key falls in a gap -> true (it's possible!)
6972 /// key falls after a key without a gap after -> false (not possible!)
7373+ #[allow(dead_code)]
7074 fn may_contain(&self, k: &T) -> bool {
7175 self.contains(k).unwrap_or(true)
7276 }
+1-1
src/mst/slice_tricks.rs
···6363 /// whether it's possible that this span covers some NSIDs
6464 ///
6565 /// each NSID from the set must either be in span, or in a gap of it
6666- fn could_cover(&self, collections: &BTreeSet<Nsid<'_>>) -> bool {
6666+ pub fn could_cover(&self, collections: &BTreeSet<Nsid<'_>>) -> bool {
6767 let mut candidates = collections.iter().map(Into::<TerminatedNsid>::into);
6868 let Some(mut candidate) = candidates.next() else {
6969 return true; // empty set can always be covered, even by a zero-gap