huffman.bend checks
raw source on the hub · import bend-kit-http2@0.1.1.0/huffman.bend as Huffman
RFC 7541 Appendix B Huffman alphabet and streaming codec.
2 imports
import Base import bend-kit-bytes@0.3.1.0/bytes.bend as Bytes
Types
type Code source · line 5 · raw
Data
Code@bits:U32 -> @width:U32 -> Code
type Builder source · line 1158 · raw
Type
Builder@bytes:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @at:U32 -> @partial:U32 -> @bits:U32 -> Builder
type Decoder source · line 1216 · raw
Data
Decoder@bits:U32 -> @width:U32 -> @rev:String -> Decoder
Definitions
def code source · line 8 · raw
@+octet:U32 -> Code
def width.of source · line 527 · raw
@c:Code -> U32
def width source · line 532 · raw
@+octet:U32 -> U32
def symbol source · line 535 · raw
@+width:U32 -> @+bits:U32 -> Maybe<&2, U32>
def size.valid source · line 1138 · raw
@ok:Bool -> @+total:U32 -> @+n:U32 -> Maybe<&2, U32>
def size.one source · line 1144 · raw
@+octet:U32 -> @+total:U32 -> Maybe<&2, U32>
def size source · line 1149 · raw
@s:String -> @+total:U32 -> Maybe<&2, U32>
def emit.full source · line 1161 · raw
@full:Bool -> @out:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @+at:U32 -> @+partial:U32 -> @+bits:U32 -> Builder
def emit.bit source · line 1168 · raw
@+bit:U32 -> @st:Builder -> Builder
def emit.bits source · line 1172 · raw
@n:Nat -> @+code:U32 -> @st:Builder -> Builder
def emit.code source · line 1180 · raw
@c:Code -> @st:Builder -> Builder
def encode.go source · line 1185 · raw
@s:String -> @st:Builder -> Builder
def encode.last source · line 1192 · raw
@more:Bool -> @out:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @+at:U32 -> @+partial:U32 -> @+bits:U32 -> 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes
def encode.finish source · line 1199 · raw
@st:Builder -> 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes
def encode.ready source · line 1204 · raw
@s:String -> @m:Maybe<&2, U32> -> Maybe<&1, 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes>
def encode source · line 1213 · raw
@+s:String -> Maybe<&1, 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes>
HPACK text is a byte string: code points above 255 are rejected.
def decode.found source · line 1219 · raw
@+octet:U32 -> @rev:String -> Maybe<&2, Decoder>
def decode.pending source · line 1226 · raw
@ok:Bool -> @+bits:U32 -> @+width:U32 -> @rev:String -> Maybe<&2, Decoder>
def decode.symbol source · line 1232 · raw
@m:Maybe<&2, U32> -> @+bits:U32 -> @+width:U32 -> @rev:String -> Maybe<&2, Decoder>
def decode.bit source · line 1240 · raw
@d:Decoder -> @+bit:U32 -> Maybe<&2, Decoder>
def decode.step source · line 1246 · raw
@n:Nat -> @+byte:U32 -> @d:Decoder -> Maybe<&2, Decoder>
def with_number.got source · line 1256 · raw
@-R:Type -> @m:Maybe<&2, U32> -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @k:(@_:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @_:U32 -> R) -> R
def with_number source · line 1262 · raw
@-R:Type -> @r:Pair(0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes, Maybe<&2, U32>) -> @k:(@_:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @_:U32 -> R) -> R
def decode.go source · line 1267 · raw
@n:Nat -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @+at:U32 -> @d:Decoder -> Maybe<&2, Decoder>
def decode.tail source · line 1277 · raw
@ok:Bool -> @rev:String -> Maybe<&2, String>
def decode.finish source · line 1284 · raw
@m:Maybe<&2, Decoder> -> Maybe<&2, String>
def decode source · line 1291 · raw
@b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Maybe<&2, String>