Advanced
接下来,我们将探讨dialogue_macro
库中的两个高级特性:EnumAsker
和Build
特质。
EnumAsker 宏
EnumAsker
正如其名,扩展了Asker
功能以支持枚举类型的交互式输入。通过派生EnumAsker
,可以轻松地为枚举类型定义一组选项,并在命令行中呈现给用户选择。这样,开发者无需手动处理枚举值的获取,而是在运行时自动根据用户的响应填充枚举字段。
EnumAsker
修饰的枚举自动实现Build
trait。
Build 特质
Build
特质的设计目的是简化Asker
接口的使用过程,特别是针对那些需要嵌套询问逻辑的情况。通过实现Build
特质,子结构体或枚举能够拥有一个自包含的构建流程,只需调用.build()
方法就能顺序执行所有的询问操作直至完成信息收集。这意味着不再需要分别调用每个字段对应的asker()
方法以及最后的finish()
方法来结束整个询问过程。对于具有嵌套结构的复杂用户输入场景,这一特质大大提升了代码的简洁性和可读性。所有作为子询问器使用的结构体都应该实现Build
特质,以便于与顶层询问器进行整合。