ref: cb85a03cb45a25936ce0afaa17651636ca566606
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)
}