我正在尝试为我的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)