ref: f9b54e1fcf403c9c8386133f1482b2fc315e8ae1
dir: /lib/std/putint.myr/
use "assert.use"
use "types.use"
pkg std =
generic putle64 : (buf : byte[:], v : @a::(numeric,integral) -> size)
generic putbe64 : (buf : byte[:], v : @a::(numeric,integral) -> size)
generic putle32 : (buf : byte[:], v : @a::(numeric,integral) -> size)
generic putbe32 : (buf : byte[:], v : @a::(numeric,integral) -> size)
generic putle16 : (buf : byte[:], v : @a::(numeric,integral) -> size)
generic putbe16 : (buf : byte[:], v : @a::(numeric,integral) -> size)
generic putle8 : (buf : byte[:], v : @a::(numeric,integral) -> size)
generic putbe8 : (buf : byte[:], v : @a::(numeric,integral) -> size)
;;
generic putle64 = {buf, v; -> putle(buf, v castto(uint64), 8)}
generic putbe64 = {buf, v; -> putbe(buf, v castto(uint64), 8)}
generic putle32 = {buf, v; -> putle(buf, v castto(uint64), 4)}
generic putbe32 = {buf, v; -> putbe(buf, v castto(uint64), 4)}
generic putle16 = {buf, v; -> putle(buf, v castto(uint64), 2)}
generic putbe16 = {buf, v; -> putbe(buf, v castto(uint64), 2)}
generic putle8 = {buf, v; -> putle(buf, v castto(uint64), 1)}
generic putbe8 = {buf, v; -> putbe(buf, v castto(uint64), 1)}
const putbe = {buf, val, n
var k
assert(buf.len >= n, "buffer too small")
for var i = 0; i < n; i++
k = val >> (8*(n-i-1))
buf[i] = (k & 0xff) castto(byte)
;;
-> n castto(size)
}
const putle = {buf, val, n
assert(buf.len >= n, "buffer too small")
for var i = 0; i < n; i++
buf[i] = (val & 0xff) castto(byte)
val >>= 8
;;
-> n castto(size)
}