propane:发电机 源码
丙烷-锈产生器 丙烷是不稳定发生器功能的薄包装,允许用户创建自由函数作为发生器。它为发电机的设计提出了一个特殊的想法。为什么今天的发电机仍然不稳定的很大一部分原因是这些设计问题仍未决定。 语法如下所示: #[propane::generator] fn foo () -> i32 { for n in 0i32 .. 10 { yield n; } } 因为它是一个宏,所以它不能像本地语言功能那样工作,并且错误消息也更糟。 设计决策 Propane旨在允许用户编写生成器以实现迭代器。因此,其生成器在某些重要方面受到限制。这些是丙烷的故意设计限制(也就是说,这些限制不是由于错误而引起的,并非旨在解除): 丙烷生成器成为返回impl Iterator的函数; iterator接口是用户可以使用生成器的返回类型的唯一接口。 丙烷发生器只能返回() ,它不能产生一