def all.go
bend-kit-sigv4@0.11.0.1 · sigv4.bend:1182
import bend-kit-sigv4@0.11.0.1/sigv4.bend as Sigv4
import Base
1182
1183def all.go(f: Nat, +bucket: String, +prefix: String, +delim: String, +max: U32, objs: List<&2, Object>, pre: List<&2, String>,
1184 x: Client & Result<&1, &1, Err, Page>) -> IO(Client & Result<&1, &1, Err, Page>):
1185 match f:
1186 case 0n:
1187 (c, r) = x
1188 IO.pure(Client & Result<&1, &1, Err, Page>, (c, all.merge(objs, pre, r)))
1189 case 1n+g:
1190 (c, r) = x
1191 match r:
1192 case Fail{e}:
1193 IO.pure(Client & Result<&1, &1, Err, Page>, (c, Fail{e}))
1194 case Done{Page{os, ps, next}}:
1195 match next:
1196 case None{}:
1197 IO.pure(Client & Result<&1, &1, Err, Page>, (c, Done{Page{List.append(&2, Object, objs, os), List.append(&2, String, pre, ps), None{}}}))
1198 case Some{tok}:
1199 do IO<Client & Result<&1, &1, Err, Page>>:
1200 y : Client & Result<&1, &1, Err, Page> <- list(c, bucket, prefix, delim, max, Some{tok})
1201 all.go(g, bucket, prefix, delim, max, List.append(&2, Object, objs, os), List.append(&2, String, pre, ps), y)