def answer

ezx@1.11.0.0 · src/fetch/run.bend:42

import ezx@1.11.0.0/src/fetch/run.bend as Run
import Base
import ezx@1.11.0.0/src/io/file.bend as F
import ezx@1.11.0.0/src/lock/run.bend as Run
import ezx@1.11.0.0/src/lock/world.bend as W
import ezx@1.11.0.0/src/lock/up.bend as Up
import ezx@1.11.0.0/src/fetch/world.bend as FW

42# one question, answered
43def answer(+lib: String, ask: FW.Ask) -> IO(FW.Answer):
44  match ask:
45    case FW.Laid{hash}:
46      do IO<FW.Answer>:
47        a : W.Answer <- laid(lib, hash)
48        return FW.Read{a}
49    case FW.Git{_hash, q}:
50      do IO<FW.Answer>:
51        a : Up.Answer <- Run.answer.up(lib, q)
52        return FW.Said{a}
53    case FW.Hub{q}:
54      do IO<FW.Answer>:
55        a : W.Answer <- Run.answer(lib, q)
56        return FW.Read{a}
57    case FW.Named{nv}:
58      do IO<FW.Answer>:
59        m : Maybe<&2, String> <- F.read(lib ++ "/names/" ++ nv)
60        return FW.Held{m}
61    case FW.Tree{_hash, _entry}:
62      do IO<FW.Answer>:
63        l : W.Listing <- Run.read.listing()
64        return FW.Seen{l}

Uses (16)

Used by (1)