syntax = "proto3";
package gofakeit.test;

import "gofakeit/gofakeit.proto";

option go_package = "github.com/rodaine/protogofakeit/gen/gofakeit/test";

enum MapEnum {
  MAP_ENUM_UNSPECIFIED = 0;
  MAP_ENUM_ONE = 1;
  MAP_ENUM_TWO = 2;
}

message MapMsg {
  string foo = 1;
}

message MapDefaults {
  map<string, bool> scalars = 1;
  map<int32, MapEnum> enums = 2;
  map<string, MapMsg> messages = 3;
  map<int32, MapDefaults> recursive = 4;
}

message MapTags {
  map<string, string> values = 1 [
    (gofakeit.generate).map.key.tag = "foo",
    (gofakeit.generate).map.value.tag = "bar"
  ];
}

message MapLength {
  map<string, string> values = 1 [(gofakeit.generate).map.len = 3];
}

message MapRange {
  map<string, string> values = 1 [(gofakeit.generate).map.range = {
    min: 1,
    max: 2
  }];
}

message MapSkip {
  map<string, string> values = 1 [
    (gofakeit.generate).map.key.skip = true,
    (gofakeit.generate).map.value.skip = true
  ];
  map<string, string> skipped = 2 [(gofakeit.generate).skip = true];
}
