pub fn is_identity(&self) -> bool {
        self.value.iter().zip(CanonicalVar::new(0)..).all(|(kind, cvar)| {
            match kind.unpack() {
                UnpackedKind::Type(ty) => match ty.sty {
                    ty::Infer(ty::CanonicalTy(cvar1)) => cvar == cvar1,
                    _ => false,
                },

                UnpackedKind::Lifetime(r) => match r {
                    ty::ReCanonical(cvar1) => cvar == *cvar1,
                    _ => false,
                },
            }
        })
    }
/// True if this represents a substitution like
///
/// ```text
/// [?0, ?1, ?2]
/// ```
///
/// i.e., each thing is mapped to a canonical variable with the same index.


i.e., each thing is mapped to a canonical variable with the same index.
i . e . each thing is mapped to a canonical variable with the same index .
pub fn is_identity(&self) -> bool {
        self.value.iter().zip(CanonicalVar::new(0)..).all(|(kind, cvar)| {
            match kind.unpack() {
                UnpackedKind::Type(ty) => match ty.sty {
                    ty::Infer(ty::CanonicalTy(cvar1)) => cvar == cvar1,
                    _ => false,
                },
                UnpackedKind::Lifetime(r) => match r {
                    ty::ReCanonical(cvar1) => cvar == *cvar1,
                    _ => false,
                },
            }
        })
    }
pub fn is_identity ( & self ) -> bool { self . value . iter ( ) . zip ( CanonicalVar :: new ( 0 ) .. ) . all ( | ( kind , cvar ) | { match kind . unpack ( ) { UnpackedKind :: Type ( ty ) => match ty . sty { ty :: Infer ( ty :: CanonicalTy ( cvar1 ) ) => cvar == cvar1 , _ => false , } , UnpackedKind :: Lifetime ( r ) => match r { ty :: ReCanonical ( cvar1 ) => cvar == * cvar1 , _ => false , } , } } ) }
True if this represents a substitution like
```text
[?0, ?1, ?2]
```
True if this represents a substitution like ` ` ` text [ ?0 ?1 ?2 ] ` ` `
&self
&self