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  }