fix nim devel error: 'result' requires explicit initialization

This commit is contained in:
jangko 2023-02-08 09:37:34 +07:00
parent bddc539012
commit 5b7cea55ef
No known key found for this signature in database
GPG Key ID: 31702AE10541E6B9
4 changed files with 34 additions and 1 deletions

1
.gitignore vendored
View File

@ -3,5 +3,6 @@ tests/test_all
nimble.develop
nimble.paths
build/
vendor/
*.exe

View File

@ -26,6 +26,8 @@ template encode*(Format: type, value: auto, params: varargs[untyped]): auto =
{.push warning[ProveInit]: off.}
proc readValue*(reader: var auto, T: type): T =
mixin readValue
when (NimMajor, NimMinor) > (1, 6):
result = default(T)
reader.readValue(result)
{.pop.}

View File

@ -1,3 +1,4 @@
import
test_object_serialization
test_object_serialization,
test_reader

29
tests/test_reader.nim Normal file
View File

@ -0,0 +1,29 @@
import
unittest2,
../serialization
{.used.}
type
TestObj = object
number: int
XyzReader = object
proc readValue(r: XyzReader, val: var TestObj) =
val.number = 13
proc init(T: type XyzReader, stream: InputStream): T =
XyzReader()
serializationFormat Xyz
Xyz.setReader XyzReader
suite "object serialization":
test "readValue":
let z = Xyz.decode("", TestObj)
check z.number == 13
var r: XyzReader
let x = r.readValue(TestObj)
check x.number == 13