def payload.result
mylsm-lsm-store@0.6.0.1 · src/coordinator/Io.bend:510
import mylsm-lsm-store@0.6.0.1/src/coordinator/Io.bend as Io
import Base
import mylsm-lsm-store@0.6.0.1/src/coordinator/Protocol.bend as Protocol
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
510def payload.result(
511 header: Bytes.Bytes,
512 pair: File & Result<&1, &1, U32 & String, ExactResult>,
513 max_payload: Nat
514) -> IO(File & Result<&1, &1, Error, Protocol.Request>):
515 match pair:
516 case (file, Fail{(code, message)}):
517 IO.pure(File & Result<&1, &1, Error, Protocol.Request>,
518 (file, Fail{host.error(code, message)}))
519 case (file, Done{ExactResult{bytes, complete}}):
520 match complete:
521 case False{}:
522 IO.pure(File & Result<&1, &1, Error, Protocol.Request>,
523 (file, Fail{Truncated{}}))
524 case True{}:
525 IO.pure(File & Result<&1, &1, Error, Protocol.Request>,
526 frame.result(file, Protocol.decode(Bytes.concat([header, bytes]),
527 max_payload)))