def assign_word

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

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/dynamic_array.bend as DE
import bend-collections@1.0.0.0/src/containers/types/bitlist.bend as E

87# Rewrite bit i of its word (the word read is r); the list gets length n.
88def assign_word(+i: Nat, +v: Bool, +lim: Maybe<&2, Nat>, +n: Nat, r: D.DynArray<&2, U32> & Result<&2, &2, DE.Error, U32>) -> Bitlist & Result<&2, &2, E.Error, Unit>:
89  match r:
90    case Tuple{w, Done{+x}}:
91      assign_set(lim, n, D.set(U32, w, B.wordix(i), B.word_put(v, x, B.bitix(i))))
92    case Tuple{w, Fail{e}}:
93      (BL{lim, n, w}, Fail{E.IndexOutOfRange{}})

Uses (17)

Used by (2)