def Meaning
bend-schema-lib@0.4.1.0 · core.bend:1427
import bend-schema-lib@0.4.1.0/core.bend as Core
import Base
1427def Meaning(s: Schema) -> Data:
1428 match s:
1429 case SNat{}:
1430 Nat
1431 case SNatIn{lo, hi}:
1432 Nat
1433 case SStr{}:
1434 String
1435 case SStrLen{lo, hi, s2}:
1436 Meaning(s2)
1437 case SListLen{lo, hi, s2}:
1438 Meaning(s2)
1439 case SOpt{i}:
1440 Maybe<&2, Meaning(i)>
1441 case SOptional{i}:
1442 Maybe<&2, Meaning(i)>
1443 case SList{e}:
1444 List<&2, Meaning(e)>
1445 case SField{n, fs, rest}:
1446 Both<Meaning(fs), Meaning(rest)>
1447 case SEnd{}:
1448 Unit
1449 case SRule{s2, tag}:
1450 Meaning(s2)
1451 case SStrict{s2}:
1452 Meaning(s2)
1453 case STagged{k, n, cs, rest}:
1454 Either<&2, &2, Meaning(cs), Meaning(rest)>
1455 case STagEnd{k}:
1456 Empty
1457 case SBool{}:
1458 Bool
1459 case STrue{}:
1460 Unit
1461 case SEnum{names}:
1462 String
1463 case SVariant{n, vs, rest}:
1464 Either<&2, &2, Meaning(vs), Meaning(rest)>
1465 case SVEnd{}:
1466 Empty
1467 case STuple{ts, rest}:
1468 Both<Meaning(ts), Meaning(rest)>
1469 case STEnd{}:
1470 Unit
1471 case SJson{}:
1472 Json
1473 case SInt{}:
1474 Int
1475 case SIntIn{lo, hi}:
1476 Int
1477 case SEither{l, r}:
1478 Either<&2, &2, Meaning(l), Meaning(r)>