Type Alias gluon_vm::thread::HookFn

source ·
pub type HookFn = Box<dyn FnMut(&Thread, DebugInfo<'_>) -> Poll<Result<()>> + Send + Sync>;

Aliased Type§

struct HookFn(/* private fields */);

Trait Implementations§

1.0.0 · source§

impl<T, A> Deref for Box<T, A>where A: Allocator, T: ?Sized,

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &T

Dereferences the value.
source§

impl<F> FunctionType for Box<F>where F: FunctionType,

source§

fn arguments() -> VmIndex

Returns how many arguments the function needs to be provided to call it
source§

impl<'vm, 'value, T: Getable<'vm, 'value>> Getable<'vm, 'value> for Box<T>

§

type Proxy = Variants<'value>

source§

fn to_proxy(_vm: &'vm Thread, value: Variants<'value>) -> Result<Self::Proxy>

source§

fn from_proxy(vm: &'vm Thread, proxy: &'value mut Self::Proxy) -> Self

source§

fn from_value(vm: &'vm Thread, value: Variants<'value>) -> Box<T>

source§

impl<M> Macro for Box<M>where M: Macro + ?Sized,

source§

fn get_capability_impl( &self, thread: &Thread, arc_self: &Arc<dyn Macro>, id: TypeId ) -> Option<Box<dyn Any>>

source§

fn expand<'r, 'a: 'r, 'b: 'r, 'c: 'r, 'ast: 'r>( &self, env: &'b mut MacroExpander<'a>, symbols: &'c mut Symbols, arena: &'b mut OwnedArena<'ast, Symbol>, args: &'b mut [SpannedExpr<'ast, Symbol>] ) -> MacroFuture<'r, 'ast>

Creating a symbol in symbols will put it in the same scope as the code surrounding the expansion. If you want to create a unique symbol then call Symbol::from or create a new Symbols table
source§

fn get_capability<T>( &self, thread: &Thread, arc_self: &Arc<dyn Macro> ) -> Option<T>where Self: Sized, T: Any,

source§

impl<'a, T: ?Sized + Trace> Trace for Box<T>

source§

unsafe fn root(&mut self)

source§

unsafe fn unroot(&mut self)

source§

fn trace(&self, gc: &mut Gc)

source§

impl<'vm, F> VmFunction<'vm> for Box<F>where F: VmFunction<'vm> + ?Sized,

source§

fn unpack_and_call(&self, vm: &'vm Thread) -> Status

source§

impl<'s, T: VmType> VmType for Box<T>

§

type Type = <T as VmType>::Type

A version of Self which implements Any allowing a TypeId to be retrieved
source§

fn make_type(vm: &Thread) -> ArcType

Creates an gluon type which maps to Self in rust
source§

fn make_forall_type(vm: &Thread) -> ArcType

source§

const EXTRA_ARGS: VmIndex = 0u32

How many extra arguments a function returning this type requires. Used for abstract types which when used in return position should act like they still need more arguments before they are called