fuse我在 Rust 生态系统中遇到了这个词:
slog::Fuse将错误推向恐慌。
FutureExt::Fuse“融合一个未来,这样民意调查一旦完成就不会再被召集。”
我知道 Linux 的 FUSE,一个用户空间文件系统。保险丝也是一种电气元件,当流过保险丝的电流过大时,保险丝就会进入开路状态。在硬件中,“熔断”描述了通过(历史上)通过硅的特定导线中的过电流熔断硅中的电路来将配置烘焙到硅中。
Rust 中的“保险丝”通常意味着什么?它的词源是什么?
我在 Rust 生态系统中找到的“fuse”最早的用法是Iterator::fuse,它在 1.0 之前的日子里被添加到标准库中。最初的文档Iterator::fuse说:
/// Creates an iterator that yields `None` forever after the underlying
/// iterator yields `None`. Random-access iterator behavior is not
/// affected, only single and double-ended iterator behavior.
Run Code Online (Sandbox Code Playgroud)
返回的迭代器上还有一个函数已被删除:
impl<T> Fuse<T> {
/// Resets the fuse such that the next call to .next() or .next_back() will
/// call the underlying iterator again even if it prevously returned None.
#[inline]
fn reset_fuse(&mut self) {
self.done = false
}
}
Run Code Online (Sandbox Code Playgroud)
这表明它Fuse类似于可复位的电保险丝。该名称与 FUSE 文件系统完全无关。
FutureExt::Fuse基本上Future相当于Iterator::Fuse. Rust 中对 s的支持Future远远晚于对Iterators 的支持。
这里的共同点是,一个fuse函数接受“一个能产生东西并且可以停止的东西”,并使它在停止后不再产生东西。
slog::Fuse不是“保险丝”一词的典型用法:该用法可能指的是炸弹的保险丝,它很容易被点燃(它使错误很容易点燃/使程序陷入恐慌)。如果您将其视为“一个事物产生一系列成功/失败,并接受失败并使其在失败后不再产生任何东西”,那么您可以将其与我之前所做的定义相匹配。添加它的提交没有提供任何有关其含义的提示。fuse
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |