syntax = "proto3";
package documentation;

// Documentation of message 1
// other line 1

// Documentation of message 2
// other line 2
message Test { // Documentation of message 3
  // Documentation of field 1
  // other line 1

  // Documentation of field 2
  // other line 2
  uint32 x = 1; // Documentation of field 3

  // Documentation of oneof 1
  // other line 1

  // Documentation of oneof 2
  // other line 2
  oneof oneof_example { // Documentation of oneof 3
    // Documentation of oneof field 1
    // other line 1

    // Documentation of oneof field 2
    // other line 2
    int32 a = 2; // Documentation of oneof field 3
  }
}

// Documentation of enum 1
// other line 1

// Documentation of enum 2
// other line 2
enum Enum { // Documentation of enum 3
  // Documentation of variant 1
  // other line 1

  // Documentation of variant 2
  // other line 2
  Enum_Variant = 0; // Documentation of variant 3
}

// Documentation of service 1
// other line 1

// Documentation of service 2
// other line 2
service Service { // Documentation of service 3
  // Documentation of method 1
  // other line 1

  // Documentation of method 2
  // other line 2
  rpc get(Test) returns (Test); // Documentation of method 3
}

// A comment with backslashes \ and triple quotes """
// Simple quotes are not escaped "
message ComplexDocumentation {}
