| cue eval -ic bound.cue |
| cmp stdout expect-stdout-cue |
| |
| -- frontmatter.toml -- |
| title = "Predefined Bounds" |
| description = "" |
| |
| -- text.md -- |
| CUE numbers have arbitrary precision. |
| Also there is no unsigned integer type. |
| |
| CUE defines the following predefined identifiers to restrict the bounds of |
| integers to common values. |
| |
| ``` |
| uint >=0 |
| uint8 >=0 & <=255 |
| int8 >=-128 & <=127 |
| uint16 >=0 & <=65536 |
| int16 >=-32_768 & <=32_767 |
| rune >=0 & <=0x10FFFF |
| uint32 >=0 & <=4_294_967_296 |
| int32 >=-2_147_483_648 & <=2_147_483_647 |
| uint64 >=0 & <=18_446_744_073_709_551_615 |
| int64 >=-9_223_372_036_854_775_808 & <=9_223_372_036_854_775_807 |
| int128 >=-170_141_183_460_469_231_731_687_303_715_884_105_728 & |
| <=170_141_183_460_469_231_731_687_303_715_884_105_727 |
| uint128 >=0 & <=340_282_366_920_938_463_463_374_607_431_768_211_455 |
| ``` |
| |
| -- bound.cue -- |
| positive :: uint |
| byte :: uint8 |
| word :: int32 |
| |
| a: positive & -1 |
| b: byte & 128 |
| c: word & 2_000_000_000 |
| |
| -- expect-stdout-cue -- |
| a: _|_ // invalid value -1 (out of bound int & >=0) |
| b: 128 |
| c: 2000000000 |