This small PPX rewriter allows you to write literals for some of stdint's types using single-character suffixes on integers:
u
denotes anuint8
U
denotes anuint16
i
denotes anuint32
I
denotes anuint64
w
denotes anuint128
s
denotes anint8
S
denotes anint16
l
denotes anint32
(default behavior in OCaml)L
denotes anint64
(default behavior in OCaml)W
denotes anint128
Run opam install stdint-literals
Add stdint-literals
in your dune
file as follows:
(executable
(name example)
(preprocess (pps stdint-literals))
(libraries stdint))
let simple_literals =
let i8 = 42u in
Format.printf "%a\n" Stdint.Uint8.printer i8 ;
let i16 = 42U in
Format.printf "%a\n" Stdint.Uint16.printer i16 ;
let s8 = 42s in
Format.printf "%a\n" Stdint.Int8.printer s8 ;
let s16 = 42S in
Format.printf "%a\n" Stdint.Int16.printer s16
let hex_literals =
Format.printf "%a\n" Stdint.Uint16.printer_hex Stdint.Uint16.(0xDDAAU + 0xAADDU)
Of course, this also work on hexadecimal (or octal) literals.