github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/cue/testdata/disjunctions/operands.txtar (about) 1 # This file tests disjunctions used as operands. 2 3 -- in.cue -- 4 list: *[1] | [2] 5 condition: *true | false 6 num: *1 | 2 7 object: *{a: 1} | {a: 2} 8 9 forLoop: [ 10 for e in list { 11 "count: \(e)" 12 }, 13 ] 14 15 conditional: { 16 if condition { 17 a: 3 18 } 19 if num < 5 { 20 b: 3 21 } 22 } 23 24 selector: { 25 a: object.a 26 } 27 28 index: { 29 a: list[0] 30 } 31 32 binOp: { 33 a: num + 4 34 } 35 36 unaryOp: { 37 a: -num 38 } 39 -- out/eval -- 40 (struct){ 41 list: (list){ |(*(#list){ 42 0: (int){ 1 } 43 }, (#list){ 44 0: (int){ 2 } 45 }) } 46 condition: (bool){ |(*(bool){ true }, (bool){ false }) } 47 num: (int){ |(*(int){ 1 }, (int){ 2 }) } 48 object: (struct){ |(*(struct){ 49 a: (int){ 1 } 50 }, (struct){ 51 a: (int){ 2 } 52 }) } 53 forLoop: (#list){ 54 0: (string){ "count: 1" } 55 } 56 conditional: (struct){ 57 a: (int){ 3 } 58 b: (int){ 3 } 59 } 60 selector: (struct){ 61 a: (int){ 1 } 62 } 63 index: (struct){ 64 a: (int){ 1 } 65 } 66 binOp: (struct){ 67 a: (int){ 5 } 68 } 69 unaryOp: (struct){ 70 a: (int){ -1 } 71 } 72 } 73 -- out/compile -- 74 --- in.cue 75 { 76 list: (*[ 77 1, 78 ]|[ 79 2, 80 ]) 81 condition: (*true|false) 82 num: (*1|2) 83 object: (*{ 84 a: 1 85 }|{ 86 a: 2 87 }) 88 forLoop: [ 89 for _, e in 〈1;list〉 { 90 "count: \(〈1;e〉)" 91 }, 92 ] 93 conditional: { 94 if 〈1;condition〉 { 95 a: 3 96 } 97 if (〈1;num〉 < 5) { 98 b: 3 99 } 100 } 101 selector: { 102 a: 〈1;object〉.a 103 } 104 index: { 105 a: 〈1;list〉[0] 106 } 107 binOp: { 108 a: (〈1;num〉 + 4) 109 } 110 unaryOp: { 111 a: -〈1;num〉 112 } 113 }