我只是在学习 Rust 并且我正在绊倒一些东西,就像我想的那样。 而这个我自己找不到答案,我试过了。
我正在做的是围绕消息流抽象进行游戏,除非我知道如何编写这个测试,否则一切顺利:
#[test]
fn take_1() {
let mut delivery_count = 1;
let delivery_listener = |item: &i32| {
delivery_count += 1;
};
let stream = super::Stream::<i32>::new(Some(Box::new(delivery_listener)));
// [Push 10 messages to the stream here]
assert_eq!(delivery_count, 10);
}
在这里,我正在实施一种确认机制——我将消息推送到 Stream 对象并通过闭包确认传递列表,这显然没有真正起作用,并因以下错误而失败:
`delivery_count` does not live long enough
borrowed value does not live long enough
我确实在
Vec<i32>
甚至 Rc<RefCell<i32>>
上尝试过相同的方法,但每次都惨遭失败,因为我无法设法将生命周期附加到该变量上。
我很确定这是我所缺少的简单东西 - 我需要社区帮助! ;)