andri lim
d9394dc728
Resilience against null fields ( #78 )
...
* Resilience against fields with null value
* writeField helper also handle optional fields correctly
* Use uint4 for test_parser's parseValue
* Add parseObjectWithoutSkip and parseObjectSkipNullFields
2024-01-17 13:39:29 +07:00
andri lim
b14f5b58e9
Deconvolute optional fields writer ( #77 )
2024-01-17 07:48:42 +07:00
tersec
42253591b9
add lexer test cases ( #76 )
2024-01-15 07:02:08 +00:00
jangko
0db6307eb3
Add flavor feature: reader will skip null fields
2024-01-15 10:31:19 +07:00
jangko
9c74b885ea
Writer produce correct top-level or in-array optional elem when custom flavor omit optional fields
2024-01-11 16:51:00 +07:00
jangko
164a8bcbd5
v0.2.4
2024-01-08 09:22:37 +07:00
jangko
3f1ce24ee1
Increase stack size on Windows when running CI
2024-01-01 20:07:49 +07:00
jangko
ebaec13e77
Switch to mingw-llvm for faster Windows CI
2024-01-01 18:58:08 +07:00
jangko
6f639dd6c1
Restore accidentally deleted raises pragma
2023-12-29 12:36:09 +07:00
jangko
6417b7656b
Reduce declared but not used warning
2023-12-29 12:34:39 +07:00
jangko
547604004d
Fix JsonValueRef nil comparison
2023-12-29 12:33:58 +07:00
jangko
ce214b000d
Improve nested structure depth limit check
2023-12-29 12:31:56 +07:00
jangko
c35151b035
v0.2.2
2023-12-27 12:14:02 +07:00
jangko
ff62eb1f87
Add JsonWriter helper procs to README.md
2023-12-27 12:12:14 +07:00
jangko
61a03e20d3
Add JsonVoid, JsonNumber, and JsonValueRef to JsonWriter
2023-12-27 11:58:02 +07:00
jangko
9720b33f99
Add features documentation
2023-12-26 16:54:19 +07:00
jangko
1996de769b
Add fuzz test
2023-12-26 16:03:47 +07:00
jangko
61bae43e01
Improve lexer flexibility
2023-12-26 16:03:46 +07:00
jangko
d57a9d86c5
Add test vectors
2023-12-25 22:55:11 +07:00
jangko
34dc825066
Add copyright year to source file
2023-12-25 22:55:07 +07:00
jangko
9b5fbf8a0c
v0.2.0
2023-12-22 08:45:45 +07:00
zah
1693db7a57
Restore the reader.skipSingleJsValue API ( #67 )
2023-12-19 14:34:50 +02:00
zah
f42567c00c
Basic support for Json flavours without default object serialization ( #66 )
...
Other changes:
* Migrate many procs accepting JsonReader to JsonLexer in order to
reduce the number of generic instantiations and the resulting code
bloat
2023-12-19 12:00:24 +02:00
gabrielmer
230e226da0
fix: amend incorrect int bound check ( #65 )
2023-11-24 17:18:23 +01:00
Etan Kissling
85b7ea093c
add `{.raises.}` annotation to `writeValue` ( #64 )
...
Tag `writeValue` overrides with `{.raises: [IOError].}`.
The override in `writer.nim` also needs `gcsafe` to support recursion
in Nim 2.0.
2023-08-19 13:47:32 +02:00
Etan Kissling
d93fc19d4a
add `readValue` implementations for case objects ( #63 )
...
Case objects require custom `readValue` implementations to prevent
problems when keys are in an unexpected order. Define them for tests.
2023-08-19 12:28:06 +02:00
Jacek Sieka
bb53d49caf
missing raises ( #61 )
2023-07-06 09:13:29 +02:00
tersec
e32e8ad916
import std/[enumutils, typetraits] directly, not via stew/shims ( #59 )
2023-06-11 12:14:50 +00:00
tersec
b068e1440d
make nimble file consistent with CI setup ( #58 )
2023-06-10 05:15:58 +00:00
tersec
86ee432dde
test with Nim version-2-0 in CI ( #57 )
2023-06-08 19:23:20 +00:00
jangko
aa44ee61dd
works with nim devel
2023-06-05 15:23:36 +07:00
jangko
3390fa3142
remove nim 1.2 and 1.4 support
2023-06-05 12:58:37 +07:00
Etan Kissling
ed4440d881
use string value when encoding enums ( #55 )
...
Currently, we encode enum values always as the numeric value `ord(val)`.
unless explicitly overridden using `serializesAsTextInJson` or with a
custom `writeValue` implementation. Reduce verbosity by automatically
doing that.
2023-05-27 12:42:08 +03:00
jangko
b06b8ca4b1
update ubuntu to 20.04 in ci
2023-04-17 15:57:00 +07:00
jangko
dc2cf52386
remove appveyor and travis script
2023-04-17 10:46:35 +07:00
jangko
f64d55f7ff
fix missing annotation for nim 2.0
2023-04-17 09:39:52 +07:00
Jacek Sieka
a7d815ed92
normalise nimble, update CI ( #52 )
2022-11-24 13:49:34 +01:00
Zahary Karadjov
b42cd3c0d9
Make Reader.skipSingleJsValue part of the public API
2022-11-23 13:32:11 +02:00
Tanguy
e5b18fb710
bugfix: a leading field with a 'none' value was producing an incorrect encoding ( #50 )
...
The field was omitted, but not the comma following it, resulting in an
encoding such as '{, otherFields: ...}'
2022-07-15 10:23:35 +00:00
Zahary Karadjov
97cf184119
Rename some definitions to avoid clashes with stew/bitops2
2022-07-14 16:05:55 +03:00
Zahary Karadjov
aca66fbd8e
bugfix: even the Option fields were mandatory under requireAllFields
2022-07-14 15:14:10 +03:00
Ivan Yonchovski
090749e577
Add setup files ( #49 )
2022-07-12 23:22:39 +03:00
tersec
5a7f9a86cb
fix Nim 1.6 deprecation warning ( #48 )
2022-07-01 17:48:29 +00:00
Zahary Karadjov
dbe0f1ae51
Remove a string-to-cstring conversion warning on Nim 1.6
2022-06-19 13:06:02 +03:00
Zahary Karadjov
bedbe6595a
Avoid overloading the separate classes of writeField ops
2022-06-19 12:38:44 +03:00
Zahary Karadjov
95399caff3
Use latest nim-serialization; Add tests for useCustomSerialization
2022-06-18 13:34:04 +03:00
Zahary Karadjov
cc5038e0e2
Add writer.stepwiseArrayCreation
2022-06-17 20:16:28 +03:00
zah
b9af0be99d
Don't write empty optional fields ( #47 )
2022-06-16 17:14:00 +03:00
Zahary Karadjov
5034fef8d0
Avoid a dangerous string to cstring conversion
2022-06-07 12:35:20 +03:00
tersec
7d3d339e73
rm TaintedString ( #43 )
2022-06-04 08:58:13 +02:00