Rust 具有futures TryStream和SNAFU上下文的意外返回类型

Rust 具有futures TryStream和SNAFU上下文的意外返回类型,rust,stream,inotify,Rust,Stream,Inotify,我正在尝试包装一个INotify事件流,但我不是很成功: pub fn doc_stream( &mut self, ) -> Result<impl TryStream<Item = Event<std::ffi::OsString>, Error = Error> + '_, Error> { Inotify::init() .and_then(|mut inotify| { inoti

我正在尝试包装一个INotify
事件流,但我不是很成功:

pub fn doc_stream(
    &mut self,
) -> Result<impl TryStream<Item = Event<std::ffi::OsString>, Error = Error> + '_, Error> {
    Inotify::init()
        .and_then(|mut inotify| {
            inotify
                .add_watch(
                    self.path.clone(),
                    WatchMask::MODIFY | WatchMask::CREATE | WatchMask::DELETE,
                )
                .map(|_| inotify)
        })
        .context(INotifyError)
        .and_then(move |mut inotify| {
            inotify
                .event_stream(&mut self.buffer[..])
                .context(INotifyError)
                .map(|ts| ts.context(INotifyError))
        })
}
返回验证

impl Stream<Item = Result<Event<std::ffi::OsString>, io::Error>> + '_,
impl Stream+”,
但没有证实

impl TryStream<Item = Event<std::ffi::OsString>, Error = io::Error> + '_,
impl TryStream+”,

Ok
而不是TryStream中的
项将解决问题。啊

很难回答你的问题,因为它没有包含一个。我们无法说出代码中存在哪些板条箱(及其版本)、类型、特征、字段等。如果您试图重现您的错误(如果可能的话),或者在全新的货运项目中,那么我们将更容易帮助您,然后您的问题将包括附加信息。您可以使用以下方法减少在此处发布的原始代码。谢谢
impl TryStream<Item = Event<std::ffi::OsString>, Error = io::Error> + '_,