def read.bytes

bendonnect-rpc@0.1.0.0 · src/pbjson.bend:566

import bendonnect-rpc@0.1.0.0/src/pbjson.bend as Pbjson
import Base
import bend-kit-encoding@0.4.0.0/encoding.bend as Enc
import bend-kit-json@0.6.1.1/json.bend as Json
import bendonnect-rpc@0.1.0.0/src/b64.bend as B64

566# Standard or URL-safe base64, padded or not.
567def read.bytes(v: Json.Val) -> Result<&2, &1, String, List<&2, U32>>:
568  match v:
569    case Json.Null{}:
570      Done{Nil{}}
571    case Json.Str{b}:
572      bytes.fin(B64.decode(Enc.utf8.decode(b)))
573    case Json.Flag{on}:
574      Fail{"expected a base64 string"}
575    case Json.Num{s}:
576      Fail{"expected a base64 string"}
577    case Json.Arr{xs}:
578      Fail{"expected a base64 string"}
579    case Json.Obj{kvs}:
580      Fail{"expected a base64 string"}

Uses (8)

Used by (1)