def header.result
mylsm-lsm-store@0.6.0.1 · src/coordinator/Io.bend:583
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/ByteMemTable.bend as ByteMemTable
import mylsm-lsm-store@0.6.0.1/src/coordinator/Protocol.bend as Protocol
583def header.result(
584 pair: File & Result<&1, &1, U32 & String, ExactResult>,
585 max_payload: Nat
586) -> IO(File & Result<&1, &1, Error, Protocol.Request>):
587 match pair:
588 case (file, Fail{(code, message)}):
589 IO.pure(File & Result<&1, &1, Error, Protocol.Request>,
590 (file, Fail{host.error(code, message)}))
591 case (file, Done{ExactResult{bytes, complete}}):
592 match complete:
593 case False{}:
594 IO.pure(File & Result<&1, &1, Error, Protocol.Request>,
595 (file, Fail{Truncated{}}))
596 case True{}:
597 header.cloned(file, ByteMemTable.bytes.clone(bytes), max_payload)