相关疑难解决方法(0)

如何从 NodeJS 中的 Rust FFI 函数返回字符串值?

我想生成 6 个随机数,将它们推送到一个向量上,然后使用rustc_serialize该向量将该向量编码为 NodeJS使用的 JSON 字符串。

extern crate rand;
extern crate rustc_serialize;

use rand::{OsRng, Rng};
use rustc_serialize::json::{self, Json, ToJson};

#[no_mangle]
pub extern "C" fn generate() -> String {
    let choices: [u8; 6] = [1, 2, 3, 4, 5, 6];

    let mut rand_vec: Vec<u8> = Vec::new();

    let mut rng = match OsRng::new() {
        Ok(t) => t,
        Err(e) => panic!("Failed to create OsRng!, {}", e),
    };

    for _ in 0..5 {
        rand_vec.push(*rng.choose(&choices).unwrap());
    }

    json::encode(&rand_vec).unwrap()
}
Run Code Online (Sandbox Code Playgroud)

这段代码被编译为一个库generate_6_rand.dll。我有一个单独的二进制文件,用于测试此代码。

如果我跑

println!("{:?}", …
Run Code Online (Sandbox Code Playgroud)

json node.js rust node-ffi

3
推荐指数
1
解决办法
1132
查看次数

标签 统计

json ×1

node-ffi ×1

node.js ×1

rust ×1