1 个不稳定版本
0.1.0 | 2020年7月20日 |
---|
#2994 在 Rust 模式
9KB
109 行
DoublySure
使用类型来确保你确实、肯定、双倍确定
开发状态:alpha
描述
用户会收到提示,以确保他们想要执行破坏性操作,开发者为什么不应该呢?Rust 充满了安全和安全的考虑,保护代码免受自身的影响。但是,关于保护代码免受我们这些编写代码的开发者的影响呢?破坏性和昂贵的操作通常只是 .delete()
之遥。
DoublySure 希望通过提供一个单一的类型 AreYouSure
和一个宏 make_sure
来转换数据和函数到它。 make_sure
还将延迟函数调用,以便 .delete()
不会立即被调用。
当你遇到一个 AreYouSure
实例时,你可以调用 .yes_i_am_sure()
,这将返回内部值或运行延迟的函数调用,或者你可以说 .no_i_am_not_sure()
,这将丢弃数据而不调用延迟的函数。
用例
在可能执行危险操作且对此几乎没有阻力的情况下,双保险存在是为了让程序员停下来思考“这是否是我想要做的?”,并提供程序性的第二次机会来说不。
也请勿滥用此 crate 提供的函数调用延迟机制。那只会让我们两个都感到悲伤。
替代方案
- Rust 内置的
Result
和Option
类型。 - 延迟执行的未来
待办事项
- 调查使用 Futures 作为延迟执行的方式。