ref: ec17d9295920ba33dee1fa5348bf35fca2b88665
dir: /lib/bio/puti.myr/
use std use "bio" pkg bio = /* unsigned big endian */ generic putbe8 : (f : file#, v : @a::(numeric,integral) -> std.result(std.size, err)) generic putbe16 : (f : file#, v : @a::(numeric,integral) -> std.result(std.size, err)) generic putbe32 : (f : file#, v : @a::(numeric,integral) -> std.result(std.size, err)) generic putbe64 : (f : file#, v : @a::(numeric,integral) -> std.result(std.size, err)) /* unsigned little endian */ generic putle8 : (f : file#, v : @a::(numeric,integral) -> std.result(std.size, err)) generic putle16 : (f : file#, v : @a::(numeric,integral) -> std.result(std.size, err)) generic putle32 : (f : file#, v : @a::(numeric,integral) -> std.result(std.size, err)) generic putle64 : (f : file#, v : @a::(numeric,integral) -> std.result(std.size, err)) ;; generic putbe8 = {f, v; -> putbe(f, (v : uint64), 1)} generic putbe16 = {f, v; -> putbe(f, (v : uint64), 2)} generic putbe32 = {f, v; -> putbe(f, (v : uint64), 4)} generic putbe64 = {f, v; -> putbe(f, (v : uint64), 8)} generic putle8 = {f, v; -> putle(f, (v : uint64), 1)} generic putle16 = {f, v; -> putle(f, (v : uint64), 2)} generic putle32 = {f, v; -> putle(f, (v : uint64), 4)} generic putle64 = {f, v; -> putle(f, (v : uint64), 8)} const putle = {f, v, n var buf : byte[8] match ensurewrite(f, n) | `std.Err e: -> `std.Err e | `std.Ok _: buf[0] = ((v >> 0) & 0xff : byte) buf[1] = ((v >> 8) & 0xff : byte) buf[2] = ((v >> 16) & 0xff : byte) buf[3] = ((v >> 24) & 0xff : byte) buf[4] = ((v >> 32) & 0xff : byte) buf[5] = ((v >> 40) & 0xff : byte) buf[6] = ((v >> 48) & 0xff : byte) buf[7] = ((v >> 56) & 0xff : byte) -> write(f, buf[:n]) ;; } const putbe = {f, v, n var buf : byte[8] match ensurewrite(f, n) | `std.Err e: -> `std.Err e | `std.Ok _: buf[0] = ((v >> 56) & 0xff : byte) buf[1] = ((v >> 48) & 0xff : byte) buf[2] = ((v >> 40) & 0xff : byte) buf[3] = ((v >> 32) & 0xff : byte) buf[4] = ((v >> 24) & 0xff : byte) buf[5] = ((v >> 16) & 0xff : byte) buf[6] = ((v >> 8) & 0xff : byte) buf[7] = ((v >> 0) & 0xff : byte) -> write(f, buf[8-n:]) ;; }