pub type HookFn = Box<dyn FnMut(&Thread, DebugInfo<'_>) -> Poll<Result<()>> + Send + Sync>;
Aliased Type§
struct HookFn(/* private fields */);
Trait Implementations§
source§impl<F> FunctionType for Box<F>where
F: FunctionType,
impl<F> FunctionType for Box<F>where F: FunctionType,
source§impl<M> Macro for Box<M>where
M: Macro + ?Sized,
impl<M> Macro for Box<M>where M: Macro + ?Sized,
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>
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
tablefn get_capability<T>( &self, thread: &Thread, arc_self: &Arc<dyn Macro> ) -> Option<T>where Self: Sized, T: Any,
source§impl<'vm, F> VmFunction<'vm> for Box<F>where
F: VmFunction<'vm> + ?Sized,
impl<'vm, F> VmFunction<'vm> for Box<F>where F: VmFunction<'vm> + ?Sized,
fn unpack_and_call(&self, vm: &'vm Thread) -> Status
source§impl<'s, T: VmType> VmType for Box<T>
impl<'s, T: VmType> VmType for Box<T>
§type Type = <T as VmType>::Type
type Type = <T as VmType>::Type
A version of
Self
which implements Any
allowing a TypeId
to be retrievedfn make_forall_type(vm: &Thread) -> ArcType
source§const EXTRA_ARGS: VmIndex = 0u32
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