Имя поля Protobuf, которое содержит слово "Id", превращает его в "ID", когда генерирует модель.pb.swift.

Я пытаюсь использовать swift-protobuf:

$ protoc --version
libprotoc 3.3.0
$ protoc-gen-swift --version
protoc-gen-swift 0.9.904

я имею Test.proto файл, который мне нужно конвертировать в Test.pb.swift:

syntax = "proto2";

message Test {
   optional int64 TestId = 1 [default = 0];
}

Для этого я использую:

$ protoc --swift_opt=Visibility=Public  --swift_out=./ ./Test.proto

Он генерирует длинный файл.pb.swift:

public struct Test: SwiftProtobuf.Message {
  public static let protoMessageName: String = "Test"

  public var testID: Int64 {
    get {return _testID ?? 0}
    set {_testID = newValue}
  }
  /// Returns true if `testID` has been explicitly set.
  ....

Итак, почему TestId конвертировано в testIDнапример, почему Id с большой буквы ID? Как исправить или избежать этого поведения с использованием заглавных букв?

1 ответ

Особый ответ был найден в репозитории apple / swift-protobuf в # 491. Добавьте "id" в список заглавных имен.

Итак, как я понимаю, теперь мне нужно переименовать все мои идентификаторы или идентификаторы в "ID".

Другие вопросы по тегам