Rust 如何理解FusedFuture

Rust 如何理解FusedFuture,rust,async-await,future,Rust,Async Await,Future,最近,我正在阅读repo中的源代码。有些rs文件中充满了我不熟悉的难以理解的异步语法。特别是关于FusedFuture。示例文件: 根据,我的理解是,我们可以将未来转换为融合未来,然后反复多次轮询它。除此之外,我在fusefuture和下面的示例中找到了一个名为的函数 创建一个已终止的新保险丝包装未来。 这在与循环和选择组合时非常有用!宏,它绕过终止的期货 let(发送方,mut流)=mpsc::unbounded(); //向流中发送一些消息 sender.unbounded_send((

最近,我正在阅读repo中的源代码。有些rs文件中充满了我不熟悉的难以理解的异步语法。特别是关于
FusedFuture
。示例文件:

  • 根据,我的理解是,我们可以将
    未来
    转换为
    融合未来
    ,然后反复多次轮询它。除此之外,我在
    fusefuture
    和下面的示例中找到了一个名为的函数

    创建一个已终止的新保险丝包装未来。 这在与循环和选择组合时非常有用!宏,它绕过终止的期货

    let(发送方,mut流)=mpsc::unbounded();
    //向流中发送一些消息
    sender.unbounded_send(()).unwrap();
    sender.unbounded_send(()).unwrap();
    投递(发送方);
    //使用'Fuse::terminated()`创建已终止的未来
    //稍后可能会实例化。
    //熊:我们必须在这里终止()才能使用select!?
    让foo_printer=Fuse::terminated();
    别动!(福佑打印机);
    环路{
    选择{
    _=foo_printer=>{},
    ()=流。选择“下一步”\u some()=>{
    if!foo_printer.is_terminated(){
    println!(“Foo已经被打印了!”);
    }否则{
    //熊:这里我们重置了foo_打印机的指针值?
    foo_printer.set(异步{
    //执行其他一些异步操作
    println!(“从'foo_printer'future'打印foo”);
    }.fuse());
    }
    },
    complete=>break,/`foo_printer`终止,流结束
    }
    }
    
    我无法理解何时使用此功能以及如何将其与select!结合使用!。有人能帮我更容易地理解它吗?或者有更好的文档或例子说明这种用法吗

    我发现的一些帖子可能很有用:

    有一个非常有用的方法!