def advance
bend-collections-laws-crypto@1.0.0.0 · spec/crypto/blake/blake2b.bend:196
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/blake/blake2b.bend as Blake2b
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/blake/blake2b/types.bend as T
196
197def advance(c: T.Counter, +x: U32) -> T.Counter:
198 match c:
199 case T.C{c0,c1,c2,c3}:
200 +s0 = U32.add(c0,x)
201 +k0 = Bool.to_u32(U32.is_lt(s0,x))
202 +s1 = U32.add(c1,k0)
203 +k1 = Bool.to_u32(U32.is_lt(s1,k0))
204 +s2 = U32.add(c2,k1)
205 T.C{s0,s1,s2,U32.add(c3,Bool.to_u32(U32.is_lt(s2,k1)))}