小编and*_*ree的帖子

从NodeJS调用Rust

我正在尝试为我的soup.io博客构建一个简单的rust rss'harvester',然后将这些条目发布到带有node.js的diaspora(因为有一个npm包)

我想学习如何使用节点生锈,这就是我正在构建这个项目的原因.

我的问题是我不知道如何ffi用正确的类型调用函数.

var lib = ffi.Library('target/debug/libmain', {
    'get_soup': ['Vec<Post>', ['String']]
});
Run Code Online (Sandbox Code Playgroud)

'Vec<Post>'不起作用.我知道我必须使用ref它.但我真的不知道实际上是怎么做的.

我知道我必须将锈类型转换为javascript吗?

我如何Vec<Post>在我的ffi功能中使用?

我的github项目:Realtin/suppe

这里有相关代码:

锈编码:

extern crate rss;
extern crate hyper;

use rss::Rss;
use std::io::prelude::*;

#[derive(Debug)]
pub struct Post  {
    title: String,
    link: String,
    description: String,
}

fn main() {
    let user = "realtin".to_string();
    let vec = get_soup(&user);
    println!("{:?}", vec[vec.len()-1]);
}

#[no_mangle]
pub extern fn get_soup(user: &str) ->Vec<Post>{
    let url = format!("http://{}.soup.io/rss", user);
    let mut vec = …
Run Code Online (Sandbox Code Playgroud)

node.js rust node-ffi

5
推荐指数
1
解决办法
1427
查看次数

标签 统计

node-ffi ×1

node.js ×1

rust ×1