// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package optimization_guide.proto;

import "components/optimization_guide/proto/features/media.proto";

option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.optimization_guide.features.proto";

option java_outer_classname = "ExampleForTestingProto";

message ExampleForTestingMessage {
  bool bool_value = 1;

  string string_value = 2;

  enum ExampleEnum {
    VALUE0 = 0;
    VALUE1 = 1;
  }

  ExampleEnum enum_value = 3;

  Media media = 4;
}

message ExampleForTestingRequest {
  bool bool_value = 1;

  string string_value = 2;

  ExampleForTestingMessage.ExampleEnum enum_value = 3;

  ExampleForTestingMessage nested1 = 4;
  ExampleForTestingMessage nested2 = 5;

  repeated ExampleForTestingMessage repeated_field = 6;
}

enum ExampleForTestingOutsideMessageEnum {
  VALUE_A = 0;
  VALUE_B = 10;
}

message ExampleForTestingResponse {
  bool bool_value = 1;
  string string_value = 2;

  enum ExampleInsideMessageEnum {
    VALUE0 = 0;
    VALUE1 = 1;
  }

  ExampleInsideMessageEnum inside_enum_value = 3;

  float float_value = 4;
  double double_value = 5;
  int32 int32_value = 6;
  uint32 uint32_value = 7;
  int64 int64_value = 8;
  uint64 uint64_value = 9;

  ExampleForTestingOutsideMessageEnum outside_enum_value = 10;
}

message ExampleForTestingData {
  ExampleForTestingRequest request = 1;
  ExampleForTestingResponse response = 2;
}
