gpt4 book ai didi

io - 如何在超时的情况下从终端读取 UTF-8 字符?

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

我正在尝试在 Rust 中实现一个命令行编辑库。

为了正确处理 ESC 键,我需要等待可能永远不会到达的转义序列的其余部分。

目前,我正在使用:

let stdin = io::stdin();
let mut chars = stdin.lock().chars();
let mut ch = try!(chars.next().unwrap());

但似乎没有办法指定超时。我应该尝试将 Rust IO 与 poll function 混合使用吗? ?

最佳答案

async-std crate 对此有开箱即用的支持:

use async_std::io;
use std::time::Duration;

#[async_std::main]
async fn main() -> std::io::Result<()> {
let input = io::timeout(Duration::from_secs(5), async {
let stdin = io::stdin();
let mut line = String::new();
stdin.read_line(&mut line).await?;
Ok(line)
})
.await;

println!("{:?}", input);

Ok(())
}

关于io - 如何在超时的情况下从终端读取 UTF-8 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33646418/

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