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

Uses (5)

Used by (1)