pub struct CalleeSig {
pub param_kinds: Vec<Option<ParamKind>>,
pub ret: Option<SlotKind>,
pub list_params_stable: bool,
pub returns_list_param: bool,
}Expand description
A natively-compiled LOOP REGION (OSR-lite): no arguments, no return — every effect flows through the enclosing frame’s registers. What a REGION needs to know about a function it might call: the declared signature (all-scalar = replay-pure = inlinable) and the function index for its table slot.
Fields§
§param_kinds: Vec<Option<ParamKind>>§ret: Option<SlotKind>Declared scalar return; None keeps the callee out of regions.
list_params_stable: boolLEVER B (a region may CALL a list-parameter function). Sound only when
the callee never reallocates a list-param buffer (no Push reaching a
list param) — then the caller’s derived raw buffer pointer stays valid
across the call. true ⇒ list args don’t move under the call.
returns_list_param: boolEvery Return traces (through Moves) to a list PARAMETER, so the
returned handle aliases a passed-in (already-pinned) buffer rather than a
fresh one. Lets a LIST-returning callee be admitted; a scalar return is
governed by ret and ignores this. false for non-list / fresh-list
/ multi-element-kind returns.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CalleeSig
impl RefUnwindSafe for CalleeSig
impl Send for CalleeSig
impl Sync for CalleeSig
impl Unpin for CalleeSig
impl UnsafeUnpin for CalleeSig
impl UnwindSafe for CalleeSig
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.