def codec_size
bendvy-ecs-core@0.1.0.3 · decode_size.bend:4
import bendvy-ecs-core@0.1.0.3/decode_size.bend as DecodeSize
import Base
import bendvy-ecs-core@0.1.0.3/decode_data.bend as D
4def codec_size(codec:D.Codec) -> Nat:
5 match codec:
6 case D.Nullable{inner}: Nat.add(1n,codec_size(inner))
7 case D.ArrayValue{inner}: Nat.add(1n,codec_size(inner))
8 case D.Struct{[]}: 1n
9 case D.Struct{D.NamedCodec{_,child} <> rest}: Nat.add(1n,Nat.add(codec_size(child),codec_size(D.Struct{rest})))
10 case _: 1n