ref: f6e16f0c9f8d68a66c279059e4185d79a5b665a0
dir: /lib/http/server.myr/
use std use "types" pkg http = const announce : (ds : byte[:] -> std.result(server#, err)) const shutdown : (srv : server# -> void) const waitconn : (srv : server# -> std.result(std.fd, err)) // const readmsg : (srv : server# -> std.option(req#, err)) // const writemsg : (srv : server# -> std.option(req#, err)) // const writehdr : (srv : server# -> std.option(req#, err)) ;; const announce = {ds var afd match std.announce(ds) | `std.Ok f: afd = f | `std.Err e: -> `std.Err `Econn ;; match std.listen(afd) | `std.Err e: -> `std.Err `Econn | `std.Ok lfd: std.close(afd) -> `std.Ok std.mk([.lfd=lfd]) ;; } const shutdown = {srv std.close(srv.lfd) } const waitconn = {srv match std.accept(srv.lfd) | `std.Ok afd: -> `std.Ok afd | `std.Err e: -> `std.Err `Econn ;; }