def eq

bend-toon-codec@0.1.0.0 · src/json.bend:100

import bend-toon-codec@0.1.0.0/src/json.bend as Json
import Base

100# JSON-model equality (spec section 2): same shape, same ordered keys, numbers
101# equal by value (`1.0` equals `1`), strings equal by code points.
102def eq(+a: Json, +b: Json) -> Bool:
103  match a b:
104    case JArr{x} JArr{y}:
105      eq(x, y)
106    case JObj{x} JObj{y}:
107      eq(x, y)
108    case JCons{h, t} JCons{h2, t2}:
109      eq(h, h2) && eq(t, t2)
110    case JField{k, v, t} JField{k2, v2, t2}:
111      String.eq(k, k2) && eq(v, v2) && eq(t, t2)
112    case _ _:
113      prim.eq(a, b)

Uses (5)

Used by (1)