Http2.client.headers.go: def of bend-kit-http2@0.4.0.0 Import: import bend-kit-http2@0.4.0.0/http2.bend as Http2 Lines 360-376 of bend-kit-http2@0.4.0.0/http2.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-http2@0.4.0.0/http2.bend&start_line=360&end_line=376 import Base import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes def client.headers.go(n: Nat, +first: Bool, +end_stream: Bool, +id: U32, +max: U32, block: Bytes.Bytes, rev: List<&1, Bytes.Bytes>) -> Maybe<&1, List<&1, Bytes.Bytes>>: match n: case 0n: None{} case 1n+p: match block: case Bytes.Bytes{0, buf}: client.headers.empty(first, end_stream, id, max, rev) case Bytes.Bytes{+len, buf}: +take = Bool.pick(U32, U32.is_le(len, max), len, max) +last = U32.is_le(len, max) with_slice(Maybe<&1, List<&1, Bytes.Bytes>>, Bytes.slice(Bytes.Bytes{len, buf}, 0, take), whole => part => with_slice(Maybe<&1, List<&1, Bytes.Bytes>>, Bytes.slice(whole, take, (len - take : U32)), unused => rest => Maybe.bind(&1, Bytes.Bytes, List<&1, Bytes.Bytes>, client.frame(encode(max, Frame{Bool.pick(U32, first, 1, 9), (Bool.pick(U32, last, 4, 0) + Bool.pick(U32, Bool.and(first, end_stream), 1, 0) : U32), id, part})), packet => client.headers.go(p, False{}, end_stream, id, max, rest, Con{packet, rev})))) Uses (20): 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=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe.bind https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat 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.is_le https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.sub https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.Con https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Word.Nil https://jend.leeeet.dev/definition.txt?path=bend-kit-bytes@0.3.3.0/bytes.bend&name=Bytes https://jend.leeeet.dev/definition.txt?path=bend-kit-bytes@0.3.3.0/bytes.bend&name=slice https://jend.leeeet.dev/definition.txt?path=bend-kit-http2@0.4.0.0/http2.bend&name=Frame https://jend.leeeet.dev/definition.txt?path=bend-kit-http2@0.4.0.0/http2.bend&name=client.frame https://jend.leeeet.dev/definition.txt?path=bend-kit-http2@0.4.0.0/http2.bend&name=client.headers.empty https://jend.leeeet.dev/definition.txt?path=bend-kit-http2@0.4.0.0/http2.bend&name=encode https://jend.leeeet.dev/definition.txt?path=bend-kit-http2@0.4.0.0/http2.bend&name=with_slice