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
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))