mirror of
https://github.com/denoland/deno.git
synced 2024-11-26 16:09:27 -05:00
24 lines
480 B
Rust
24 lines
480 B
Rust
use crate::isolate::ZeroCopyBuf;
|
|
use crate::ops::CoreOp;
|
|
|
|
pub type PluginInitFn = fn(context: &mut dyn PluginInitContext);
|
|
|
|
pub trait PluginInitContext {
|
|
fn register_op(
|
|
&mut self,
|
|
name: &str,
|
|
op: Box<
|
|
dyn Fn(&[u8], Option<ZeroCopyBuf>) -> CoreOp + Send + Sync + 'static,
|
|
>,
|
|
);
|
|
}
|
|
|
|
#[macro_export]
|
|
macro_rules! init_fn {
|
|
($fn:path) => {
|
|
#[no_mangle]
|
|
pub fn deno_plugin_init(context: &mut dyn PluginInitContext) {
|
|
$fn(context)
|
|
}
|
|
};
|
|
}
|