def packed_encode.go

bend-kit-protobuf@0.2.0.0 · protobuf.bend:526

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

526def packed_encode.go(values: List<&1, Value>, out: B.Bytes, +max_size: U32) -> Result<&2, &1, Error, B.Bytes>:
527  match values:
528    case Nil{}:
529      Done{out}
530    case Con{v, tail}:
531      match v:
532        case Varint{w}:
533          do Result<&2, &1, Error, B.Bytes>:
534            next : B.Bytes <- write_value(Varint{w}, out, max_size)
535            packed_encode.go(tail, next, max_size)
536        case Fixed32{w}:
537          do Result<&2, &1, Error, B.Bytes>:
538            next : B.Bytes <- write_value(Fixed32{w}, out, max_size)
539            packed_encode.go(tail, next, max_size)
540        case Fixed64{w}:
541          do Result<&2, &1, Error, B.Bytes>:
542            next : B.Bytes <- write_value(Fixed64{w}, out, max_size)
543            packed_encode.go(tail, next, max_size)
544        case Blob{b}:
545          Fail{Malformed{}}
546        case Group{fields}:
547          Fail{Malformed{}}

Uses (8)

Used by (1)