~/bend-docscommunity

http2.bend checks

raw source on the hub · import bend-kit-http2@0.1.0.0/http2.bend as Http2

RFC 9113 HTTP/2 frame codec over packed Bytes.

2 imports
import Base
import bend-kit-bytes@0.3.1.0/bytes.bend as Bytes

Types

type Frame source · line 5 · raw

Type

type Error source · line 8 · raw

Data

type Decode source · line 11 · raw

Type

type Checked source · line 16 · raw

Type

Definitions

def fail source · line 22 · raw

@+code:U32 -> @+connection:Bool -> @+stream:U32 -> Maybe<&2, Error>

Error codes from RFC 9113 §7: 1=PROTOCOL_ERROR, 3=FLOW_CONTROL_ERROR, 6=FRAME_SIZE_ERROR. A connection error uses stream 0.

def reject source · line 25 · raw

@bad:Bool -> @+code:U32 -> @+connection:Bool -> @+stream:U32 -> Maybe<&2, Error>

def first source · line 32 · raw

@m:Maybe<&2, Error> -> @n:Maybe<&2, Error> -> Maybe<&2, Error>

def number source · line 39 · raw

@m:Maybe<&2, U32> -> U32

def with_number source · line 46 · raw

@-R:Type -> @r:Pair(0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes, Maybe<&2, U32>) -> @k:(@_:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @_:U32 -> R) -> R

def with_slice source · line 50 · raw

@-R:Type -> @r:Pair(0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes, 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes) -> @k:(@_:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @_:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> R) -> R

def has source · line 54 · raw

@+flags:U32 -> @+bit:U32 -> Bool

def size.scope source · line 58 · raw

@+kind:U32 -> @+stream:U32 -> Bool

Field blocks, SETTINGS, and stream 0 make frame-size faults connection-wide.

def size.error source · line 71 · raw

@+kind:U32 -> @+stream:U32 -> Error

def size.reject source · line 75 · raw

@oversized:Bool -> @+kind:U32 -> @+stream:U32 -> Maybe<&2, Error>

def padding source · line 83 · raw

@+flags:U32 -> @+len:U32 -> @+fixed:U32 -> @+pad:U32 -> Bool

A PADDED payload must contain the pad-length octet and all the padding.

def setting source · line 86 · raw

@+id:U32 -> @+value:U32 -> Maybe<&2, Error>

def settings.go source · line 97 · raw

@n:Nat -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @+at:U32 -> @m:Maybe<&2, Error> -> Pair(0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes, Maybe<&2, Error>)

def rules source · line 106 · raw

@+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @+len:U32 -> @+pad:U32 -> @+promised:U32 -> @+value:U32 -> @m:Maybe<&2, Error> -> Maybe<&2, Error>

def checked source · line 148 · raw

@m:Maybe<&2, Error> -> @+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Checked

def with_settings source · line 155 · raw

@r:Pair(0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes, Maybe<&2, Error>) -> @+flags:U32 -> @+stream:U32 -> Checked

def inspect.settings source · line 159 · raw

@m:Maybe<&2, Error> -> @+flags:U32 -> @+stream:U32 -> @+len:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Checked

def inspect.promised source · line 166 · raw

@+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @+len:U32 -> @+pad:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Checked

def inspect.padded.if source · line 175 · raw

@padded:Bool -> @+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @+len:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Checked

def inspect.padded source · line 183 · raw

@+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @+len:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Checked

def inspect.detail source · line 186 · raw

@+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @+len:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Checked

def inspect.basic source · line 203 · raw

@m:Maybe<&2, Error> -> @+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @+len:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Checked

def inspect source · line 210 · raw

@max:U32 -> @+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Checked

def allowed source · line 219 · raw

@+kind:U32 -> U32

max is the peer's SETTINGS_MAX_FRAME_SIZE, initially 16384.

def encode.buffer source · line 244 · raw

@b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @src:Array<U32> -> @+len:U32 -> Result<&1, &1, Error, 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes>

def encode.flags source · line 248 · raw

@ok:Bool -> @+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @payload:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Result<&1, &1, Error, 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes>

def encode.checked source · line 256 · raw

@c:Checked -> Result<&1, &1, Error, 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes>

def encode source · line 262 · raw

@max:U32 -> @f:Frame -> Result<&1, &1, Error, 0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes>

def parse.result source · line 266 · raw

@c:Checked -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> @+len:U32 -> Decode

def parse.payload source · line 275 · raw

@max:U32 -> @+len:U32 -> @+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Decode

def parse.full source · line 279 · raw

@enough:Bool -> @max:U32 -> @+len:U32 -> @+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Decode

def parse.size source · line 286 · raw

@oversized:Bool -> @max:U32 -> @+len:U32 -> @+kind:U32 -> @+flags:U32 -> @+stream:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Decode

def parse.header source · line 294 · raw

@+max:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Decode

def parse.start source · line 301 · raw

@short:Bool -> @max:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Decode

def parse source · line 309 · raw

@max:U32 -> @b:0xb7603dcfa1d7f60d01e06c928738cc73/bytes.Bytes -> Decode

A partial header or payload returns Need with the original input intact.