#deno #serde-json #plugin #easing #zero-copy #macro #deno-plugin

deno_json_op

一个用于简化 deno 插件开发的宏

2 个版本

0.1.1 2020 年 11 月 12 日
0.1.0 2020 年 11 月 12 日

#26#easing

MIT 许可证

5KB
50 代码行

deno_json_op

这是一个通过提供简单的宏来简化构建 deno 插件的过程的 crate,该宏自动将 ZeroCopy 的第一个元素转换为 serde_json::Value,并将 Result<_, _> 转换为 JSON 对象。

使用方法

use deno_core::error::AnyError;

use deno_core::plugin_api::Interface;
use deno_core::plugin_api::Op;
use deno_core::plugin_api::ZeroCopyBuf;

use deno_core::serde_json::Value;
use deno_core::serde_json::json;

use deno_json_op::json_op;

#[no_mangle]
pub fn deno_plugin_init(interface: &mut dyn Interface) {
  interface.register_op("test", op_test);
}

#[json_op]
fn op_test(_interface: &mut dyn Interface, val: Value, _zero_copy: &mut [ZeroCopyBuf]) -> Result<Value, AnyError> {
  Ok(json!({
    "hello": val
  }))
}

其他

贡献

欢迎提交 pull request、问题和反馈。代码风格使用 deno fmt 格式化,提交信息遵循常规提交规范。

许可证

版权 2020 年至今,denosaurs 团队。保留所有权利。MIT 许可证。

依赖关系

~1.5MB
~35K SLoC