# Trait rustc_type_ir::inherent::AdtDef

source ·

    pub trait AdtDef<I: Interner>: Copy + Debug + Hash + Eq {
        // Required methods
        fn def_id(self) -> I::DefId;
        fn is_struct(self) -> bool;
        fn struct_tail_ty(self, interner: I) -> Option<EarlyBinder<I, I::Ty>>;
        fn is_phantom_data(self) -> bool;
        fn all_field_tys(
            self,
            interner: I,
        ) -> EarlyBinder<I, impl IntoIterator<Item = I::Ty>>;
        fn sized_constraint(self, interner: I) -> Option<EarlyBinder<I, I::Ty>>;
    }

## Required Methods§

source

#### fn def_id(self) -> I::DefId

source

#### fn is_struct(self) -> bool

source

#### fn struct_tail_ty(self, interner: I) -> Option<EarlyBinder<I, I::Ty>>

Returns the type of the struct tail.

Expects the `AdtDef` to be a struct. If it is not, then this will panic.

source

#### fn is_phantom_data(self) -> bool

source

#### fn all_field_tys( self, interner: I, ) -> EarlyBinder<I, impl IntoIterator<Item = I::Ty>>

source

#### fn sized_constraint(self, interner: I) -> Option<EarlyBinder<I, I::Ty>>

## Object Safety§

This trait is not object safe.

## Implementors§