Emery Hemingway
e65dc2271f
Preserve JSON object keys as symbols
2023-08-01 11:09:29 +01:00
Emery Hemingway
5fa72cd25b
Be more consistent about sorting dictionary keys
2023-07-23 08:27:28 +01:00
Emery Hemingway
335dcd2987
Tweak type walking in private/macros
2023-07-23 08:26:35 +01:00
Emery Hemingway
6008b0ba25
Tidy imports
2023-07-20 23:17:41 +01:00
Emery Hemingway
e6868fabd2
Do not convert string to string
2023-07-20 20:20:36 +01:00
Emery Hemingway
81d04290a5
Use new delete(…)
2023-07-20 19:54:01 +01:00
Emery Hemingway
47e7851beb
Never convert Preserves symbols to Nim strings!
2023-07-20 18:26:29 +01:00
Emery Hemingway
9fa6685071
Add escaping to $ operator for Symbol
2023-06-12 21:01:26 +01:00
Emery Hemingway
10d20600bf
Escape zero-length Symbols
2023-06-11 21:35:28 +01:00
Emery Hemingway
acdfd3c560
Permit fromPreserve for subsets of dictionaries
2023-06-11 21:35:28 +01:00
Emery Hemingway
c087294b23
schema: sort dictionary fields by key
...
Size of the value is a compelling alternative but cannot be
inferred at code generation time.
2023-06-11 21:35:28 +01:00
Emery Hemingway
fa5441bd01
Cannonicalize values at toPreserve
2023-06-11 21:35:28 +01:00
Emery Hemingway
a7a90097a8
Add sort and cannonicalize
2023-06-11 21:33:41 +01:00
Emery Hemingway
96879da08c
schema: do not deref atomic types
2023-06-07 11:59:50 +01:00
Emery Hemingway
0e3824fc5d
schema: import std/sets when neccessary
2023-06-07 11:00:24 +01:00
Emery Hemingway
0f697349cc
Add isInteger and isString procs for testing against values
2023-05-30 13:11:33 +01:00
Emery Hemingway
c500e99b95
Fix some decoder defects
2023-05-20 13:53:21 +01:00
Emery Hemingway
03876850e5
schema: use Preserve[E] for records without literal labels
2023-05-17 09:12:08 +01:00
Emery Hemingway
b3f40347e8
Regenerate schema module
2023-05-16 23:06:52 +01:00
Emery Hemingway
7718227662
Add step proc for symbols
2023-05-14 22:57:12 +01:00
Emery Hemingway
eeef9860cf
schema: don't override $ proc for Preserves[E] types
2023-05-14 22:55:27 +01:00
Emery Hemingway
b7406cd6f7
Add preserves/datehooks for handling dates and times
2023-05-12 09:38:01 +01:00
Emery Hemingway
b9d8275624
schema: emit "tuple[]" for literal object fields
2023-05-04 10:55:09 +01:00
Emery Hemingway
cd2dde6d71
preserves_schema_nim: use field0,1,..N for anonymous fields
2023-05-03 16:03:43 +01:00
Emery Hemingway
67b470078c
Revert "preserves_schema_nim: declare literal fields as void"
...
This reverts commit 30c330cecf
.
2023-04-30 09:57:45 +01:00
Emery Hemingway
305edff213
Make toPreserve warning more explicit
2023-04-28 23:59:47 +01:00
Emery Hemingway
30c330cecf
preserves_schema_nim: declare literal fields as void
2023-04-28 23:58:48 +01:00
Emery Hemingway
335d1b61cc
Move jsonhooks check to runnableExamples
2023-04-10 17:51:14 -05:00
Emery Hemingway
30dbed4aa9
Allow for an unlimited DecodeBuffer size
2023-04-03 17:04:12 -05:00
Emery Hemingway
ea7225e3b5
Add toDictionary procedure
2023-04-03 17:03:56 -05:00
Emery Hemingway
1a0cb2be5c
Cleanup preserves_schema_nim
2023-04-01 12:33:28 -05:00
Emery Hemingway
466a8d3af4
Add initSequenceOfCap proc
2023-03-29 17:33:39 -05:00
Emery Hemingway
71b6d4c017
Rework the initX[E]() procs to initX(E = void)
2023-03-29 17:32:54 -05:00
Emery Hemingway
5d3f7b94a3
Add isRecord(…) with arity descriminator
2023-03-29 16:47:54 -05:00
Emery Hemingway
786342c39b
Cannot print a void value
2023-03-29 16:47:47 -05:00
Emery Hemingway
b38b85a8f1
Catch IOError at Preserves decoder
2023-03-22 11:21:46 -05:00
Emery Hemingway
8ff65486ff
preserves_schema_nim: use "E" as a default emebedding ident
2023-03-01 20:58:17 -06:00
Emery Hemingway
6b965c5c0e
Only catch ValueError during decode
2023-03-01 20:58:17 -06:00
Emery Hemingway
dab8f11b9b
Serialize dummy text for embeds
2023-03-01 20:58:17 -06:00
Emery Hemingway
075627709f
preserves_schema_nim: recursively search dicts for embedding
2023-03-01 20:58:17 -06:00
Emery Hemingway
a130079162
preserves_schema_nim: code formatting
2023-03-01 12:50:33 -06:00
Emery Hemingway
3a6dfc0349
preserves_schema_nim: be more careful about type parameters
2023-03-01 12:49:21 -06:00
Emery Hemingway
10682883a4
preserves_schema_nim: detect schema self references
...
Do not add a schema module as an import to itself when a
definition refers to a type with a qualified module name that is
the same as the schema the definition occurs in.
2023-03-01 12:49:21 -06:00
Emery Hemingway
70655a959b
preserves_schema_nim: emit Perserve type for And composites
2023-03-01 12:49:18 -06:00
Emery Hemingway
66a653a775
Fix expand of embedded Preserves
2022-12-13 22:05:05 -06:00
Emery Hemingway
adec7fd7ad
Rewrite tupfiles
2022-12-11 19:21:17 -06:00
Emery Hemingway
d5909e4df0
Schema: a collection of breaking changes
...
- Process all modules in a bundle simultanously so that it can be
determined if imported types are recursive or take a parameter
- Different rules for deciding when an object must be a ref
- Use Preserve[void] if there is no EmbededTypeName defined
- Put embeddeded types directly into other types without a
Preserve[E] container
2022-12-10 13:32:36 -06:00
Emery Hemingway
cc0703c343
Fix symbol escaping during conversion to text
2022-12-08 01:00:38 -06:00
Emery Hemingway
3dd112879d
Enable tracing for non-POSIX platforms
2022-12-08 01:00:38 -06:00
Emery Hemingway
587c5274f8
Fix preserving of embedded type
2022-12-08 01:00:38 -06:00