| cue eval templates.cue |
| cmp stdout expect-stdout-cue |
| |
| -- frontmatter.toml -- |
| title = "Templates" |
| description = "" |
| |
| -- text.md -- |
| One of CUE's most powerful features is the ability |
| to specify optional fields in bulk. |
| This allows one to specify constraints, |
| or templates, |
| to be unified with each field of a struct. |
| |
| An optional field set is an expression in square brackets |
| to specify to which fields to apply a constraint |
| (currently only `string`, or all fields is supported). |
| Using an alias in the square brackets binds the |
| label of the matched field to the given identifier, |
| which can then be used within the template. |
| |
| -- templates.cue -- |
| // The following struct is unified with all elements in job. |
| // The name of each element is bound to Name and visible in the struct. |
| job: [Name=_]: { |
| name: Name |
| replicas: uint | *1 |
| command: string |
| } |
| |
| job: list: command: "ls" |
| |
| job: nginx: { |
| command: "nginx" |
| replicas: 2 |
| } |
| |
| -- expect-stdout-cue -- |
| job: { |
| list: { |
| name: "list" |
| replicas: 1 |
| command: "ls" |
| } |
| nginx: { |
| name: "nginx" |
| replicas: 2 |
| command: "nginx" |
| } |
| } |