def draw
near-v-framework@0.4.0.0 · domain/architecture/view/effects.bend:10
import near-v-framework@0.4.0.0/domain/architecture/view/effects.bend as Effects
import Base
import near-v-framework@0.4.0.0/domain/architecture/system/effs/io.bend as X
import near-v-framework@0.4.0.0/domain/architecture/type.bend as A
import near-v-framework@0.4.0.0/domain/architecture/view/type.bend as Vw
import near-v-framework@0.4.0.0/domain/architecture/view/ops.bend as VO
10def draw(+a: A.Architecture, +dir: String, vs: List<&2, Vw.Named>) -> IO(Unit):
11 match vs:
12 case []:
13 IO.pure(Unit, Unit{})
14 case v <> rest:
15 match v:
16 case Vw.Named{+name, view}:
17 do IO<Unit>:
18 X.write(dir ++ "/" ++ name ++ ".d2", VO.d2(a, view))
19 ok : Bool <- X.succeeds("d2", ["--layout", "elk", "--pad", "40", dir ++ "/" ++ name ++ ".d2", dir ++ "/" ++ name ++ ".png"])
20 IO.print(name ++ ": " ++ Bool.pick(String, ok, "drawn", "d2 failed"))
21 draw(a, dir, rest)