Repository: syncthing/syncthing
File: proto/lib/config/deviceconfiguration.proto (Protocol Buffers)

Code before:

import "lib/protocol/bep.proto";
import "lib/config/observed.proto";

import "ext.proto";

message DeviceConfiguration {
    bytes                   device_id                  = 1 [(ext.goname) = "DeviceID", (ext.xml) = "id,attr", (ext.json) = "deviceID", (ext.device_id) = true];
    string                  name                       = 2 [(ext.xml) = "name,attr,omitempty"];
    repeated string         addresses                  = 3 [(ext.xml) = "address,omitempty", (ext.default) = "dynamic"];
    protocol.Compression    compression                = 4 [(ext.xml) = "compression,attr"];
    string                  cert_name                  = 5 [(ext.xml) = "certName,attr,omitempty"];
    bool                    introducer                 = 6 [(ext.xml) = "introducer,attr"];
    bool                    skip_introduction_removals = 7 [(ext.xml) = "skipIntroductionRemovals,attr"];
    bytes                   introduced_by              = 8 [(ext.xml) = "introducedBy,attr", (ext.device_id) = true];
    bool                    paused                     = 9;
    repeated string         allowed_networks           = 10 [(ext.xml) = "allowedNetwork,omitempty"];
    bool                    auto_accept_folders        = 11;
    int32                   max_send_kbps              = 12;
    int32                   max_recv_kbps              = 13;
    repeated ObservedFolder ignored_folders            = 14;
    repeated ObservedFolder pending_folders            = 15;
    int32                   max_request_kib            = 16 [(ext.goname) = "MaxRequestKiB", (ext.xml) = "maxRequestKiB", (ext.json) = "maxRequestKiB"];
    int32                   remote_gui_port            = 17 [(ext.goname) = "RemoteGUIPort", (ext.xml) = "remoteGUIPort", (ext.json) = "remoteGUIPort"];
}


Review comment (suggestion):
TCP ports are defined as uint16, so that's what I would specify when a type with explicit width is used.

Code after:

import "lib/protocol/bep.proto";
import "lib/config/observed.proto";

import "ext.proto";

message DeviceConfiguration {
    bytes                   device_id                  = 1 [(ext.goname) = "DeviceID", (ext.xml) = "id,attr", (ext.json) = "deviceID", (ext.device_id) = true];
    string                  name                       = 2 [(ext.xml) = "name,attr,omitempty"];
    repeated string         addresses                  = 3 [(ext.xml) = "address,omitempty", (ext.default) = "dynamic"];
    protocol.Compression    compression                = 4 [(ext.xml) = "compression,attr"];
    string                  cert_name                  = 5 [(ext.xml) = "certName,attr,omitempty"];
    bool                    introducer                 = 6 [(ext.xml) = "introducer,attr"];
    bool                    skip_introduction_removals = 7 [(ext.xml) = "skipIntroductionRemovals,attr"];
    bytes                   introduced_by              = 8 [(ext.xml) = "introducedBy,attr", (ext.device_id) = true];
    bool                    paused                     = 9;
    repeated string         allowed_networks           = 10 [(ext.xml) = "allowedNetwork,omitempty"];
    bool                    auto_accept_folders        = 11;
    int32                   max_send_kbps              = 12;
    int32                   max_recv_kbps              = 13;
    repeated ObservedFolder ignored_folders            = 14;
    repeated ObservedFolder pending_folders            = 15;
    int32                   max_request_kib            = 16 [(ext.goname) = "MaxRequestKiB", (ext.xml) = "maxRequestKiB", (ext.json) = "maxRequestKiB"];
    bool                    untrusted                  = 17;
    int32                   remote_gui_port            = 18 [(ext.goname) = "RemoteGUIPort", (ext.xml) = "remoteGUIPort", (ext.json) = "remoteGUIPort"];
}