elixir-protobuf / protobuf

A pure Elixir implementation of Google Protobuf.
https://hexdocs.pm/protobuf/readme.html
MIT License
813 stars 141 forks source link

Can JSON decoder be loose on constraints about float? #364

Open junaid1460 opened 9 months ago

junaid1460 commented 9 months ago

Most JSON encoders just wrap 1.0 to 1, while protobuf gives good enough code generation, can we cast 1 -> 1.0 for floats and doubles?

The alternate solution is to use FloatValue and DoubleValue, that feels like just more work for no reason

whatyouhide commented 4 months ago

@junaid1460 thanks for the report! Do you know what other Protobuf libraries (for other languages) do in these cases?

junaid1460 commented 4 months ago

We've been using protobuf in dart/flutter its json decoder just automatically handles 1 and spits out 1.0.

eg:

// 1
{"value": 1} 

// 2
{"value": 2.3}
message Resp {
    float value;
}

when we parse 1 with Resp it should just take it as float.

whatyouhide commented 4 months ago

Gotcha, what do decoders for Ruby and Python do for example?