def zeros.best

bend-kit-netip@0.1.0.0 · netip.bend:290

import bend-kit-netip@0.1.0.0/netip.bend as Netip
import Base

290# Keep the first run when two longest zero runs tie.
291def zeros.best(xs: List<&2, U32>, +i: U32, +run: U32, +start: U32, +best: U32, +length: U32) -> U32 & U32:
292  match xs:
293    case Nil{}:
294      (best, length)
295    case Con{h, t}:
296      +next = Bool.pick(U32, U32.is_zero(h), (run + 1 : U32), 0)
297      +begin = Bool.pick(U32, U32.is_zero(run), i, start)
298      +longer = U32.is_gt(next, length)
299      zeros.best(t, (i + 1 : U32), next, begin, Bool.pick(U32, longer, begin, best),
300        Bool.pick(U32, longer, next, length))

Uses (8)

Used by (1)