def search_loop

bend-collections@1.0.0.0 · src/containers/internal/intrusive_list.bend:198

import bend-collections@1.0.0.0/src/containers/internal/intrusive_list.bend as IntrusiveList
import Base
import bend-collections@1.0.0.0/src/containers/types/intrusive_doubly_linked_list.bend as E

198def search_loop(~S: Type, ~N: Data, ~V: Data, ~C: Data, ~next: S -> N -> S & Maybe<&2, N>, ~value: S -> N -> S & V, ~pred: S -> C -> V -> S & Bool, +fuel: Nat, +c: C, r: S & E.Search<N>) -> S & Result<&2, &1, E.Error, Maybe<&2, N>>:
199  match fuel r:
200    case _ Tuple{s, E.Found{node}}: (s, Done{Some{node}})
201    case _ Tuple{s, E.Seeking{None{}}}: (s, Done{None{}})
202    case 0n Tuple{s, E.Seeking{Some{node}}}: (s, Fail{E.LimitExceeded{}})
203    case 1n+p Tuple{s, E.Seeking{Some{node}}}:
204      search_loop(~S, ~N, ~V, ~C, ~next, ~value, ~pred, p, c, search_step(~S, ~N, ~V, ~C, ~next, ~value, ~pred, s, node, c))

Uses (9)

Used by (1)