def write_field
bend-kit-protobuf@0.2.0.0 · protobuf.bend:389
import bend-kit-protobuf@0.2.0.0/protobuf.bend as Protobuf
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as B
389def write_field(number: U32, v: Value, out: B.Bytes, +max_size: U32) -> Result<&2, &1, Error, B.Bytes>:
390 match v:
391 case Varint{w}:
392 do Result<&2, &1, Error, B.Bytes>:
393 next : B.Bytes <- write_tag(number, 0, out, max_size)
394 write_value(Varint{w}, next, max_size)
395 case Fixed64{w}:
396 do Result<&2, &1, Error, B.Bytes>:
397 next : B.Bytes <- write_tag(number, 1, out, max_size)
398 write_value(Fixed64{w}, next, max_size)
399 case Blob{b}:
400 do Result<&2, &1, Error, B.Bytes>:
401 next : B.Bytes <- write_tag(number, 2, out, max_size)
402 write_value(Blob{b}, next, max_size)
403 case Fixed32{w}:
404 do Result<&2, &1, Error, B.Bytes>:
405 next : B.Bytes <- write_tag(number, 5, out, max_size)
406 write_value(Fixed32{w}, next, max_size)
407 case Group{fields}:
408 Fail{Malformed{}}