[][src]Struct rustc_ap_rustc_target::abi::call::FnAbi

pub struct FnAbi<'a, Ty> {
    pub args: Vec<ArgAbi<'a, Ty>>,
    pub ret: ArgAbi<'a, Ty>,
    pub c_variadic: bool,
    pub fixed_count: usize,
    pub conv: Conv,
    pub can_unwind: bool,
}

Metadata describing how the arguments to a native function should be passed in order to respect the native ABI.

I will do my best to describe this structure, but these comments are reverse-engineered and may be inaccurate. -NDM

Fields

args: Vec<ArgAbi<'a, Ty>>

The LLVM types of each argument.

ret: ArgAbi<'a, Ty>

LLVM return type.

c_variadic: boolfixed_count: usize

The count of non-variadic arguments.

Should only be different from args.len() when c_variadic is true. This can be used to know whether an argument is variadic or not.

conv: Convcan_unwind: bool

Implementations

impl<'a, Ty> FnAbi<'a, Ty>[src]

pub fn adjust_for_cabi<C>(&mut self, cx: &C, abi: Abi) -> Result<(), String> where
    Ty: TyAndLayoutMethods<'a, C> + Copy,
    C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout + HasTargetSpec
[src]

Trait Implementations

impl<'a, Ty: Debug> Debug for FnAbi<'a, Ty>[src]

Auto Trait Implementations

impl<'a, Ty> RefUnwindSafe for FnAbi<'a, Ty> where
    Ty: RefUnwindSafe

impl<'a, Ty> Send for FnAbi<'a, Ty> where
    Ty: Send

impl<'a, Ty> Sync for FnAbi<'a, Ty> where
    Ty: Sync

impl<'a, Ty> Unpin for FnAbi<'a, Ty> where
    Ty: Unpin

impl<'a, Ty> UnwindSafe for FnAbi<'a, Ty> where
    Ty: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<T> Erased for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> MaybeResult<T> for T[src]

type Error = !

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<E> SpecializationError for E[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.