小编ase*_*ldt的帖子

带有回调的`zip`-like函数中的借用检查器问题

我正在尝试实现一个同时逐步执行两个迭代器的函数,为每对调用一个函数.此回调可以通过返回(bool, bool)元组来控制每个步骤中哪个迭代器前进.由于迭代器在我的用例中引用了一个缓冲区,它们无法实现Iteratorstdlib中的特征,而是通过一个next_ref函数来使用,该函数与之相同Iterator::next,但需要额外的生命周期参数.

// An iterator-like type, that returns references to itself
// in next_ref
struct RefIter {
    value: u64
}

impl RefIter {
    fn next_ref<'a>(&'a mut self) -> Option<&'a u64> {
        self.value += 1;
        Some(&self.value)
    }
}

// Iterate over two RefIter simultaneously and call a callback
// for each pair. The callback returns a tuple of bools
// that indicate which iterators should be advanced.
fn each_zipped<F>(mut iter1: RefIter, mut iter2: …
Run Code Online (Sandbox Code Playgroud)

rust borrow-checker

3
推荐指数
1
解决办法
144
查看次数

标签 统计

borrow-checker ×1

rust ×1