pub struct FnSigKind {
flags: u8,
}Expand description
Contains the packed non-type fields of a function signature.
Fields§
§flags: u8Implementations§
Source§impl FnSigKind
impl FnSigKind
Sourcepub const fn default() -> FnSigKind
pub const fn default() -> FnSigKind
Create a new FnSigKind with the “Rust” ABI, “Unsafe” safety, and no C-style variadic argument.
To modify these flags, use the set_* methods, for readability.
Sourcepub const fn set_abi(self, abi: ExternAbi) -> FnSigKind
pub const fn set_abi(self, abi: ExternAbi) -> FnSigKind
Set the ABI, including the unwind flag.
Sourcepub const fn set_c_variadic(self, c_variadic: bool) -> FnSigKind
pub const fn set_c_variadic(self, c_variadic: bool) -> FnSigKind
Set the C-style variadic argument flag.
Sourcepub const fn c_variadic(self) -> bool
pub const fn c_variadic(self) -> bool
Do the function arguments end with a C-style variadic argument?
Trait Implementations§
Source§impl<'tcx> FSigKind<TyCtxt<'tcx>> for FnSigKind
impl<'tcx> FSigKind<TyCtxt<'tcx>> for FnSigKind
Source§fn fn_sig_kind(self) -> FnSigKind
fn fn_sig_kind(self) -> FnSigKind
The identity function.
Source§fn new(abi: ExternAbi, safety: Safety, c_variadic: bool) -> FnSigKind
fn new(abi: ExternAbi, safety: Safety, c_variadic: bool) -> FnSigKind
Create a new FnSigKind with the given ABI, safety, and C-style variadic flag.
Source§fn c_variadic(self) -> bool
fn c_variadic(self) -> bool
Do the function arguments end with a C-style variadic argument?
Source§impl<__CTX> HashStable<__CTX> for FnSigKind
impl<__CTX> HashStable<__CTX> for FnSigKind
fn hash_stable( &self, __hcx: &mut __CTX, __hasher: &mut StableHasher<SipHasher128>, )
impl Copy for FnSigKind
impl Eq for FnSigKind
impl StructuralPartialEq for FnSigKind
Auto Trait Implementations§
impl DynSend for FnSigKind
impl DynSync for FnSigKind
impl Freeze for FnSigKind
impl RefUnwindSafe for FnSigKind
impl Send for FnSigKind
impl Sync for FnSigKind
impl Unpin for FnSigKind
impl UnsafeUnpin for FnSigKind
impl UnwindSafe for FnSigKind
Blanket Implementations§
Source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut T
fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'tcx mut [T]
Source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut T
fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'tcx mut [T]
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,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<'tcx, T> DepNodeKey<'tcx> for T
impl<'tcx, T> DepNodeKey<'tcx> for T
default fn key_fingerprint_style() -> KeyFingerprintStyle
Source§default fn to_fingerprint(&self, tcx: TyCtxt<'tcx>) -> Fingerprint
default fn to_fingerprint(&self, tcx: TyCtxt<'tcx>) -> Fingerprint
This method turns a query key into an opaque
Fingerprint to be used
in DepNode.Source§default fn try_recover_key(_: TyCtxt<'tcx>, _: &DepNode) -> Option<T>
default fn try_recover_key(_: TyCtxt<'tcx>, _: &DepNode) -> Option<T>
This method tries to recover the query key from the given
DepNode,
something which is needed when forcing DepNodes during red-green
evaluation. The query system will only call this method if
fingerprint_style() is not FingerprintStyle::Opaque.
It is always valid to return None here, in which case incremental
compilation will treat the query as having changed instead of forcing it.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<K> IntoQueryKey<K> for K
impl<K> IntoQueryKey<K> for K
Source§fn into_query_key(self) -> K
fn into_query_key(self) -> K
Argument conversion from
Self to K.
This should always be a very cheap conversion, e.g. LocalDefId::to_def_id.Source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte