ref: a57d9fd3e0a6dd268872ed89d6a41c723d909b2e
dir: /lib/bio/iter.myr/
use std use "bio" pkg bio = type lineiter = file# type chariter = file# impl iterable lineiter -> byte[:] impl iterable chariter -> char const byline : (f : file# -> lineiter) const bychar : (f : file# -> chariter) ;; const byline = {f -> (f : lineiter) } impl iterable lineiter -> byte[:] = __iternext__ = {itp, outp match bio.readln((itp# : file#)) | `Ok ln: outp# = ln -> true | `Eof: -> false | `Err _: -> false ;; } __iterfin__ = {itp, outp std.slfree(outp#) } ;; const bychar = {f -> (f : chariter) } impl iterable chariter -> char = __iternext__ = {itp, outp : char# match bio.getc((itp# : file#)) | `Ok c: outp# = c -> true | `Eof: -> false | `Err _: -> false ;; } __iterfin__ = {itp, outp } ;;