Bits.decode.hit: def of bend-kit-bits@0.1.0.1 Import: import bend-kit-bits@0.1.0.1/bits.bend as Bits Lines 297-303 of bend-kit-bits@0.1.0.1/bits.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-bits@0.1.0.1/bits.bend&start_line=297&end_line=303 import Base # Bits past the end may be garbage in w: a code's entry repeats over every suffix, so only # its own len bits pick it, and len <= left keeps them inside the stream. def decode.hit(+msb: Bool, +max: U32, +len: U32, +pos: U32, +left: U32, buf: Array, r: Array & U32) -> Huff & Reader & Maybe<&2, U32>: (t, +e) = r +l = (e .&. 31 : U32) +ok = Bool.and(U32.is_ne(l, 0), U32.is_le(l, left)) (Huff{msb, max, t}, Reader{len, buf, Bool.pick(U32, ok, (pos + l : U32), pos)}, Bool.pick(Maybe<&2, U32>, ok, Some{U32.shrn(e, 5n)}, None{})) Uses (15): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.pick https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Sigma https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_le https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_ne https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shrn https://jend.leeeet.dev/definition.txt?path=bend-kit-bits@0.1.0.1/bits.bend&name=Huff https://jend.leeeet.dev/definition.txt?path=bend-kit-bits@0.1.0.1/bits.bend&name=Reader