const fn needs_alias(&self) -> bool {
        use crate::TypeInner as Ti;

        match self.inner {
            // value types are concise enough, we only alias them if they are named
            Ti::Scalar { .. }
            | Ti::Vector { .. }
            | Ti::Matrix { .. }
            | Ti::Atomic { .. }
            | Ti::Pointer { .. }
            | Ti::ValuePointer { .. } => self.name.is_some(),
            // composite types are better to be aliased, regardless of the name
            Ti::Struct { .. } | Ti::Array { .. } => true,
            // handle types may be different, depending on the global var access, so we always inline them
            Ti::Image { .. } | Ti::Sampler { .. } | Ti::BindingArray { .. } => false,
        }
    }
// Returns `true` if we need to emit an alias for this type.
Returns `true` if we need to emit an alias for this type.
Returns ` true ` if we need to emit an alias for this type .
const fn needs_alias(&self) -> bool {
        use crate::TypeInner as Ti;
        match self.inner {
            // value types are concise enough, we only alias them if they are named
            Ti::Scalar { .. }
            | Ti::Vector { .. }
            | Ti::Matrix { .. }
            | Ti::Atomic { .. }
            | Ti::Pointer { .. }
            | Ti::ValuePointer { .. } => self.name.is_some(),
            // composite types are better to be aliased, regardless of the name
            Ti::Struct { .. } | Ti::Array { .. } => true,
            // handle types may be different, depending on the global var access, so we always inline them
            Ti::Image { .. } | Ti::Sampler { .. } | Ti::BindingArray { .. } => false,
        }
    }
const fn needs_alias ( & self ) -> bool { use crate :: TypeInner as Ti ; match self . inner { // value types are concise enough, we only alias them if they are named Ti :: Scalar { .. } | Ti :: Vector { .. } | Ti :: Matrix { .. } | Ti :: Atomic { .. } | Ti :: Pointer { .. } | Ti :: ValuePointer { .. } => self . name . is_some ( ) , // composite types are better to be aliased, regardless of the name Ti :: Struct { .. } | Ti :: Array { .. } => true , // handle types may be different, depending on the global var access, so we always inline them Ti :: Image { .. } | Ti :: Sampler { .. } | Ti :: BindingArray { .. } => false , } }
Returns `true` if we need to emit an alias for this type.
Returns ` true ` if we need to emit an alias for this type .
&self
&self