github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1/device_hardware/device_hardware.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/devices/proto/v1/device_hardware.proto 3 // DO NOT EDIT!!! 4 5 package device_hardware 6 7 import ( 8 "encoding/json" 9 "strings" 10 11 "google.golang.org/grpc/codes" 12 "google.golang.org/grpc/status" 13 "google.golang.org/protobuf/proto" 14 preflect "google.golang.org/protobuf/reflect/protoreflect" 15 googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 16 17 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 18 ) 19 20 // proto imports 21 import ( 22 cellular_api_sim_card "github.com/cloudwan/edgelq-sdk/cellular-api/resources/v1/sim_card" 23 device "github.com/cloudwan/edgelq-sdk/devices/resources/v1/device" 24 project "github.com/cloudwan/edgelq-sdk/devices/resources/v1/project" 25 provisioning_policy "github.com/cloudwan/edgelq-sdk/devices/resources/v1/provisioning_policy" 26 meta "github.com/cloudwan/goten-sdk/types/meta" 27 ) 28 29 // ensure the imports are used 30 var ( 31 _ = new(json.Marshaler) 32 _ = strings.Builder{} 33 34 _ = codes.NotFound 35 _ = status.Status{} 36 _ = new(proto.Message) 37 _ = new(preflect.Message) 38 _ = googlefieldmaskpb.FieldMask{} 39 40 _ = new(gotenobject.FieldMask) 41 ) 42 43 // make sure we're using proto imports 44 var ( 45 _ = &cellular_api_sim_card.SimCard{} 46 _ = &device.Device{} 47 _ = &project.Project{} 48 _ = &provisioning_policy.ProvisioningPolicy{} 49 _ = &meta.Meta{} 50 ) 51 52 type DeviceHardware_FieldMask struct { 53 Paths []DeviceHardware_FieldPath 54 } 55 56 func FullDeviceHardware_FieldMask() *DeviceHardware_FieldMask { 57 res := &DeviceHardware_FieldMask{} 58 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorName}) 59 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorMetadata}) 60 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorDisplayName}) 61 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorSerialNumber}) 62 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorManufacturer}) 63 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorProductName}) 64 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorMacAddress}) 65 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorSimIccid}) 66 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorImei}) 67 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName}) 68 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorAssociatedDevice}) 69 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorAssociatedSimCard}) 70 res.Paths = append(res.Paths, &DeviceHardware_FieldTerminalPath{selector: DeviceHardware_FieldPathSelectorStatus}) 71 return res 72 } 73 74 func (fieldMask *DeviceHardware_FieldMask) String() string { 75 if fieldMask == nil { 76 return "<nil>" 77 } 78 pathsStr := make([]string, 0, len(fieldMask.Paths)) 79 for _, path := range fieldMask.Paths { 80 pathsStr = append(pathsStr, path.String()) 81 } 82 return strings.Join(pathsStr, ", ") 83 } 84 85 func (fieldMask *DeviceHardware_FieldMask) IsFull() bool { 86 if fieldMask == nil { 87 return false 88 } 89 presentSelectors := make([]bool, 13) 90 for _, path := range fieldMask.Paths { 91 if asFinal, ok := path.(*DeviceHardware_FieldTerminalPath); ok { 92 presentSelectors[int(asFinal.selector)] = true 93 } 94 } 95 for _, flag := range presentSelectors { 96 if !flag { 97 return false 98 } 99 } 100 return true 101 } 102 103 func (fieldMask *DeviceHardware_FieldMask) ProtoReflect() preflect.Message { 104 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 105 return ParseDeviceHardware_FieldPath(raw) 106 }) 107 } 108 109 func (fieldMask *DeviceHardware_FieldMask) ProtoMessage() {} 110 111 func (fieldMask *DeviceHardware_FieldMask) Reset() { 112 if fieldMask != nil { 113 fieldMask.Paths = nil 114 } 115 } 116 117 func (fieldMask *DeviceHardware_FieldMask) Subtract(other *DeviceHardware_FieldMask) *DeviceHardware_FieldMask { 118 result := &DeviceHardware_FieldMask{} 119 removedSelectors := make([]bool, 13) 120 otherSubMasks := map[DeviceHardware_FieldPathSelector]gotenobject.FieldMask{ 121 DeviceHardware_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 122 DeviceHardware_FieldPathSelectorStatus: &DeviceHardware_Status_FieldMask{}, 123 } 124 mySubMasks := map[DeviceHardware_FieldPathSelector]gotenobject.FieldMask{ 125 DeviceHardware_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 126 DeviceHardware_FieldPathSelectorStatus: &DeviceHardware_Status_FieldMask{}, 127 } 128 129 for _, path := range other.GetPaths() { 130 switch tp := path.(type) { 131 case *DeviceHardware_FieldTerminalPath: 132 removedSelectors[int(tp.selector)] = true 133 case *DeviceHardware_FieldSubPath: 134 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 135 } 136 } 137 for _, path := range fieldMask.GetPaths() { 138 if !removedSelectors[int(path.Selector())] { 139 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 140 if tp, ok := path.(*DeviceHardware_FieldTerminalPath); ok { 141 switch tp.selector { 142 case DeviceHardware_FieldPathSelectorMetadata: 143 mySubMasks[DeviceHardware_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 144 case DeviceHardware_FieldPathSelectorStatus: 145 mySubMasks[DeviceHardware_FieldPathSelectorStatus] = FullDeviceHardware_Status_FieldMask() 146 } 147 } else if tp, ok := path.(*DeviceHardware_FieldSubPath); ok { 148 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 149 } 150 } else { 151 result.Paths = append(result.Paths, path) 152 } 153 } 154 } 155 for selector, mySubMask := range mySubMasks { 156 if mySubMask.PathsCount() > 0 { 157 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 158 result.Paths = append(result.Paths, &DeviceHardware_FieldSubPath{selector: selector, subPath: allowedPath}) 159 } 160 } 161 } 162 163 if len(result.Paths) == 0 { 164 return nil 165 } 166 return result 167 } 168 169 func (fieldMask *DeviceHardware_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 170 return fieldMask.Subtract(other.(*DeviceHardware_FieldMask)) 171 } 172 173 // FilterInputFields generates copy of field paths with output_only field paths removed 174 func (fieldMask *DeviceHardware_FieldMask) FilterInputFields() *DeviceHardware_FieldMask { 175 result := &DeviceHardware_FieldMask{} 176 for _, path := range fieldMask.Paths { 177 switch path.Selector() { 178 case DeviceHardware_FieldPathSelectorMetadata: 179 if _, ok := path.(*DeviceHardware_FieldTerminalPath); ok { 180 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 181 result.Paths = append(result.Paths, &DeviceHardware_FieldSubPath{selector: path.Selector(), subPath: subpath}) 182 } 183 } else if sub, ok := path.(*DeviceHardware_FieldSubPath); ok { 184 selectedMask := &meta.Meta_FieldMask{ 185 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 186 } 187 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 188 result.Paths = append(result.Paths, &DeviceHardware_FieldSubPath{selector: DeviceHardware_FieldPathSelectorMetadata, subPath: allowedPath}) 189 } 190 } 191 default: 192 result.Paths = append(result.Paths, path) 193 } 194 } 195 return result 196 } 197 198 // ToFieldMask is used for proto conversions 199 func (fieldMask *DeviceHardware_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 200 protoFieldMask := &googlefieldmaskpb.FieldMask{} 201 for _, path := range fieldMask.Paths { 202 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 203 } 204 return protoFieldMask 205 } 206 207 func (fieldMask *DeviceHardware_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 208 if fieldMask == nil { 209 return status.Error(codes.Internal, "target field mask is nil") 210 } 211 fieldMask.Paths = make([]DeviceHardware_FieldPath, 0, len(protoFieldMask.Paths)) 212 for _, strPath := range protoFieldMask.Paths { 213 path, err := ParseDeviceHardware_FieldPath(strPath) 214 if err != nil { 215 return err 216 } 217 fieldMask.Paths = append(fieldMask.Paths, path) 218 } 219 return nil 220 } 221 222 // implement methods required by customType 223 func (fieldMask DeviceHardware_FieldMask) Marshal() ([]byte, error) { 224 protoFieldMask := fieldMask.ToProtoFieldMask() 225 return proto.Marshal(protoFieldMask) 226 } 227 228 func (fieldMask *DeviceHardware_FieldMask) Unmarshal(data []byte) error { 229 protoFieldMask := &googlefieldmaskpb.FieldMask{} 230 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 231 return err 232 } 233 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 234 return err 235 } 236 return nil 237 } 238 239 func (fieldMask *DeviceHardware_FieldMask) Size() int { 240 return proto.Size(fieldMask.ToProtoFieldMask()) 241 } 242 243 func (fieldMask DeviceHardware_FieldMask) MarshalJSON() ([]byte, error) { 244 return json.Marshal(fieldMask.ToProtoFieldMask()) 245 } 246 247 func (fieldMask *DeviceHardware_FieldMask) UnmarshalJSON(data []byte) error { 248 protoFieldMask := &googlefieldmaskpb.FieldMask{} 249 if err := json.Unmarshal(data, protoFieldMask); err != nil { 250 return err 251 } 252 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 253 return err 254 } 255 return nil 256 } 257 258 func (fieldMask *DeviceHardware_FieldMask) AppendPath(path DeviceHardware_FieldPath) { 259 fieldMask.Paths = append(fieldMask.Paths, path) 260 } 261 262 func (fieldMask *DeviceHardware_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 263 fieldMask.Paths = append(fieldMask.Paths, path.(DeviceHardware_FieldPath)) 264 } 265 266 func (fieldMask *DeviceHardware_FieldMask) GetPaths() []DeviceHardware_FieldPath { 267 if fieldMask == nil { 268 return nil 269 } 270 return fieldMask.Paths 271 } 272 273 func (fieldMask *DeviceHardware_FieldMask) GetRawPaths() []gotenobject.FieldPath { 274 if fieldMask == nil { 275 return nil 276 } 277 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 278 for _, path := range fieldMask.Paths { 279 rawPaths = append(rawPaths, path) 280 } 281 return rawPaths 282 } 283 284 func (fieldMask *DeviceHardware_FieldMask) SetFromCliFlag(raw string) error { 285 path, err := ParseDeviceHardware_FieldPath(raw) 286 if err != nil { 287 return err 288 } 289 fieldMask.Paths = append(fieldMask.Paths, path) 290 return nil 291 } 292 293 func (fieldMask *DeviceHardware_FieldMask) Set(target, source *DeviceHardware) { 294 for _, path := range fieldMask.Paths { 295 val, _ := path.GetSingle(source) 296 // if val is nil, then field does not exist in source, skip 297 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 298 if val != nil { 299 path.WithIValue(val).SetTo(&target) 300 } 301 } 302 } 303 304 func (fieldMask *DeviceHardware_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 305 fieldMask.Set(target.(*DeviceHardware), source.(*DeviceHardware)) 306 } 307 308 func (fieldMask *DeviceHardware_FieldMask) Project(source *DeviceHardware) *DeviceHardware { 309 if source == nil { 310 return nil 311 } 312 if fieldMask == nil { 313 return source 314 } 315 result := &DeviceHardware{} 316 metadataMask := &meta.Meta_FieldMask{} 317 wholeMetadataAccepted := false 318 statusMask := &DeviceHardware_Status_FieldMask{} 319 wholeStatusAccepted := false 320 321 for _, p := range fieldMask.Paths { 322 switch tp := p.(type) { 323 case *DeviceHardware_FieldTerminalPath: 324 switch tp.selector { 325 case DeviceHardware_FieldPathSelectorName: 326 result.Name = source.Name 327 case DeviceHardware_FieldPathSelectorMetadata: 328 result.Metadata = source.Metadata 329 wholeMetadataAccepted = true 330 case DeviceHardware_FieldPathSelectorDisplayName: 331 result.DisplayName = source.DisplayName 332 case DeviceHardware_FieldPathSelectorSerialNumber: 333 result.SerialNumber = source.SerialNumber 334 case DeviceHardware_FieldPathSelectorManufacturer: 335 result.Manufacturer = source.Manufacturer 336 case DeviceHardware_FieldPathSelectorProductName: 337 result.ProductName = source.ProductName 338 case DeviceHardware_FieldPathSelectorMacAddress: 339 result.MacAddress = source.MacAddress 340 case DeviceHardware_FieldPathSelectorSimIccid: 341 result.SimIccid = source.SimIccid 342 case DeviceHardware_FieldPathSelectorImei: 343 result.Imei = source.Imei 344 case DeviceHardware_FieldPathSelectorAssociatedProvisioningPolicyName: 345 result.AssociatedProvisioningPolicyName = source.AssociatedProvisioningPolicyName 346 case DeviceHardware_FieldPathSelectorAssociatedDevice: 347 result.AssociatedDevice = source.AssociatedDevice 348 case DeviceHardware_FieldPathSelectorAssociatedSimCard: 349 result.AssociatedSimCard = source.AssociatedSimCard 350 case DeviceHardware_FieldPathSelectorStatus: 351 result.Status = source.Status 352 wholeStatusAccepted = true 353 } 354 case *DeviceHardware_FieldSubPath: 355 switch tp.selector { 356 case DeviceHardware_FieldPathSelectorMetadata: 357 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 358 case DeviceHardware_FieldPathSelectorStatus: 359 statusMask.AppendPath(tp.subPath.(DeviceHardwareStatus_FieldPath)) 360 } 361 } 362 } 363 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 364 result.Metadata = metadataMask.Project(source.GetMetadata()) 365 } 366 if wholeStatusAccepted == false && len(statusMask.Paths) > 0 { 367 result.Status = statusMask.Project(source.GetStatus()) 368 } 369 return result 370 } 371 372 func (fieldMask *DeviceHardware_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 373 return fieldMask.Project(source.(*DeviceHardware)) 374 } 375 376 func (fieldMask *DeviceHardware_FieldMask) PathsCount() int { 377 if fieldMask == nil { 378 return 0 379 } 380 return len(fieldMask.Paths) 381 } 382 383 type DeviceHardware_Status_FieldMask struct { 384 Paths []DeviceHardwareStatus_FieldPath 385 } 386 387 func FullDeviceHardware_Status_FieldMask() *DeviceHardware_Status_FieldMask { 388 res := &DeviceHardware_Status_FieldMask{} 389 res.Paths = append(res.Paths, &DeviceHardwareStatus_FieldTerminalPath{selector: DeviceHardwareStatus_FieldPathSelectorProvisioningState}) 390 return res 391 } 392 393 func (fieldMask *DeviceHardware_Status_FieldMask) String() string { 394 if fieldMask == nil { 395 return "<nil>" 396 } 397 pathsStr := make([]string, 0, len(fieldMask.Paths)) 398 for _, path := range fieldMask.Paths { 399 pathsStr = append(pathsStr, path.String()) 400 } 401 return strings.Join(pathsStr, ", ") 402 } 403 404 func (fieldMask *DeviceHardware_Status_FieldMask) IsFull() bool { 405 if fieldMask == nil { 406 return false 407 } 408 presentSelectors := make([]bool, 1) 409 for _, path := range fieldMask.Paths { 410 if asFinal, ok := path.(*DeviceHardwareStatus_FieldTerminalPath); ok { 411 presentSelectors[int(asFinal.selector)] = true 412 } 413 } 414 for _, flag := range presentSelectors { 415 if !flag { 416 return false 417 } 418 } 419 return true 420 } 421 422 func (fieldMask *DeviceHardware_Status_FieldMask) ProtoReflect() preflect.Message { 423 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 424 return ParseDeviceHardwareStatus_FieldPath(raw) 425 }) 426 } 427 428 func (fieldMask *DeviceHardware_Status_FieldMask) ProtoMessage() {} 429 430 func (fieldMask *DeviceHardware_Status_FieldMask) Reset() { 431 if fieldMask != nil { 432 fieldMask.Paths = nil 433 } 434 } 435 436 func (fieldMask *DeviceHardware_Status_FieldMask) Subtract(other *DeviceHardware_Status_FieldMask) *DeviceHardware_Status_FieldMask { 437 result := &DeviceHardware_Status_FieldMask{} 438 removedSelectors := make([]bool, 1) 439 440 for _, path := range other.GetPaths() { 441 switch tp := path.(type) { 442 case *DeviceHardwareStatus_FieldTerminalPath: 443 removedSelectors[int(tp.selector)] = true 444 } 445 } 446 for _, path := range fieldMask.GetPaths() { 447 if !removedSelectors[int(path.Selector())] { 448 result.Paths = append(result.Paths, path) 449 } 450 } 451 452 if len(result.Paths) == 0 { 453 return nil 454 } 455 return result 456 } 457 458 func (fieldMask *DeviceHardware_Status_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 459 return fieldMask.Subtract(other.(*DeviceHardware_Status_FieldMask)) 460 } 461 462 // FilterInputFields generates copy of field paths with output_only field paths removed 463 func (fieldMask *DeviceHardware_Status_FieldMask) FilterInputFields() *DeviceHardware_Status_FieldMask { 464 result := &DeviceHardware_Status_FieldMask{} 465 result.Paths = append(result.Paths, fieldMask.Paths...) 466 return result 467 } 468 469 // ToFieldMask is used for proto conversions 470 func (fieldMask *DeviceHardware_Status_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 471 protoFieldMask := &googlefieldmaskpb.FieldMask{} 472 for _, path := range fieldMask.Paths { 473 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 474 } 475 return protoFieldMask 476 } 477 478 func (fieldMask *DeviceHardware_Status_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 479 if fieldMask == nil { 480 return status.Error(codes.Internal, "target field mask is nil") 481 } 482 fieldMask.Paths = make([]DeviceHardwareStatus_FieldPath, 0, len(protoFieldMask.Paths)) 483 for _, strPath := range protoFieldMask.Paths { 484 path, err := ParseDeviceHardwareStatus_FieldPath(strPath) 485 if err != nil { 486 return err 487 } 488 fieldMask.Paths = append(fieldMask.Paths, path) 489 } 490 return nil 491 } 492 493 // implement methods required by customType 494 func (fieldMask DeviceHardware_Status_FieldMask) Marshal() ([]byte, error) { 495 protoFieldMask := fieldMask.ToProtoFieldMask() 496 return proto.Marshal(protoFieldMask) 497 } 498 499 func (fieldMask *DeviceHardware_Status_FieldMask) Unmarshal(data []byte) error { 500 protoFieldMask := &googlefieldmaskpb.FieldMask{} 501 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 502 return err 503 } 504 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 505 return err 506 } 507 return nil 508 } 509 510 func (fieldMask *DeviceHardware_Status_FieldMask) Size() int { 511 return proto.Size(fieldMask.ToProtoFieldMask()) 512 } 513 514 func (fieldMask DeviceHardware_Status_FieldMask) MarshalJSON() ([]byte, error) { 515 return json.Marshal(fieldMask.ToProtoFieldMask()) 516 } 517 518 func (fieldMask *DeviceHardware_Status_FieldMask) UnmarshalJSON(data []byte) error { 519 protoFieldMask := &googlefieldmaskpb.FieldMask{} 520 if err := json.Unmarshal(data, protoFieldMask); err != nil { 521 return err 522 } 523 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 524 return err 525 } 526 return nil 527 } 528 529 func (fieldMask *DeviceHardware_Status_FieldMask) AppendPath(path DeviceHardwareStatus_FieldPath) { 530 fieldMask.Paths = append(fieldMask.Paths, path) 531 } 532 533 func (fieldMask *DeviceHardware_Status_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 534 fieldMask.Paths = append(fieldMask.Paths, path.(DeviceHardwareStatus_FieldPath)) 535 } 536 537 func (fieldMask *DeviceHardware_Status_FieldMask) GetPaths() []DeviceHardwareStatus_FieldPath { 538 if fieldMask == nil { 539 return nil 540 } 541 return fieldMask.Paths 542 } 543 544 func (fieldMask *DeviceHardware_Status_FieldMask) GetRawPaths() []gotenobject.FieldPath { 545 if fieldMask == nil { 546 return nil 547 } 548 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 549 for _, path := range fieldMask.Paths { 550 rawPaths = append(rawPaths, path) 551 } 552 return rawPaths 553 } 554 555 func (fieldMask *DeviceHardware_Status_FieldMask) SetFromCliFlag(raw string) error { 556 path, err := ParseDeviceHardwareStatus_FieldPath(raw) 557 if err != nil { 558 return err 559 } 560 fieldMask.Paths = append(fieldMask.Paths, path) 561 return nil 562 } 563 564 func (fieldMask *DeviceHardware_Status_FieldMask) Set(target, source *DeviceHardware_Status) { 565 for _, path := range fieldMask.Paths { 566 val, _ := path.GetSingle(source) 567 // if val is nil, then field does not exist in source, skip 568 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 569 if val != nil { 570 path.WithIValue(val).SetTo(&target) 571 } 572 } 573 } 574 575 func (fieldMask *DeviceHardware_Status_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 576 fieldMask.Set(target.(*DeviceHardware_Status), source.(*DeviceHardware_Status)) 577 } 578 579 func (fieldMask *DeviceHardware_Status_FieldMask) Project(source *DeviceHardware_Status) *DeviceHardware_Status { 580 if source == nil { 581 return nil 582 } 583 if fieldMask == nil { 584 return source 585 } 586 result := &DeviceHardware_Status{} 587 588 for _, p := range fieldMask.Paths { 589 switch tp := p.(type) { 590 case *DeviceHardwareStatus_FieldTerminalPath: 591 switch tp.selector { 592 case DeviceHardwareStatus_FieldPathSelectorProvisioningState: 593 result.ProvisioningState = source.ProvisioningState 594 } 595 } 596 } 597 return result 598 } 599 600 func (fieldMask *DeviceHardware_Status_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 601 return fieldMask.Project(source.(*DeviceHardware_Status)) 602 } 603 604 func (fieldMask *DeviceHardware_Status_FieldMask) PathsCount() int { 605 if fieldMask == nil { 606 return 0 607 } 608 return len(fieldMask.Paths) 609 }