pub struct AdtDef(/* private fields */);
Implementations§
Source§impl AdtDef
impl AdtDef
pub fn ingredient<Db>(db: &Db) -> &IngredientImpl<Self>where
Db: ?Sized + Database,
Source§impl<'db> AdtDef
impl<'db> AdtDef
pub fn new_<Db_, T0: Lookup<AdtDefInner> + Hash>(
db: &'db Db_,
data_: T0,
) -> Selfwhere
Db_: ?Sized + Database,
AdtDefInner: HashEqLike<T0>,
Sourcepub fn default_debug_fmt(this: Self, f: &mut Formatter<'_>) -> Result
pub fn default_debug_fmt(this: Self, f: &mut Formatter<'_>) -> Result
Default debug formatting for this struct (may be useful if you define your own Debug
impl)
Source§impl AdtDef
impl AdtDef
pub fn new<'db>(def_id: AdtId, interner: DbInterner<'db>) -> Self
pub fn inner(&self) -> &AdtDefInner
pub fn is_enum(&self) -> bool
pub fn repr(self) -> ReprOptions
Sourcepub fn non_enum_variant(self) -> VariantDef
pub fn non_enum_variant(self) -> VariantDef
Asserts this is a struct or union and returns its unique variant.
Trait Implementations§
Source§impl<'db> AdtDef<DbInterner<'db>> for AdtDef
impl<'db> AdtDef<DbInterner<'db>> for AdtDef
fn def_id(self) -> <DbInterner<'db> as Interner>::DefId
fn is_struct(self) -> bool
fn is_phantom_data(self) -> bool
fn is_fundamental(self) -> bool
Source§fn struct_tail_ty(
self,
interner: DbInterner<'db>,
) -> Option<EarlyBinder<DbInterner<'db>, Ty<'db>>>
fn struct_tail_ty( self, interner: DbInterner<'db>, ) -> Option<EarlyBinder<DbInterner<'db>, Ty<'db>>>
Returns the type of the struct tail. Read more
fn all_field_tys( self, interner: DbInterner<'db>, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = Ty<'db>>>
fn sizedness_constraint( self, interner: DbInterner<'db>, sizedness: SizedTraitKind, ) -> Option<EarlyBinder<DbInterner<'db>, Ty<'db>>>
fn destructor(self, interner: DbInterner<'db>) -> Option<AdtDestructorKind>
fn is_manually_drop(self) -> bool
impl Copy for AdtDef
impl Eq for AdtDef
impl Send for AdtDef
impl StructuralPartialEq for AdtDef
impl Sync for AdtDef
Auto Trait Implementations§
impl Freeze for AdtDef
impl !RefUnwindSafe for AdtDef
impl Unpin for AdtDef
impl !UnwindSafe for AdtDef
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more