Emery Hemingway
cca512c9df
mapEmbeds for Preserve[void] to Preserve[E]
2021-10-25 21:36:45 +02:00
Emery Hemingway
54c28c90ce
Mark a preserves template as used
2021-10-18 12:12:33 +02:00
Emery Hemingway
220577c8a0
New pragmas for toPreserve and fromPreserve
2021-10-17 11:38:45 +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
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
efd5cf62df
Optimize allocation of sequences from toPreserve
2021-09-21 08:00:33 +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
91bf449f6b
Unlicense
2021-08-31 17:00:00 +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
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
16c8ce62ff
Move some stuff around
2021-08-24 18:00:57 +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
2eda0fc9a7
Add {.unpreservable.} pragma
2021-07-01 12:47:30 +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
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