pub struct ArgAttributes {
pub(crate) arg_ext: ArgExtension,
pub(crate) pointee_size: MachineSize,
pub(crate) pointee_align: Option<Align>,
}Expand description
Attributes of a function argument that affect its ABI.
Not all internal compiler attributes are exposed here, as some are LLVM-specific optimization hints. The internal representation is kept private so it can be expanded in the future.
Fields§
§arg_ext: ArgExtension§pointee_size: MachineSize§pointee_align: Option<Align>Implementations§
Source§impl ArgAttributes
impl ArgAttributes
Sourcepub fn arg_extension(&self) -> ArgExtension
pub fn arg_extension(&self) -> ArgExtension
Return how this argument should be extended when passed in a register.
Relevant for integer arguments smaller than the register width.
Sourcepub fn pointee_align(&self) -> Option<Align>
pub fn pointee_align(&self) -> Option<Align>
Return the minimum alignment of the pointee, if applicable.
This is relevant for PassMode::Indirect arguments where the pointer
must satisfy a particular alignment.
Sourcepub fn pointee_size(&self) -> Size
pub fn pointee_size(&self) -> Size
Return the minimum dereferenceable size of the pointee, if known.
Trait Implementations§
Source§impl Clone for ArgAttributes
impl Clone for ArgAttributes
Source§fn clone(&self) -> ArgAttributes
fn clone(&self) -> ArgAttributes
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ArgAttributes
impl Debug for ArgAttributes
impl Eq for ArgAttributes
Source§impl Hash for ArgAttributes
impl Hash for ArgAttributes
Source§impl PartialEq for ArgAttributes
impl PartialEq for ArgAttributes
Source§impl Serialize for ArgAttributes
impl Serialize for ArgAttributes
impl StructuralPartialEq for ArgAttributes
Auto Trait Implementations§
impl DynSend for ArgAttributes
impl DynSync for ArgAttributes
impl Freeze for ArgAttributes
impl RefUnwindSafe for ArgAttributes
impl Send for ArgAttributes
impl Sync for ArgAttributes
impl Unpin for ArgAttributes
impl UnsafeUnpin for ArgAttributes
impl UnwindSafe for ArgAttributes
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
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<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
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
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> ⓘ
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
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> ⓘ
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: 32 bytes