def pop_bit

bend-collections@1.0.0.0 · src/containers/bitlist.bend:160

import bend-collections@1.0.0.0/src/containers/bitlist.bend as Bitlist
import Base
import bend-collections@1.0.0.0/src/containers/bitset.bend as B
import bend-collections@1.0.0.0/src/containers/dynamic_array.bend as D
import bend-collections@1.0.0.0/src/containers/types/bitlist.bend as E

160# The last bit b of word x: a set bit is cleared so the tail stays zero.
161def pop_bit(+lim: Maybe<&2, Nat>, +m: Nat, w: D.DynArray<&2, U32>, +x: U32, +b: Bool) -> Bitlist & Result<&2, &2, E.Error, Bool>:
162  match b:
163    case False{}:
164      (BL{lim, m, w}, Done{False{}})
165    case True{}:
166      pop_set(lim, m, D.set(U32, w, B.wordix(m), B.word_put(False{}, x, B.bitix(m))))

Uses (15)

Used by (1)