mirror of
https://github.com/arkadiyt/protodump.git
synced 2026-10-21 01:36:52 +02:00
Some bug fixes for reserved field names and ranges
This commit is contained in:
1 parent
25f5d1df8f
commit
fc85ead5c1
2 files changed
+25
-8
No files matched your search
@@ -9,6 +9,17 @@ service Greeter {
|
||||
rpc StreamMethodServer (StreamRequest) returns (stream StreamReply) {}
|
||||
}
|
||||
|
||||
message Reserved {
|
||||
reserved "foo";
|
||||
reserved 1;
|
||||
reserved 4 to 7;
|
||||
}
|
||||
|
||||
message ReservedEnum {
|
||||
reserved "FOO";
|
||||
reserved 10 to max;
|
||||
}
|
||||
|
||||
message HelloRequest {
|
||||
message Test {
|
||||
string blah = 1;
|
||||
|
||||
+14
-8
@@ -6,6 +6,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"google.golang.org/protobuf/encoding/protowire"
|
||||
"google.golang.org/protobuf/proto"
|
||||
"google.golang.org/protobuf/reflect/protodesc"
|
||||
"google.golang.org/protobuf/reflect/protoreflect"
|
||||
@@ -152,23 +153,28 @@ func (pd *ProtoDefinition) writeMessage(message protoreflect.MessageDescriptor)
|
||||
|
||||
for i := 0; i < message.ReservedNames().Len(); i++ {
|
||||
name := message.ReservedNames().Get(i)
|
||||
pd.writeIndented("reserved ")
|
||||
pd.writeIndented("reserved \"")
|
||||
pd.write(string(name))
|
||||
pd.write(";\n")
|
||||
pd.write("\";\n")
|
||||
}
|
||||
|
||||
for i := 0; i < message.ReservedRanges().Len(); i++ {
|
||||
reservedRange := message.ReservedRanges().Get(i)
|
||||
pd.writeIndented("reserved ")
|
||||
reservedRange := message.ReservedRanges().Get(i)
|
||||
if reservedRange[0] > reservedRange[1] {
|
||||
reservedRange[1], reservedRange[0] = reservedRange[0], reservedRange[1]
|
||||
}
|
||||
reservedRange[1] -= 1
|
||||
if reservedRange[0] == reservedRange[1] {
|
||||
pd.write(string(reservedRange[0]))
|
||||
pd.write(fmt.Sprintf("%d", reservedRange[0]))
|
||||
} else {
|
||||
if reservedRange[0] > reservedRange[1] {
|
||||
reservedRange[1], reservedRange[0] = reservedRange[0], reservedRange[1]
|
||||
}
|
||||
pd.write(fmt.Sprintf("%d", reservedRange[0]))
|
||||
pd.write(" to ")
|
||||
pd.write(fmt.Sprintf("%d", reservedRange[1]))
|
||||
if reservedRange[1] == protowire.MaxValidNumber {
|
||||
pd.write("max")
|
||||
} else {
|
||||
pd.write(fmt.Sprintf("%d", reservedRange[1]))
|
||||
}
|
||||
}
|
||||
pd.write(";\n")
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user