def encode

bend-kit-postgres@0.3.0.0 · codec.bend:179

import bend-kit-postgres@0.3.0.0/codec.bend as Codec
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes

179# The wire bytes of a frontend message.
180def encode(m: Front) -> Bytes.Bytes:
181  match m:
182    case Startup{ps}:
183      packet(Bytes.concat(Con{be32(196608), params.enc(ps)}))
184    case SSLRequest{}:
185      packet(be32(80877103))
186    case Password{t}:
187      frame(112, cstr.enc(t))
188    case SASLInitial{mech, d}:
189      frame(112, Bytes.append(cstr.enc(mech), value(Some{d})))
190    case SASLResponse{d}:
191      frame(112, d)
192    case Parse{n, q, oids}:
193      frame(80, Bytes.concat([cstr.enc(n), cstr.enc(q), n16(be32s(oids))]))
194    case Bind{p, s, fs, ps, rs}:
195      frame(66, Bytes.concat([cstr.enc(p), cstr.enc(s), n16(be16s(fs)), n16(values(ps)), n16(be16s(rs))]))
196    case Describe{+k, n}:
197      frame(68, Bytes.append(byte1(k), cstr.enc(n)))
198    case Execute{p, +max}:
199      frame(69, Bytes.append(cstr.enc(p), be32(max)))
200    case Sync{}:
201      frame(83, Bytes.new(0))
202    case CloseMsg{+k, n}:
203      frame(67, Bytes.append(byte1(k), cstr.enc(n)))
204    case Terminate{}:
205      frame(88, Bytes.new(0))

Uses (18)

Used by (4)