Commit Graph

240 Commits

Author SHA1 Message Date
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
Emery Hemingway d67482fad8 Do not throw from preserveTo or fromPreserve
Return an Option or boolean value. This makes it cheap to test if
a Preserves value is convertable to a Nim type.
2021-08-27 22:35:37 +02:00
Emery Hemingway 8341360741 Restore record pragma handling 2021-08-24 18:00:58 +02:00
Emery Hemingway f6a9d27ca2 Drop '=' when parsing alt symbols 2021-08-24 18:00:58 +02:00
Emery Hemingway 1644736625 Support '.' in Ref 2021-08-24 18:00:58 +02:00
Emery Hemingway c449d41759 Drop bad assertions, improve error message 2021-08-24 18:00:58 +02:00
Emery Hemingway 50b71b8651 Schemas: fix embedded pattern 2021-08-24 18:00:58 +02:00
Emery Hemingway 16c8ce62ff Move some stuff around 2021-08-24 18:00:57 +02:00
Emery Hemingway 7359f1cac2 Schemas 2021-08-24 18:00:03 +02:00
Emery Hemingway dd0937f70b Dereference distinct types in fromPreserves 2021-08-11 13:06:19 +02:00
Emery Hemingway 84e9d00e1d Initialize bigint 2021-08-11 13:06:19 +02:00
Emery Hemingway 26faea8d91 fix `$` for records 2021-08-11 13:06:19 +02:00
Emery Hemingway 99b0ddbb13 Textual parser 2021-08-11 13:06:16 +02:00
Emery Hemingway 30bfaa8c00 Rewrite some of `%` 2021-07-16 19:13:10 +02:00
Emery Hemingway 713f9d00d3 Add `%` operator
Reuse the `%` operator from json module for consistency.
2021-07-09 16:56:09 +02:00
Emery Hemingway f0c1ebe85e Add isNil for Preserve
Not a ref type, but add `isNil` for checking if a Perserve is
zero-initialized.
2021-07-09 12:24:51 +02:00
Emery Hemingway 8985060055 Add items iterator
Iterates over all child items in a Preserve.
2021-07-09 12:24:29 +02:00
Emery Hemingway be8ad62f99 Infix operator % for constructing records 2021-07-07 12:50:57 +02:00
Emery Hemingway 24d974b91f Get RecordClass of tuple types 2021-07-01 12:48:07 +02:00
Emery Hemingway 2eda0fc9a7 Add {.unpreservable.} pragma 2021-07-01 12:47:30 +02:00
Emery Hemingway 7b8d48c48a Version 0.3.0 2021-06-29 18:46:02 +02:00
Emery Hemingway 376c0e04c5 Add a {.record: "label".} pragma
A pragma for serializing tuples and objects to or from records.
2021-06-28 17:39:27 +02:00
Emery Hemingway 5aa5ccbd09 Move utilities for records to a seperate module 2021-06-28 17:38:41 +02:00
Emery Hemingway c7e8c301f9 Version 0.2.0 2021-06-24 17:33:48 +02:00
Emery Hemingway dddf82eedd Store record labels behind fields 2021-06-24 17:33:02 +02:00
Emery Hemingway 6ebb752690 Store embedded values as pointers
Reduce Preserve from a generic to a concrete type.
2021-06-15 18:51:13 +02:00
Emery Hemingway 32ce6a71fe Implement set with HashSet rather than CountTable
I didn't know HashSet was a thing.
2021-06-15 16:02:14 +02:00
Emery Hemingway db3e302067 setItems iterator 2021-06-10 12:08:34 +02:00
Emery Hemingway b099475d25 Record utilities 2021-06-08 14:15:12 +02:00
Emery Hemingway b5940cfe22 Symbol constructor 2021-06-08 12:22:31 +02:00
Emery Hemingway bfb0825721 Bigint fixes
* Native and big integer comparison
* Refuse to serialize negative big ints for now
2021-06-04 11:41:34 +02:00
Emery Hemingway d63dfad954 Initial commit 2021-06-02 15:51:36 +02:00