| Age | Commit message (Collapse) | Author |
|
|
|
|
|
fix build on v1.2
|
|
|
|
|
|
Update nim 0.20
|
|
|
|
Fix travis build
|
|
See https://github.com/nim-lang/Nim/issues/11454
|
|
|
|
|
|
avoid index error if input size is zero (#1)
|
|
|
|
Small fixes for Nim 0.19 compatibility
|
|
|
|
|
|
Rename TODO to TODO.md
|
|
(more standard, plays better with binary exclusions, etc)
|
|
|
|
|
|
|
|
|
|
|
|
Now users can register their own types to work with Any. WKT's are automatically
registered. User messages can be packed into an Any and unpacked from an Any.
Then there's support for converting Any to/from JSON with user types and WKT's.
The conformance test suite looks always better and better:
Required.Proto3.JsonInput.Int32FieldLeadingZero
Required.Proto3.JsonInput.Int32FieldNegativeWithLeadingZero
Required.Proto3.JsonInput.Struct.ProtobufOutput
Required.Proto3.JsonInput.Uint64FieldMaxValueNotQuoted.JsonOutput
Required.Proto3.JsonInput.Uint64FieldMaxValueNotQuoted.ProtobufOutput
Required.Proto3.JsonInput.ValueAcceptNull.JsonOutput
Required.Proto3.JsonInput.ValueAcceptNull.ProtobufOutput
Required.Proto3.ProtobufInput.RepeatedScalarSelectsLast.DOUBLE.JsonOutput
Required.Proto3.ProtobufInput.ValidDataRepeated.DOUBLE.JsonOutput
CONFORMANCE SUITE FAILED: 594 successes, 194 skipped, 0 expected failures, 9
unexpected failures.
|
|
|
|
And the other implementations. Namely, use the default values of fields for
checking if they are present. This means that we also don't generate the
`hasSomeField` procs for anything else than oneofs and messages.
Also make some changes to oneofs. Include a `NotSet` in the oneof enums which
can be used to see if a oneof field has a value or not.
With these changes, the conformance test suite reports the following:
Required.Proto3.JsonInput.Any.JsonOutput
Required.Proto3.JsonInput.Any.ProtobufOutput
Required.Proto3.JsonInput.AnyNested.JsonOutput
Required.Proto3.JsonInput.AnyNested.ProtobufOutput
Required.Proto3.JsonInput.AnyUnorderedTypeTag.JsonOutput
Required.Proto3.JsonInput.AnyUnorderedTypeTag.ProtobufOutput
Required.Proto3.JsonInput.AnyWithDuration.JsonOutput
Required.Proto3.JsonInput.AnyWithDuration.ProtobufOutput
Required.Proto3.JsonInput.AnyWithFieldMask.JsonOutput
Required.Proto3.JsonInput.AnyWithFieldMask.ProtobufOutput
Required.Proto3.JsonInput.AnyWithInt32ValueWrapper.JsonOutput
Required.Proto3.JsonInput.AnyWithInt32ValueWrapper.ProtobufOutput
Required.Proto3.JsonInput.AnyWithStruct.JsonOutput
Required.Proto3.JsonInput.AnyWithStruct.ProtobufOutput
Required.Proto3.JsonInput.AnyWithTimestamp.JsonOutput
Required.Proto3.JsonInput.AnyWithTimestamp.ProtobufOutput
Required.Proto3.JsonInput.AnyWithValueForInteger.JsonOutput
Required.Proto3.JsonInput.AnyWithValueForInteger.ProtobufOutput
Required.Proto3.JsonInput.AnyWithValueForJsonObject.JsonOutput
Required.Proto3.JsonInput.AnyWithValueForJsonObject.ProtobufOutput
Required.Proto3.JsonInput.Int32FieldLeadingZero
Required.Proto3.JsonInput.Int32FieldNegativeWithLeadingZero
Required.Proto3.JsonInput.Struct.ProtobufOutput
Required.Proto3.JsonInput.Uint64FieldMaxValueNotQuoted.JsonOutput
Required.Proto3.JsonInput.Uint64FieldMaxValueNotQuoted.ProtobufOutput
Required.Proto3.JsonInput.ValueAcceptNull.JsonOutput
Required.Proto3.JsonInput.ValueAcceptNull.ProtobufOutput
Required.Proto3.ProtobufInput.RepeatedScalarSelectsLast.DOUBLE.JsonOutput
Required.Proto3.ProtobufInput.ValidDataRepeated.DOUBLE.JsonOutput
CONFORMANCE SUITE FAILED: 574 successes, 194 skipped, 0 expected failures,
29 unexpected failures.
|
|
The camelcasing proc was not implemented so conformance suite didn't like us.
|
|
See the commit 44b39c7 for more information.
|
|
I use `include duration_pb` in the `duration.nim` file. This has the effect of
not using the property setter procs when doing assignments! Instead, we directly
use the member variable bypassing the setter. This means that `hasField` is not
updated. Which means that when serializing a message that was parsed from JSON,
we don't serialize the `Duration.seconds` and `Duration.nanos` fields because
the library thinks they are not set.
The fix for now is to use the dedicated `setFoo` procs for setting fields in
these WKT extra functionality files which include the corresponding `*_pb.nim`
file.
This is not a problem when using `import`, as the fields are private to the
`*_pb.nim` module, so outside code uses the property setters when doing
assignments.
|
|
We should fail parsing if we see multiple oneof members in the same message.
This is checked by conformance test suite.
|
|
This fixes a segfault problem that I had, when running the conformance test
suite. The following piece of code segfaulted on the last assignment:
msg.oneofUint32 = 1
msg.oneofString = "test"
If the first assignment was `0`, then there was no problem.
Now we use the object variant, which gives nim runtime the ability to track
what data the union holds.
|
|
It's looking quite nice from conformance point of view:
CONFORMANCE SUITE FAILED: 564 successes, 194 skipped, 0 expected failures,
38 unexpected failures.
|
|
Basically just being more strict about the paths than before.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The object has a number of callbacks, which the service backend can fill to
perform different tasks. Currently there are two callbacks: genImports and
genService. genImports is called once per file and genService once per service.
|
|
|
|
|