当其中一个相关类型无法命名时,如何实现特征?

问题描述 投票:10回答:1

我有一个返回impl Trait的函数,所以我无法访问具体的返回类型。我需要使用该函数的返回值作为特征中的关联类型。我怎么做?

这是一个简化的例子:

fn f() -> impl Iterator<Item = u8> {
    std::iter::empty()
}

struct S;

impl IntoIterator for S {
    type Item = u8;
    type IntoIter = (); // What can I write here ?

    fn into_iter(self) -> Self::IntoIter {
        f()
    }
}

它甚至可以做(没有诉诸拳击迭代器)?

generics rust traits associated-types
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.