gpt4 book ai didi

readline - rust 0.10 有 rl 包吗?

转载 作者:行者123 更新时间:2023-11-29 08:08:12 26 4
gpt4 key购买 nike

我开始使用 Rust 使用 gnu readline 库创建一个小玩具命令提示符应用程序。我开始使用 c 外部函数接口(interface),但后来 came across this in rust 0.8 .

crate extra 有一个模块 extra::rl,它似乎是一个包含所有需要的工具的 readline。我的问题是,它是否存在于 rust 0.10 中,如果存在,它在哪里?如果不是,它是否打包为外部模块?如果是,我在哪里可以找到它?

提前致谢。

最佳答案

use std::c_str;

#[link(name = "readline")]
extern {
fn readline (p: *std::libc::c_char) -> * std::libc::c_char;
}

fn rust_readline (prompt: &str) -> Option<~str> {
let cprmt = prompt.to_c_str();
cprmt.with_ref(|c_buf| {
unsafe {
let ret = c_str::CString::new (readline (c_buf), true);
ret.as_str().map(|ret| ret.to_owned())
}
})
}

fn eval(input: &str)
{
println! ("{}", input);
}

fn main()
{
loop {
let val = rust_readline (">>> ");
match val {
None => { break }
_ => {
let input = val.unwrap ();
eval(input);
}
}
}
}

这是一个示例 REPL 风格的解释器,它只打印而不是求值。基于 http://redbrain.co.uk/2013/11/09/rust-and-readline-c-ffi/ 中的代码.他的示例不再编译。

这段代码现在在github上here .

关于readline - rust 0.10 有 rl 包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23942627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com