我想生成 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)