ref: e5b424be893e7f771456a548ab66e1bcb7ed50d3
dir: /lib/bio/test/bio-read.myr/
use std use bio const main = { var f /* Must be bigger than a bio buffer (ie, > 64k) */ var buf : byte[64*1024] var b match bio.open("data/datafile", bio.Rd) | `std.Ok bio: f = bio | `std.Err m: std.fatal("Unable to open data file: {}\n", m) ;; /* read a 4 byte chunk j*/ b = r(f, buf[:4]) std.write(1, b) std.write(1, "\n") /* read the next 32 bytes */ b = r(f, buf[:32]) std.write(1, b) std.write(1, "\n") /* read a 64k chunk */ b = r(f, buf[:]) std.write(1, b) std.write(1, "\n") /* read to EOF */ b = r(f, buf[:]) std.write(1, b) std.write(1, "\n") /* and fail */ b = r(f, buf[:]) bio.close(f) } const r = {f, buf match bio.read(f, buf) | `bio.Ok b: -> b | `bio.Eof: std.put("eof\n") -> "" | `bio.Err e: std.put("err\n") -> "" ;; }