我正在玩 dhall,试图代表我在 dhall 中拥有的现有大型 yaml 文件。
具体来说,我正在尝试为大厅管道定义构建 dhall 类型和助手。定义大厅管道的部分 yaml 看起来像我在这里编写的 yaml。我列表中的每个资源都包含一个名称、一个类型和一个源,其结构完全取决于资源的类型。
没有详尽的资源列表供我定义,因为明天有人可能会创建一个新的资源,而且我不想每次第三方创建新的源类型时都更新我的类型。
我为此拥有的 dhall 也在这里,但我不确定我该如何代表source
。我曾考虑在我的类型中省略该字段并指示消费者使用 dhall 的//
运算符添加源,但随后很难将resource
s 嵌入 a[resource]
并仍然进行类型检查。
如何为包含非结构化字段的资源定义 dhall 类型。
resources:
- name: my-repo
type: git
source:
$some_unstructured_yaml
{ name : Text
, type : Text
, source : Optional ???
}