def recv.closed
bend-kit-websocket@0.4.0.0 · websocket.bend:1014
import bend-kit-websocket@0.4.0.0/websocket.bend as Websocket
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
1014def recv.closed(r: Result<&1, &1, U32 & String, U32 & Bytes.Bytes>, sock: Socket, +tls: Bool, +server: Bool, rest: Bytes.Cursor, partial: Partial, +max: U32, closing: Bool) -> IO(Conn & Result<&1, &1, U32 & String, Incoming>):
1015 match r:
1016 case Fail{e}:
1017 recv.fail(sock, tls, server, max, e)
1018 case Done{(+code, reason)}:
1019 match closing:
1020 case True{}:
1021 recv.out(sock, tls, server, rest, partial, max, True{}, Done{Closed{code, reason}})
1022 case False{}:
1023 echo = Bool.pick(Bytes.Bytes, U32.is_eq(code, 1005), Bytes.new(0), close.payload(code, Bytes.new(0)))
1024 do IO<Conn & Result<&1, &1, U32 & String, Incoming>>:
1025 s : Socket & Result<&1, &1, U32 & String, Unit> <- raw(server, sock, tls, True{}, 8, echo)
1026 recv.echoed(s, tls, server, rest, partial, max, code, reason)