// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

syntax = "proto2";

package third_party.dart.protoc_plugin.test.protos;

message OptionalBoolTest {
  required bool non_optional_bool = 1;
  optional bool optional_bool = 2;
  optional bool optional_bool_with_default = 3 [default = true];
}

