_ 评论由: jare_
> 请注意,并非所有值都可以携带元数据(数字、字符串等),但这是个不错的想法。
这不是什么大问题,因为元数据将主要对 spec 工具的开发者直接有用。那些想用这个功能的可以绕过限制,通过包装基本类型。
对于最终用户 API,类似于 spec/explain(s/explain-data, s/explain-str..) 的情况会很好。
我将称之为 s/complexity,该函数接受一个规范并返回(在 s/complexity-data 的情况下)与原始规范相同形状的结构,用生成复杂性的数据填充(平均时间、尝试次数、mb 规范形式等)。它应该以一种合理的方式处理过于复杂的规范,即,不是抛出(如生成器那样),而是优先报告规格的哪个部分过于复杂以及各个元素的个体复杂性。