diff --git a/json_serialization/writer.nim b/json_serialization/writer.nim index 4256771..5c23d9b 100644 --- a/json_serialization/writer.nim +++ b/json_serialization/writer.nim @@ -527,9 +527,7 @@ proc writeValue*[V: not void](w: var JsonWriter, value: V) {.raises: [IOError].} elif value is SomeFloat: autoSerializeCheck(Flavor, SomeFloat, typeof(value)): w.streamElement(s): - # TODO Implement writeText for floats - # to avoid the allocation here: - s.write $value + s.writeText value elif value is seq or(value is distinct and distinctBase(value) is seq): autoSerializeCheck(Flavor, seq, typeof(value)): diff --git a/tests/test_serialization.nim b/tests/test_serialization.nim index 52d4a80..1400255 100644 --- a/tests/test_serialization.nim +++ b/tests/test_serialization.nim @@ -376,6 +376,11 @@ suite "toJson tests": "".toJson == "\"\"" "abc".toJson == "\"abc\"" + test "float": + Json.roundtripTest 1.23, "1.23" + Json.roundtripTest 1.23'f32, "1.23" + Json.roundtripTest 1.23'f64, "1.23" + test "enums": Json.roundtripTest x0, "\"x0\"" Json.roundtripTest x1, "\"x1\""