def open.tail

bend-kit-journal@0.3.1.0 · journal.bend:321

import bend-kit-journal@0.3.1.0/journal.bend as Journal
import Base

321def open.tail(t: Tail, file: File, +max: U32, +pos: U32, -A: Type, acc: A) -> IO(Result<&1, &1, U32 & String, Journal & A>):
322  match t:
323    case Clean{}:
324      do IO<Result<&1, &1, U32 & String, Journal & A>>:
325        return Done{(Journal{file, max, pos, True{}}, acc)}
326    case Torn{}:
327      do IO<Result<&1, &1, U32 & String, Journal & A>>:
328        r : File & Result<&1, &1, U32 & String, Unit> <- truncate(file, pos)
329        open.cut(r, max, pos, A, acc)
330    case Corrupt{why}:
331      do IO<Result<&1, &1, U32 & String, Journal & A>>:
332        File.close(file)
333        return Fail{(22, "journal: corrupt frame at offset " ++ U32.show(pos) ++ ": " ++ why)}

Uses (18)

Used by (1)