pub fn take(&mut self) -> Self {
        let mut identity = Self::new(self.projection.len());
        std::mem::swap(self, &mut identity);
        identity
    }
/// Returns `self`, and leaves behind an identity operator that acts on its output.
Returns `self`, and leaves behind an identity operator that acts on its output.
Returns ` self ` and leaves behind an identity operator that acts on its output .
pub fn take(&mut self) -> Self {
        let mut identity = Self::new(self.projection.len());
        std::mem::swap(self, &mut identity);
        identity
    }
pub fn take ( & mut self ) -> Self { let mut identity = Self :: new ( self . projection . len ( ) ) ; std :: mem :: swap ( self , & mut identity ) ; identity }
Returns `self`, and leaves behind an identity operator that acts on its output.
Returns ` self ` and leaves behind an identity operator that acts on its output .
&mut self
&mut self