ref: fdafa085a245d4f48f84c6875a6b7cb89b8b5c6c
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.Fail m: std.fatal("Unable to open data file: {}", 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) | `std.Some b: -> b | `std.None: std.put("eof\n") -> "" ;; }