def read.opt
import bendonnect-rpc@0.1.0.0/src/pbjson.bend as Pbjsonimport Base
import bend-kit-json@0.6.1.1/json.bend as Json
603# Presence-aware read for optional scalars, oneof members and singular messages:
604# null/absent -> None, otherwise Some(read(v)).
605def read.opt(~T: Data, ~read: Json.Val -> Result<&2, &1, String, T>, v: Json.Val) -> Result<&2, &1, String, Maybe<&2, T>>:
606 match v:
607 case Json.Null{}:
608 Done{None{}}
609 case Json.Flag{on}:
610 opt.some(~T, ~read, Json.Flag{on})
611 case Json.Num{s}:
612 opt.some(~T, ~read, Json.Num{s})
613 case Json.Str{s}:
614 opt.some(~T, ~read, Json.Str{s})
615 case Json.Arr{xs}:
616 opt.some(~T, ~read, Json.Arr{xs})
617 case Json.Obj{kvs}:
618 opt.some(~T, ~read, Json.Obj{kvs})
Uses (5)
Used by (0)
No other definition uses this definition.