[][src]Struct c2rust_refactor::analysis::ownership::MonoResult

pub struct MonoResult {
    pub suffix: String,
    pub assign: IndexVec<Var, ConcretePerm>,
    pub callee_mono_idxs: Vec<usize>,
}

Results specific to a function monomorphization.

Each monomorphization has a parent FunctionResult and a parent VariantResult. If the function's variants field is None, then the ID of the variant is the same as the function ID. Otherwise, the variant ID is found by indexing into variants with the index of this monomorphization.

Fields

suffix: String

Suffix to add to the function name when this monomorphization is split into its own fn. Usually something like "mut" or "take". If empty, the original name should be used.

assign: IndexVec<Var, ConcretePerm>

Assignment of concrete permission values to the signature variables of the function. All monomorphizations use the sig that appears in their parent FunctionResult, but each has a different assignments to the SigVars.

The length of assign should be equal to the parent FunctionResult's num_sig_vars.

callee_mono_idxs: Vec<usize>

Index of the chosen monomorphization for each function reference. These entries correspond to those in the parent VariantResult's func_refs field.

Auto Trait Implementations

impl Send for MonoResult

impl Sync for MonoResult

Blanket Implementations

impl<T> Lone for T[src]

impl<T> From for T[src]

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

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

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

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

The type returned in the event of a conversion error.

impl<E> SpecializationError for E[src]

impl<T> Erased for T[src]

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

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

impl<T> Same for T

type Output = T

Should always be Self

impl<T> MaybeResult for T[src]

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

impl<T> Erased for T

impl<T> Make for T[src]

impl<T> Slottable for T[src]