1// Copyright 2020 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.25.0 18// protoc v3.13.0 19// source: google/spanner/v1/keys.proto 20 21package spanner 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 proto "github.com/golang/protobuf/proto" 28 _ "google.golang.org/genproto/googleapis/api/annotations" 29 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 30 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 31 structpb "google.golang.org/protobuf/types/known/structpb" 32) 33 34const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39) 40 41// This is a compile-time assertion that a sufficiently up-to-date version 42// of the legacy proto package is being used. 43const _ = proto.ProtoPackageIsVersion4 44 45// KeyRange represents a range of rows in a table or index. 46// 47// A range has a start key and an end key. These keys can be open or 48// closed, indicating if the range includes rows with that key. 49// 50// Keys are represented by lists, where the ith value in the list 51// corresponds to the ith component of the table or index primary key. 52// Individual values are encoded as described 53// [here][google.spanner.v1.TypeCode]. 54// 55// For example, consider the following table definition: 56// 57// CREATE TABLE UserEvents ( 58// UserName STRING(MAX), 59// EventDate STRING(10) 60// ) PRIMARY KEY(UserName, EventDate); 61// 62// The following keys name rows in this table: 63// 64// ["Bob", "2014-09-23"] 65// ["Alfred", "2015-06-12"] 66// 67// Since the `UserEvents` table's `PRIMARY KEY` clause names two 68// columns, each `UserEvents` key has two elements; the first is the 69// `UserName`, and the second is the `EventDate`. 70// 71// Key ranges with multiple components are interpreted 72// lexicographically by component using the table or index key's declared 73// sort order. For example, the following range returns all events for 74// user `"Bob"` that occurred in the year 2015: 75// 76// "start_closed": ["Bob", "2015-01-01"] 77// "end_closed": ["Bob", "2015-12-31"] 78// 79// Start and end keys can omit trailing key components. This affects the 80// inclusion and exclusion of rows that exactly match the provided key 81// components: if the key is closed, then rows that exactly match the 82// provided components are included; if the key is open, then rows 83// that exactly match are not included. 84// 85// For example, the following range includes all events for `"Bob"` that 86// occurred during and after the year 2000: 87// 88// "start_closed": ["Bob", "2000-01-01"] 89// "end_closed": ["Bob"] 90// 91// The next example retrieves all events for `"Bob"`: 92// 93// "start_closed": ["Bob"] 94// "end_closed": ["Bob"] 95// 96// To retrieve events before the year 2000: 97// 98// "start_closed": ["Bob"] 99// "end_open": ["Bob", "2000-01-01"] 100// 101// The following range includes all rows in the table: 102// 103// "start_closed": [] 104// "end_closed": [] 105// 106// This range returns all users whose `UserName` begins with any 107// character from A to C: 108// 109// "start_closed": ["A"] 110// "end_open": ["D"] 111// 112// This range returns all users whose `UserName` begins with B: 113// 114// "start_closed": ["B"] 115// "end_open": ["C"] 116// 117// Key ranges honor column sort order. For example, suppose a table is 118// defined as follows: 119// 120// CREATE TABLE DescendingSortedTable { 121// Key INT64, 122// ... 123// ) PRIMARY KEY(Key DESC); 124// 125// The following range retrieves all rows with key values between 1 126// and 100 inclusive: 127// 128// "start_closed": ["100"] 129// "end_closed": ["1"] 130// 131// Note that 100 is passed as the start, and 1 is passed as the end, 132// because `Key` is a descending column in the schema. 133type KeyRange struct { 134 state protoimpl.MessageState 135 sizeCache protoimpl.SizeCache 136 unknownFields protoimpl.UnknownFields 137 138 // The start key must be provided. It can be either closed or open. 139 // 140 // Types that are assignable to StartKeyType: 141 // *KeyRange_StartClosed 142 // *KeyRange_StartOpen 143 StartKeyType isKeyRange_StartKeyType `protobuf_oneof:"start_key_type"` 144 // The end key must be provided. It can be either closed or open. 145 // 146 // Types that are assignable to EndKeyType: 147 // *KeyRange_EndClosed 148 // *KeyRange_EndOpen 149 EndKeyType isKeyRange_EndKeyType `protobuf_oneof:"end_key_type"` 150} 151 152func (x *KeyRange) Reset() { 153 *x = KeyRange{} 154 if protoimpl.UnsafeEnabled { 155 mi := &file_google_spanner_v1_keys_proto_msgTypes[0] 156 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 157 ms.StoreMessageInfo(mi) 158 } 159} 160 161func (x *KeyRange) String() string { 162 return protoimpl.X.MessageStringOf(x) 163} 164 165func (*KeyRange) ProtoMessage() {} 166 167func (x *KeyRange) ProtoReflect() protoreflect.Message { 168 mi := &file_google_spanner_v1_keys_proto_msgTypes[0] 169 if protoimpl.UnsafeEnabled && x != nil { 170 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 171 if ms.LoadMessageInfo() == nil { 172 ms.StoreMessageInfo(mi) 173 } 174 return ms 175 } 176 return mi.MessageOf(x) 177} 178 179// Deprecated: Use KeyRange.ProtoReflect.Descriptor instead. 180func (*KeyRange) Descriptor() ([]byte, []int) { 181 return file_google_spanner_v1_keys_proto_rawDescGZIP(), []int{0} 182} 183 184func (m *KeyRange) GetStartKeyType() isKeyRange_StartKeyType { 185 if m != nil { 186 return m.StartKeyType 187 } 188 return nil 189} 190 191func (x *KeyRange) GetStartClosed() *structpb.ListValue { 192 if x, ok := x.GetStartKeyType().(*KeyRange_StartClosed); ok { 193 return x.StartClosed 194 } 195 return nil 196} 197 198func (x *KeyRange) GetStartOpen() *structpb.ListValue { 199 if x, ok := x.GetStartKeyType().(*KeyRange_StartOpen); ok { 200 return x.StartOpen 201 } 202 return nil 203} 204 205func (m *KeyRange) GetEndKeyType() isKeyRange_EndKeyType { 206 if m != nil { 207 return m.EndKeyType 208 } 209 return nil 210} 211 212func (x *KeyRange) GetEndClosed() *structpb.ListValue { 213 if x, ok := x.GetEndKeyType().(*KeyRange_EndClosed); ok { 214 return x.EndClosed 215 } 216 return nil 217} 218 219func (x *KeyRange) GetEndOpen() *structpb.ListValue { 220 if x, ok := x.GetEndKeyType().(*KeyRange_EndOpen); ok { 221 return x.EndOpen 222 } 223 return nil 224} 225 226type isKeyRange_StartKeyType interface { 227 isKeyRange_StartKeyType() 228} 229 230type KeyRange_StartClosed struct { 231 // If the start is closed, then the range includes all rows whose 232 // first `len(start_closed)` key columns exactly match `start_closed`. 233 StartClosed *structpb.ListValue `protobuf:"bytes,1,opt,name=start_closed,json=startClosed,proto3,oneof"` 234} 235 236type KeyRange_StartOpen struct { 237 // If the start is open, then the range excludes rows whose first 238 // `len(start_open)` key columns exactly match `start_open`. 239 StartOpen *structpb.ListValue `protobuf:"bytes,2,opt,name=start_open,json=startOpen,proto3,oneof"` 240} 241 242func (*KeyRange_StartClosed) isKeyRange_StartKeyType() {} 243 244func (*KeyRange_StartOpen) isKeyRange_StartKeyType() {} 245 246type isKeyRange_EndKeyType interface { 247 isKeyRange_EndKeyType() 248} 249 250type KeyRange_EndClosed struct { 251 // If the end is closed, then the range includes all rows whose 252 // first `len(end_closed)` key columns exactly match `end_closed`. 253 EndClosed *structpb.ListValue `protobuf:"bytes,3,opt,name=end_closed,json=endClosed,proto3,oneof"` 254} 255 256type KeyRange_EndOpen struct { 257 // If the end is open, then the range excludes rows whose first 258 // `len(end_open)` key columns exactly match `end_open`. 259 EndOpen *structpb.ListValue `protobuf:"bytes,4,opt,name=end_open,json=endOpen,proto3,oneof"` 260} 261 262func (*KeyRange_EndClosed) isKeyRange_EndKeyType() {} 263 264func (*KeyRange_EndOpen) isKeyRange_EndKeyType() {} 265 266// `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All 267// the keys are expected to be in the same table or index. The keys need 268// not be sorted in any particular way. 269// 270// If the same key is specified multiple times in the set (for example 271// if two ranges, two keys, or a key and a range overlap), Cloud Spanner 272// behaves as if the key were only specified once. 273type KeySet struct { 274 state protoimpl.MessageState 275 sizeCache protoimpl.SizeCache 276 unknownFields protoimpl.UnknownFields 277 278 // A list of specific keys. Entries in `keys` should have exactly as 279 // many elements as there are columns in the primary or index key 280 // with which this `KeySet` is used. Individual key values are 281 // encoded as described [here][google.spanner.v1.TypeCode]. 282 Keys []*structpb.ListValue `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` 283 // A list of key ranges. See [KeyRange][google.spanner.v1.KeyRange] for more information about 284 // key range specifications. 285 Ranges []*KeyRange `protobuf:"bytes,2,rep,name=ranges,proto3" json:"ranges,omitempty"` 286 // For convenience `all` can be set to `true` to indicate that this 287 // `KeySet` matches all keys in the table or index. Note that any keys 288 // specified in `keys` or `ranges` are only yielded once. 289 All bool `protobuf:"varint,3,opt,name=all,proto3" json:"all,omitempty"` 290} 291 292func (x *KeySet) Reset() { 293 *x = KeySet{} 294 if protoimpl.UnsafeEnabled { 295 mi := &file_google_spanner_v1_keys_proto_msgTypes[1] 296 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 297 ms.StoreMessageInfo(mi) 298 } 299} 300 301func (x *KeySet) String() string { 302 return protoimpl.X.MessageStringOf(x) 303} 304 305func (*KeySet) ProtoMessage() {} 306 307func (x *KeySet) ProtoReflect() protoreflect.Message { 308 mi := &file_google_spanner_v1_keys_proto_msgTypes[1] 309 if protoimpl.UnsafeEnabled && x != nil { 310 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 311 if ms.LoadMessageInfo() == nil { 312 ms.StoreMessageInfo(mi) 313 } 314 return ms 315 } 316 return mi.MessageOf(x) 317} 318 319// Deprecated: Use KeySet.ProtoReflect.Descriptor instead. 320func (*KeySet) Descriptor() ([]byte, []int) { 321 return file_google_spanner_v1_keys_proto_rawDescGZIP(), []int{1} 322} 323 324func (x *KeySet) GetKeys() []*structpb.ListValue { 325 if x != nil { 326 return x.Keys 327 } 328 return nil 329} 330 331func (x *KeySet) GetRanges() []*KeyRange { 332 if x != nil { 333 return x.Ranges 334 } 335 return nil 336} 337 338func (x *KeySet) GetAll() bool { 339 if x != nil { 340 return x.All 341 } 342 return false 343} 344 345var File_google_spanner_v1_keys_proto protoreflect.FileDescriptor 346 347var file_google_spanner_v1_keys_proto_rawDesc = []byte{ 348 0x0a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 349 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 350 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76, 351 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 352 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 353 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 354 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa0, 0x02, 355 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 356 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 357 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 358 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 359 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x0a, 0x73, 360 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 361 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 362 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 363 0x74, 0x61, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 364 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 365 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 366 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x43, 367 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x70, 0x65, 368 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 369 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 370 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x10, 371 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 372 0x42, 0x0e, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 373 0x22, 0x7f, 0x0a, 0x06, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x6b, 0x65, 374 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 375 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 376 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x33, 0x0a, 0x06, 0x72, 0x61, 377 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 378 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 379 0x65, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 380 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 381 0x6c, 0x42, 0xaf, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 382 0x2e, 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x4b, 0x65, 0x79, 383 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 384 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 385 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 386 0x73, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x70, 0x61, 0x6e, 0x6e, 387 0x65, 0x72, 0xaa, 0x02, 0x17, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 388 0x64, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x47, 389 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x53, 0x70, 0x61, 0x6e, 390 0x6e, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 391 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x3a, 392 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 393} 394 395var ( 396 file_google_spanner_v1_keys_proto_rawDescOnce sync.Once 397 file_google_spanner_v1_keys_proto_rawDescData = file_google_spanner_v1_keys_proto_rawDesc 398) 399 400func file_google_spanner_v1_keys_proto_rawDescGZIP() []byte { 401 file_google_spanner_v1_keys_proto_rawDescOnce.Do(func() { 402 file_google_spanner_v1_keys_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_spanner_v1_keys_proto_rawDescData) 403 }) 404 return file_google_spanner_v1_keys_proto_rawDescData 405} 406 407var file_google_spanner_v1_keys_proto_msgTypes = make([]protoimpl.MessageInfo, 2) 408var file_google_spanner_v1_keys_proto_goTypes = []interface{}{ 409 (*KeyRange)(nil), // 0: google.spanner.v1.KeyRange 410 (*KeySet)(nil), // 1: google.spanner.v1.KeySet 411 (*structpb.ListValue)(nil), // 2: google.protobuf.ListValue 412} 413var file_google_spanner_v1_keys_proto_depIdxs = []int32{ 414 2, // 0: google.spanner.v1.KeyRange.start_closed:type_name -> google.protobuf.ListValue 415 2, // 1: google.spanner.v1.KeyRange.start_open:type_name -> google.protobuf.ListValue 416 2, // 2: google.spanner.v1.KeyRange.end_closed:type_name -> google.protobuf.ListValue 417 2, // 3: google.spanner.v1.KeyRange.end_open:type_name -> google.protobuf.ListValue 418 2, // 4: google.spanner.v1.KeySet.keys:type_name -> google.protobuf.ListValue 419 0, // 5: google.spanner.v1.KeySet.ranges:type_name -> google.spanner.v1.KeyRange 420 6, // [6:6] is the sub-list for method output_type 421 6, // [6:6] is the sub-list for method input_type 422 6, // [6:6] is the sub-list for extension type_name 423 6, // [6:6] is the sub-list for extension extendee 424 0, // [0:6] is the sub-list for field type_name 425} 426 427func init() { file_google_spanner_v1_keys_proto_init() } 428func file_google_spanner_v1_keys_proto_init() { 429 if File_google_spanner_v1_keys_proto != nil { 430 return 431 } 432 if !protoimpl.UnsafeEnabled { 433 file_google_spanner_v1_keys_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 434 switch v := v.(*KeyRange); i { 435 case 0: 436 return &v.state 437 case 1: 438 return &v.sizeCache 439 case 2: 440 return &v.unknownFields 441 default: 442 return nil 443 } 444 } 445 file_google_spanner_v1_keys_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 446 switch v := v.(*KeySet); i { 447 case 0: 448 return &v.state 449 case 1: 450 return &v.sizeCache 451 case 2: 452 return &v.unknownFields 453 default: 454 return nil 455 } 456 } 457 } 458 file_google_spanner_v1_keys_proto_msgTypes[0].OneofWrappers = []interface{}{ 459 (*KeyRange_StartClosed)(nil), 460 (*KeyRange_StartOpen)(nil), 461 (*KeyRange_EndClosed)(nil), 462 (*KeyRange_EndOpen)(nil), 463 } 464 type x struct{} 465 out := protoimpl.TypeBuilder{ 466 File: protoimpl.DescBuilder{ 467 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 468 RawDescriptor: file_google_spanner_v1_keys_proto_rawDesc, 469 NumEnums: 0, 470 NumMessages: 2, 471 NumExtensions: 0, 472 NumServices: 0, 473 }, 474 GoTypes: file_google_spanner_v1_keys_proto_goTypes, 475 DependencyIndexes: file_google_spanner_v1_keys_proto_depIdxs, 476 MessageInfos: file_google_spanner_v1_keys_proto_msgTypes, 477 }.Build() 478 File_google_spanner_v1_keys_proto = out.File 479 file_google_spanner_v1_keys_proto_rawDesc = nil 480 file_google_spanner_v1_keys_proto_goTypes = nil 481 file_google_spanner_v1_keys_proto_depIdxs = nil 482} 483