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