Advanced

接下来,我们将探讨dialogue_macro库中的两个高级特性:EnumAskerBuild特质。

EnumAsker 宏 EnumAsker正如其名,扩展了Asker功能以支持枚举类型的交互式输入。通过派生EnumAsker,可以轻松地为枚举类型定义一组选项,并在命令行中呈现给用户选择。这样,开发者无需手动处理枚举值的获取,而是在运行时自动根据用户的响应填充枚举字段。

EnumAsker修饰的枚举自动实现Build trait。

Build 特质 Build特质的设计目的是简化Asker接口的使用过程,特别是针对那些需要嵌套询问逻辑的情况。通过实现Build特质,子结构体或枚举能够拥有一个自包含的构建流程,只需调用.build()方法就能顺序执行所有的询问操作直至完成信息收集。这意味着不再需要分别调用每个字段对应的asker()方法以及最后的finish()方法来结束整个询问过程。对于具有嵌套结构的复杂用户输入场景,这一特质大大提升了代码的简洁性和可读性。所有作为子询问器使用的结构体都应该实现Build特质,以便于与顶层询问器进行整合。