ref: c333a410cae728c14092819fbad5bdffb7530e6c
dir: /lib/std/readall.myr/
use "errno"
use "result"
use "option"
use "syswrap"
use "types"
pkg std =
const readall : (fd : fd, dst : byte[:] -> result(size, errno))
;;
const readall = {fd, dst
var sz
sz = dst.len
while dst.len != 0
match std.read(fd, dst)
| `Ok 0:
break
| `Ok n:
dst = dst[n:]
| `Err e:
-> `Err e
;;
;;
-> `Ok sz - dst.len
}