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)))

Uses (19)

Used by (1)