def held.pick

cswap-bend-cli@0.1.0.0 · lock.bend:46

import cswap-bend-cli@0.1.0.0/lock.bend as Lock
import Base
import cswap-bend-cli@0.1.0.0/fs.bend as Fs

46def held.pick(f: File, r: Fs.Res(Bool)) -> IO(Fs.Res(Maybe<&1, File>)):
47  match r:
48    case Fail{e}:
49      IO.bind(Unit, Fs.Res(Maybe<&1, File>), File.close(f), u => IO.pure(Fs.Res(Maybe<&1, File>), Fail{e}))
50    case Done{True{}}:
51      IO.pure(Fs.Res(Maybe<&1, File>), Done{Some{f}})
52    case Done{False{}}:
53      IO.bind(Unit, Fs.Res(Maybe<&1, File>), File.close(f), u => IO.pure(Fs.Res(Maybe<&1, File>), Done{None{}}))

Uses (10)

Used by (1)