Commit Graph

81 Commits

Author SHA1 Message Date
Emery Hemingway 30a9d55aac Fix schema import, normalize version 2021-10-17 14:22:41 +02:00
Emery Hemingway 99201de724 Schemas: use canonical meta-schema 2021-10-17 13:26:05 +02:00
Emery Hemingway 220577c8a0 New pragmas for toPreserve and fromPreserve 2021-10-17 11:38:45 +02:00
Emery Hemingway 2dd63903f0 Remove records module
Redundant with toPreserve and fromPreserve.
2021-09-25 13:57:58 +02:00
Emery Hemingway 42a9b26458 Embeddable Preserves
Make Preserve a generic type that can embed a native Nim type.
Generate generic implementations from schemas and discard
embeddedType.
2021-09-25 13:47:05 +02:00
Emery Hemingway 75c176ddb6 New constructors for record and sequence 2021-09-23 14:29:31 +02:00
Emery Hemingway cd5dd7dd03 Add [] operator for dictionaries 2021-09-23 14:29:16 +02:00
Emery Hemingway 9f2921d0ca Add is* checks 2021-09-23 13:32:04 +02:00
Emery Hemingway e7af40ce2f Export the variant members 2021-09-23 13:31:10 +02:00
Emery Hemingway 2451b441ad Use dedicated types for record alternates 2021-09-22 14:30:50 +02:00
Emery Hemingway ea50b05bad Some types implicitly handled by toPreserve 2021-09-21 09:38:37 +02:00
Emery Hemingway 6b7a23fecf Compiler compatibility tweaks 2021-09-21 09:30:40 +02:00
Emery Hemingway dae5dd9751 Fix toPreserveHook for Table[A, B]
The toPreserveHook for tables was not compiling, which would fall
back to the behavior for preserving objects, which would not work
for tables.
2021-09-21 08:00:33 +02:00
Emery Hemingway 7edc05a35d Refactor preserves_schema_nim 2021-09-21 08:00:33 +02:00
Emery Hemingway efd5cf62df Optimize allocation of sequences from toPreserve 2021-09-21 08:00:33 +02:00
Emery Hemingway fc53b47ec6 Add megaType procs 2021-09-21 08:00:33 +02:00
Emery Hemingway c407179540 Remove dead code 2021-09-21 08:00:33 +02:00
Emery Hemingway 098f067ffb Quote schema comments 2021-09-21 08:00:33 +02:00
Emery Hemingway efbf9af7ba TableRef 2021-09-21 08:00:33 +02:00
Emery Hemingway a7acd971d2 Fix symbol printing in schemas 2021-09-21 08:00:33 +02:00
Emery Hemingway df53ff0d41 Fix printing of schema symbols 2021-09-21 08:00:33 +02:00
Emery Hemingway 23d34d1468 Emit a discard for empty case…of branch fields 2021-09-21 08:00:33 +02:00
Emery Hemingway 00bb9de55f Less identifier mangling 2021-09-21 08:00:33 +02:00
Emery Hemingway 41675a2daf Generate procs for constants 2021-09-21 08:00:33 +02:00
Emery Hemingway 58a9f5dde4 quiet down 2021-09-21 08:00:33 +02:00
Emery Hemingway de50a0a41d Import tables when necessary 2021-09-21 08:00:33 +02:00
Emery Hemingway d43f9ca926 Quote proc parameters 2021-09-21 08:00:33 +02:00
Emery Hemingway c942e79a0a Make objects ref objects to support recursion 2021-09-21 08:00:33 +02:00
Emery Hemingway e556fa26e0 Do not generate object fields for constants 2021-09-21 08:00:33 +02:00
Emery Hemingway b940a458a1 Write name of output to stdout 2021-09-21 08:00:33 +02:00
Emery Hemingway cef2116e96 Module scoping for embedded type and refs 2021-09-21 08:00:33 +02:00
Emery Hemingway 2d64dae0dd Collect imports from schema 2021-09-21 08:00:33 +02:00
Emery Hemingway 460e7596f4 Make all type declarations in title-case 2021-09-21 08:00:33 +02:00
Emery Hemingway e322482d0a no preserveTypeOf 2021-09-21 08:00:33 +02:00
Emery Hemingway 2016974e95 Replace prsFoo() with foo() 2021-09-21 08:00:33 +02:00
Emery Hemingway cb4f4df4f1 No date comment 2021-09-21 08:00:33 +02:00
Emery Hemingway 3c39f54962 Stop using preserveTypeOf 2021-09-08 11:16:42 +02:00
Emery Hemingway c9c7744531 Do not emit (Preserve | Preserve) types 2021-09-08 11:16:42 +02:00
Emery Hemingway d9cf6dbab4 Fix definition of empty records 2021-09-08 11:16:42 +02:00
Emery Hemingway 13854f88c7 Do not export case…of labels 2021-09-08 11:16:42 +02:00
Emery Hemingway dffd52965b Add some utilities 2021-09-08 11:16:42 +02:00
Emery Hemingway e6d07ba924 Revert Preserve to a concrete type
A generic type with an embedded type is too much hassle with the
type system. Add an "embedded" flag on "Preserve" to mark if a
value should be considered as embedded.
2021-09-08 11:16:40 +02:00
Emery Hemingway 9ed18c279c Release 1.0.0 2021-09-01 13:32:26 +02:00
Emery Hemingway 53642eef83 Add preserves_schema_nim utilty
A utility for generating code from Preserves schema.
2021-09-01 11:35:44 +02:00
Emery Hemingway 91bf449f6b Unlicense 2021-08-31 17:00:00 +02:00
Emery Hemingway d671a2ac22 Include support in schemas 2021-08-31 16:49:50 +02:00
Emery Hemingway 5ca277b8c0 Embedded types 2021-08-31 16:48:55 +02:00
Emery Hemingway 41b1328e4e Move JSON specifics to preserves/jsonhooks 2021-08-28 11:31:58 +02:00
Emery Hemingway 5aaac95ca1 Remove % operator
Use toPreserves, % is not compatible with a parameterized Preserve
type.
2021-08-28 11:25:04 +02:00
Emery Hemingway 338a468466 Schemas: allow CompoundPatterns in AltPatterns 2021-08-28 11:25:04 +02:00