1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use super::IntoAbstract;
use crate::entity_id::EntityId;
use crate::iter::abstract_mut::AbstractMut;
use crate::not::Not;
use crate::type_id::TypeId;

impl<T: IntoAbstract> IntoAbstract for Not<T>
where
    Not<T::AbsView>: AbstractMut,
{
    type AbsView = Not<T::AbsView>;

    fn into_abstract(self) -> Self::AbsView {
        Not(self.0.into_abstract())
    }
    fn len(&self) -> Option<usize> {
        if self.0.is_tracking() {
            self.0.len()
        } else {
            None
        }
    }
    fn type_id(&self) -> TypeId {
        self.0.type_id()
    }
    fn inner_type_id(&self) -> TypeId {
        self.0.inner_type_id()
    }
    fn dense(&self) -> *const EntityId {
        self.0.dense()
    }
    fn is_not(&self) -> bool {
        true
    }
}