14 个版本
0.1.0-alpha.0 | 2019 年 11 月 10 日 |
---|---|
0.0.9 | 2019 年 10 月 11 日 |
0.0.8-alpha.2 | 2019 年 7 月 29 日 |
0.0.8-alpha.1 | 2019 年 4 月 26 日 |
0.0.2 | 2019 年 3 月 11 日 |
#29 in #cat
每月下载量 45
355KB
8K SLoC
cat
Rust cat 绑定。
注意:此 crate 主要为 Nodejs 的 Native Addons(使用 neon)创建。
示例
创建一个新的 cat 客户端
extern crate cat_rs as cat;
use cat::logEvent;
use cat::CatClient;
use cat::CatTransaction;
let mut cat = CatClient::new("test");
cat.init()?
let mut tr = CatTransaction::new("foo", "bar")
tr.log("test", "it", "0", "");
tr.complete();
Ok(())
使用 neon
- 将 cat 事务导出到 nodejs。
cat.rs
use cat_rs::{self, CatTransaction};
use neon::prelude::*;
declare_types! {
pub class JsCatTransaction for CatTransaction {
init(mut ctx) {
let _type = ctx.argument::<JsString>(0)?.value();
let _name = ctx.argument::<JsString>(1)?.value();
let trans = CatTransaction::new(_type, _name);
Ok(trans)
}
method complete(mut ctx) {
let mut this = ctx.this();
let guard = ctx.lock();
{
let mut trans = this.borrow_mut(&guard);
trans.complete();
}
Ok(ctx.undefined().upcast())
}
method log(mut ctx) {
let _type = ctx.argument::<JsString>(0)?.value();
let _name = ctx.argument::<JsString>(0)?.value();
let _stat = ctx.argument::<JsString>(0)?.value();
let _data = ctx.argument::<JsString>(0)?.value();
{
let mut this = ctx.this();
let guard = ctx.lock();
let mut trans = this.borrow_mut(&guard);
trans.log(_type, _name, _stat, _data);
}
Ok(ctx.undefined().upcast())
}
}
}
- 注册此类
lib.rs
use cat::JsCatTransaction;
register_module!(mut ctx, {
ctx.export_class::<JsCatTransaction>("NodeCatTransaction")?;
})
依赖
~0.8–3.5MB
~73K SLoC