-- in.cue -- import "struct" minFields: { [string]: struct.MinFields(1) incomplete1: {} fail1: close({}) ok1: {a: 1} ok2: close({a: 1}) } maxFields: { [string]: struct.MaxFields(1) ok1: {} ok2: {a: 1} ok3: close({a: 1}) fail1: {a: 1, b: 2} } -- out/structs -- Errors: minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): ./in.cue:4:12 ./in.cue:4:29 ./in.cue:7:9 maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1): ./in.cue:13:12 ./in.cue:13:29 ./in.cue:19:9 Result: import "struct" minFields: { incomplete1: {} & struct.MinFields(1) fail1: _|_ // minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) ok1: { a: 1 } ok2: { a: 1 } } maxFields: { ok1: {} ok2: { a: 1 } ok3: { a: 1 } fail1: _|_ // maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1) }