mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 17:33:38 +00:00
Add predicates for reading multibyte integers from binary file streams. As
with the corresponding predicates for writing multibyte integers to binary file
streams, we provide versions for big-endian, little-endian and native byte
orders.
library/io.m:
Add a new type that represents possibly incomplete results when reading
from binary file streams.
Add the new predicates.
tests/hard_coded/Mmakefile:
tests/hard_coded/read_binary_{int,uint}{16,32,64}.{m,exp}:
Add tests of the new predicates.
37 lines
968 B
Plaintext
37 lines
968 B
Plaintext
================
|
|
Input: []
|
|
Result: EOF (read big-endian)
|
|
================
|
|
Input: [0u8]
|
|
Result: Incomplete ([0u8]) (read big-endian)
|
|
================
|
|
Input: [1u8, 0u8] (LE: 1) (BE: 256)
|
|
Result: 256u16 (read big-endian)
|
|
================
|
|
Input: [255u8, 0u8] (LE: 255) (BE: 65280)
|
|
Result: 65280u16 (read big-endian)
|
|
================
|
|
Input: []
|
|
Result: EOF (read little-endian)
|
|
================
|
|
Input: [0u8]
|
|
Result: Incomplete ([0u8]) (read little-endian)
|
|
================
|
|
Input: [1u8, 0u8] (LE: 1) (BE: 256)
|
|
Result: 1u16 (read little-endian)
|
|
================
|
|
Input: [255u8, 0u8] (LE: 255) (BE: 65280)
|
|
Result: 255u16 (read little-endian)
|
|
================
|
|
Input: []
|
|
Result: EOF (read native byte order)
|
|
================
|
|
Input: [0u8]
|
|
Result: Incomplete ([0u8]) (read native byte order)
|
|
================
|
|
Input: [1u8, 0u8] (LE: 1) (BE: 256)
|
|
Result: 1u16 (read native byte order)
|
|
================
|
|
Input: [255u8, 0u8] (LE: 255) (BE: 65280)
|
|
Result: 255u16 (read native byte order)
|