mirror of
https://github.com/arkadiyt/protodump.git
synced 2026-10-21 09:46: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) {}
|
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 HelloRequest {
|
||||||
message Test {
|
message Test {
|
||||||
string blah = 1;
|
string blah = 1;
|
||||||
|
|||||||
+14
-8
@@ -6,6 +6,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"google.golang.org/protobuf/encoding/protowire"
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
"google.golang.org/protobuf/reflect/protodesc"
|
"google.golang.org/protobuf/reflect/protodesc"
|
||||||
"google.golang.org/protobuf/reflect/protoreflect"
|
"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++ {
|
for i := 0; i < message.ReservedNames().Len(); i++ {
|
||||||
name := message.ReservedNames().Get(i)
|
name := message.ReservedNames().Get(i)
|
||||||
pd.writeIndented("reserved ")
|
pd.writeIndented("reserved \"")
|
||||||
pd.write(string(name))
|
pd.write(string(name))
|
||||||
pd.write(";\n")
|
pd.write("\";\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < message.ReservedRanges().Len(); i++ {
|
for i := 0; i < message.ReservedRanges().Len(); i++ {
|
||||||
reservedRange := message.ReservedRanges().Get(i)
|
|
||||||
pd.writeIndented("reserved ")
|
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] {
|
if reservedRange[0] == reservedRange[1] {
|
||||||
pd.write(string(reservedRange[0]))
|
pd.write(fmt.Sprintf("%d", reservedRange[0]))
|
||||||
} else {
|
} else {
|
||||||
if reservedRange[0] > reservedRange[1] {
|
|
||||||
reservedRange[1], reservedRange[0] = reservedRange[0], reservedRange[1]
|
|
||||||
}
|
|
||||||
pd.write(fmt.Sprintf("%d", reservedRange[0]))
|
pd.write(fmt.Sprintf("%d", reservedRange[0]))
|
||||||
pd.write(" to ")
|
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")
|
pd.write(";\n")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user