mirror of
https://github.com/denoland/deno.git
synced 2024-11-01 09:24:20 -04:00
23 lines
463 B
Rust
23 lines
463 B
Rust
|
use crate::libdeno::PinnedBuf;
|
||
|
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<PinnedBuf>) -> 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)
|
||
|
}
|
||
|
};
|
||
|
}
|