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{}}

Uses (8)

Used by (1)