github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1/user/user.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/iam/proto/v1/user.proto 3 // DO NOT EDIT!!! 4 5 package user 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 meta "github.com/cloudwan/goten-sdk/types/meta" 23 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 24 ) 25 26 // ensure the imports are used 27 var ( 28 _ = new(json.Marshaler) 29 _ = strings.Builder{} 30 31 _ = codes.NotFound 32 _ = status.Status{} 33 _ = new(proto.Message) 34 _ = new(preflect.Message) 35 _ = googlefieldmaskpb.FieldMask{} 36 37 _ = new(gotenobject.FieldMask) 38 ) 39 40 // make sure we're using proto imports 41 var ( 42 _ = ×tamppb.Timestamp{} 43 _ = &meta.Meta{} 44 ) 45 46 type User_FieldMask struct { 47 Paths []User_FieldPath 48 } 49 50 func FullUser_FieldMask() *User_FieldMask { 51 res := &User_FieldMask{} 52 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorName}) 53 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorMetadata}) 54 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorFullName}) 55 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorEmail}) 56 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorEmailVerified}) 57 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorAuthInfo}) 58 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorSettings}) 59 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorRefreshedTime}) 60 res.Paths = append(res.Paths, &User_FieldTerminalPath{selector: User_FieldPathSelectorCtrlStatus}) 61 return res 62 } 63 64 func (fieldMask *User_FieldMask) String() string { 65 if fieldMask == nil { 66 return "<nil>" 67 } 68 pathsStr := make([]string, 0, len(fieldMask.Paths)) 69 for _, path := range fieldMask.Paths { 70 pathsStr = append(pathsStr, path.String()) 71 } 72 return strings.Join(pathsStr, ", ") 73 } 74 75 func (fieldMask *User_FieldMask) IsFull() bool { 76 if fieldMask == nil { 77 return false 78 } 79 presentSelectors := make([]bool, 9) 80 for _, path := range fieldMask.Paths { 81 if asFinal, ok := path.(*User_FieldTerminalPath); ok { 82 presentSelectors[int(asFinal.selector)] = true 83 } 84 } 85 for _, flag := range presentSelectors { 86 if !flag { 87 return false 88 } 89 } 90 return true 91 } 92 93 func (fieldMask *User_FieldMask) ProtoReflect() preflect.Message { 94 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 95 return ParseUser_FieldPath(raw) 96 }) 97 } 98 99 func (fieldMask *User_FieldMask) ProtoMessage() {} 100 101 func (fieldMask *User_FieldMask) Reset() { 102 if fieldMask != nil { 103 fieldMask.Paths = nil 104 } 105 } 106 107 func (fieldMask *User_FieldMask) Subtract(other *User_FieldMask) *User_FieldMask { 108 result := &User_FieldMask{} 109 removedSelectors := make([]bool, 9) 110 otherSubMasks := map[User_FieldPathSelector]gotenobject.FieldMask{ 111 User_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 112 User_FieldPathSelectorAuthInfo: &User_AuthInfo_FieldMask{}, 113 User_FieldPathSelectorCtrlStatus: &User_WorkStatus_FieldMask{}, 114 } 115 mySubMasks := map[User_FieldPathSelector]gotenobject.FieldMask{ 116 User_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 117 User_FieldPathSelectorAuthInfo: &User_AuthInfo_FieldMask{}, 118 User_FieldPathSelectorCtrlStatus: &User_WorkStatus_FieldMask{}, 119 } 120 121 for _, path := range other.GetPaths() { 122 switch tp := path.(type) { 123 case *User_FieldTerminalPath: 124 removedSelectors[int(tp.selector)] = true 125 case *User_FieldSubPath: 126 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 127 } 128 } 129 for _, path := range fieldMask.GetPaths() { 130 if !removedSelectors[int(path.Selector())] { 131 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 132 if tp, ok := path.(*User_FieldTerminalPath); ok { 133 switch tp.selector { 134 case User_FieldPathSelectorMetadata: 135 mySubMasks[User_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 136 case User_FieldPathSelectorAuthInfo: 137 mySubMasks[User_FieldPathSelectorAuthInfo] = FullUser_AuthInfo_FieldMask() 138 case User_FieldPathSelectorCtrlStatus: 139 mySubMasks[User_FieldPathSelectorCtrlStatus] = FullUser_WorkStatus_FieldMask() 140 } 141 } else if tp, ok := path.(*User_FieldSubPath); ok { 142 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 143 } 144 } else { 145 result.Paths = append(result.Paths, path) 146 } 147 } 148 } 149 for selector, mySubMask := range mySubMasks { 150 if mySubMask.PathsCount() > 0 { 151 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 152 result.Paths = append(result.Paths, &User_FieldSubPath{selector: selector, subPath: allowedPath}) 153 } 154 } 155 } 156 157 if len(result.Paths) == 0 { 158 return nil 159 } 160 return result 161 } 162 163 func (fieldMask *User_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 164 return fieldMask.Subtract(other.(*User_FieldMask)) 165 } 166 167 // FilterInputFields generates copy of field paths with output_only field paths removed 168 func (fieldMask *User_FieldMask) FilterInputFields() *User_FieldMask { 169 result := &User_FieldMask{} 170 for _, path := range fieldMask.Paths { 171 switch path.Selector() { 172 case User_FieldPathSelectorRefreshedTime: 173 case User_FieldPathSelectorMetadata: 174 if _, ok := path.(*User_FieldTerminalPath); ok { 175 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 176 result.Paths = append(result.Paths, &User_FieldSubPath{selector: path.Selector(), subPath: subpath}) 177 } 178 } else if sub, ok := path.(*User_FieldSubPath); ok { 179 selectedMask := &meta.Meta_FieldMask{ 180 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 181 } 182 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 183 result.Paths = append(result.Paths, &User_FieldSubPath{selector: User_FieldPathSelectorMetadata, subPath: allowedPath}) 184 } 185 } 186 default: 187 result.Paths = append(result.Paths, path) 188 } 189 } 190 return result 191 } 192 193 // ToFieldMask is used for proto conversions 194 func (fieldMask *User_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 195 protoFieldMask := &googlefieldmaskpb.FieldMask{} 196 for _, path := range fieldMask.Paths { 197 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 198 } 199 return protoFieldMask 200 } 201 202 func (fieldMask *User_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 203 if fieldMask == nil { 204 return status.Error(codes.Internal, "target field mask is nil") 205 } 206 fieldMask.Paths = make([]User_FieldPath, 0, len(protoFieldMask.Paths)) 207 for _, strPath := range protoFieldMask.Paths { 208 path, err := ParseUser_FieldPath(strPath) 209 if err != nil { 210 return err 211 } 212 fieldMask.Paths = append(fieldMask.Paths, path) 213 } 214 return nil 215 } 216 217 // implement methods required by customType 218 func (fieldMask User_FieldMask) Marshal() ([]byte, error) { 219 protoFieldMask := fieldMask.ToProtoFieldMask() 220 return proto.Marshal(protoFieldMask) 221 } 222 223 func (fieldMask *User_FieldMask) Unmarshal(data []byte) error { 224 protoFieldMask := &googlefieldmaskpb.FieldMask{} 225 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 226 return err 227 } 228 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 229 return err 230 } 231 return nil 232 } 233 234 func (fieldMask *User_FieldMask) Size() int { 235 return proto.Size(fieldMask.ToProtoFieldMask()) 236 } 237 238 func (fieldMask User_FieldMask) MarshalJSON() ([]byte, error) { 239 return json.Marshal(fieldMask.ToProtoFieldMask()) 240 } 241 242 func (fieldMask *User_FieldMask) UnmarshalJSON(data []byte) error { 243 protoFieldMask := &googlefieldmaskpb.FieldMask{} 244 if err := json.Unmarshal(data, protoFieldMask); err != nil { 245 return err 246 } 247 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 248 return err 249 } 250 return nil 251 } 252 253 func (fieldMask *User_FieldMask) AppendPath(path User_FieldPath) { 254 fieldMask.Paths = append(fieldMask.Paths, path) 255 } 256 257 func (fieldMask *User_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 258 fieldMask.Paths = append(fieldMask.Paths, path.(User_FieldPath)) 259 } 260 261 func (fieldMask *User_FieldMask) GetPaths() []User_FieldPath { 262 if fieldMask == nil { 263 return nil 264 } 265 return fieldMask.Paths 266 } 267 268 func (fieldMask *User_FieldMask) GetRawPaths() []gotenobject.FieldPath { 269 if fieldMask == nil { 270 return nil 271 } 272 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 273 for _, path := range fieldMask.Paths { 274 rawPaths = append(rawPaths, path) 275 } 276 return rawPaths 277 } 278 279 func (fieldMask *User_FieldMask) SetFromCliFlag(raw string) error { 280 path, err := ParseUser_FieldPath(raw) 281 if err != nil { 282 return err 283 } 284 fieldMask.Paths = append(fieldMask.Paths, path) 285 return nil 286 } 287 288 func (fieldMask *User_FieldMask) Set(target, source *User) { 289 for _, path := range fieldMask.Paths { 290 val, _ := path.GetSingle(source) 291 // if val is nil, then field does not exist in source, skip 292 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 293 if val != nil { 294 path.WithIValue(val).SetTo(&target) 295 } 296 } 297 } 298 299 func (fieldMask *User_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 300 fieldMask.Set(target.(*User), source.(*User)) 301 } 302 303 func (fieldMask *User_FieldMask) Project(source *User) *User { 304 if source == nil { 305 return nil 306 } 307 if fieldMask == nil { 308 return source 309 } 310 result := &User{} 311 metadataMask := &meta.Meta_FieldMask{} 312 wholeMetadataAccepted := false 313 authInfoMask := &User_AuthInfo_FieldMask{} 314 wholeAuthInfoAccepted := false 315 ctrlStatusMask := &User_WorkStatus_FieldMask{} 316 wholeCtrlStatusAccepted := false 317 var settingsMapKeys []string 318 wholeSettingsAccepted := false 319 320 for _, p := range fieldMask.Paths { 321 switch tp := p.(type) { 322 case *User_FieldTerminalPath: 323 switch tp.selector { 324 case User_FieldPathSelectorName: 325 result.Name = source.Name 326 case User_FieldPathSelectorMetadata: 327 result.Metadata = source.Metadata 328 wholeMetadataAccepted = true 329 case User_FieldPathSelectorFullName: 330 result.FullName = source.FullName 331 case User_FieldPathSelectorEmail: 332 result.Email = source.Email 333 case User_FieldPathSelectorEmailVerified: 334 result.EmailVerified = source.EmailVerified 335 case User_FieldPathSelectorAuthInfo: 336 result.AuthInfo = source.AuthInfo 337 wholeAuthInfoAccepted = true 338 case User_FieldPathSelectorSettings: 339 result.Settings = source.Settings 340 wholeSettingsAccepted = true 341 case User_FieldPathSelectorRefreshedTime: 342 result.RefreshedTime = source.RefreshedTime 343 case User_FieldPathSelectorCtrlStatus: 344 result.CtrlStatus = source.CtrlStatus 345 wholeCtrlStatusAccepted = true 346 } 347 case *User_FieldSubPath: 348 switch tp.selector { 349 case User_FieldPathSelectorMetadata: 350 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 351 case User_FieldPathSelectorAuthInfo: 352 authInfoMask.AppendPath(tp.subPath.(UserAuthInfo_FieldPath)) 353 case User_FieldPathSelectorCtrlStatus: 354 ctrlStatusMask.AppendPath(tp.subPath.(UserWorkStatus_FieldPath)) 355 } 356 case *User_FieldPathMap: 357 switch tp.selector { 358 case User_FieldPathSelectorSettings: 359 settingsMapKeys = append(settingsMapKeys, tp.key) 360 } 361 } 362 } 363 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 364 result.Metadata = metadataMask.Project(source.GetMetadata()) 365 } 366 if wholeAuthInfoAccepted == false && len(authInfoMask.Paths) > 0 { 367 result.AuthInfo = authInfoMask.Project(source.GetAuthInfo()) 368 } 369 if wholeSettingsAccepted == false && len(settingsMapKeys) > 0 && source.GetSettings() != nil { 370 copiedMap := map[string]string{} 371 sourceMap := source.GetSettings() 372 for _, key := range settingsMapKeys { 373 copiedMap[key] = sourceMap[key] 374 } 375 result.Settings = copiedMap 376 } 377 if wholeCtrlStatusAccepted == false && len(ctrlStatusMask.Paths) > 0 { 378 result.CtrlStatus = ctrlStatusMask.Project(source.GetCtrlStatus()) 379 } 380 return result 381 } 382 383 func (fieldMask *User_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 384 return fieldMask.Project(source.(*User)) 385 } 386 387 func (fieldMask *User_FieldMask) PathsCount() int { 388 if fieldMask == nil { 389 return 0 390 } 391 return len(fieldMask.Paths) 392 } 393 394 type User_AuthInfo_FieldMask struct { 395 Paths []UserAuthInfo_FieldPath 396 } 397 398 func FullUser_AuthInfo_FieldMask() *User_AuthInfo_FieldMask { 399 res := &User_AuthInfo_FieldMask{} 400 res.Paths = append(res.Paths, &UserAuthInfo_FieldTerminalPath{selector: UserAuthInfo_FieldPathSelectorProvider}) 401 res.Paths = append(res.Paths, &UserAuthInfo_FieldTerminalPath{selector: UserAuthInfo_FieldPathSelectorId}) 402 return res 403 } 404 405 func (fieldMask *User_AuthInfo_FieldMask) String() string { 406 if fieldMask == nil { 407 return "<nil>" 408 } 409 pathsStr := make([]string, 0, len(fieldMask.Paths)) 410 for _, path := range fieldMask.Paths { 411 pathsStr = append(pathsStr, path.String()) 412 } 413 return strings.Join(pathsStr, ", ") 414 } 415 416 func (fieldMask *User_AuthInfo_FieldMask) IsFull() bool { 417 if fieldMask == nil { 418 return false 419 } 420 presentSelectors := make([]bool, 2) 421 for _, path := range fieldMask.Paths { 422 if asFinal, ok := path.(*UserAuthInfo_FieldTerminalPath); ok { 423 presentSelectors[int(asFinal.selector)] = true 424 } 425 } 426 for _, flag := range presentSelectors { 427 if !flag { 428 return false 429 } 430 } 431 return true 432 } 433 434 func (fieldMask *User_AuthInfo_FieldMask) ProtoReflect() preflect.Message { 435 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 436 return ParseUserAuthInfo_FieldPath(raw) 437 }) 438 } 439 440 func (fieldMask *User_AuthInfo_FieldMask) ProtoMessage() {} 441 442 func (fieldMask *User_AuthInfo_FieldMask) Reset() { 443 if fieldMask != nil { 444 fieldMask.Paths = nil 445 } 446 } 447 448 func (fieldMask *User_AuthInfo_FieldMask) Subtract(other *User_AuthInfo_FieldMask) *User_AuthInfo_FieldMask { 449 result := &User_AuthInfo_FieldMask{} 450 removedSelectors := make([]bool, 2) 451 452 for _, path := range other.GetPaths() { 453 switch tp := path.(type) { 454 case *UserAuthInfo_FieldTerminalPath: 455 removedSelectors[int(tp.selector)] = true 456 } 457 } 458 for _, path := range fieldMask.GetPaths() { 459 if !removedSelectors[int(path.Selector())] { 460 result.Paths = append(result.Paths, path) 461 } 462 } 463 464 if len(result.Paths) == 0 { 465 return nil 466 } 467 return result 468 } 469 470 func (fieldMask *User_AuthInfo_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 471 return fieldMask.Subtract(other.(*User_AuthInfo_FieldMask)) 472 } 473 474 // FilterInputFields generates copy of field paths with output_only field paths removed 475 func (fieldMask *User_AuthInfo_FieldMask) FilterInputFields() *User_AuthInfo_FieldMask { 476 result := &User_AuthInfo_FieldMask{} 477 result.Paths = append(result.Paths, fieldMask.Paths...) 478 return result 479 } 480 481 // ToFieldMask is used for proto conversions 482 func (fieldMask *User_AuthInfo_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 483 protoFieldMask := &googlefieldmaskpb.FieldMask{} 484 for _, path := range fieldMask.Paths { 485 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 486 } 487 return protoFieldMask 488 } 489 490 func (fieldMask *User_AuthInfo_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 491 if fieldMask == nil { 492 return status.Error(codes.Internal, "target field mask is nil") 493 } 494 fieldMask.Paths = make([]UserAuthInfo_FieldPath, 0, len(protoFieldMask.Paths)) 495 for _, strPath := range protoFieldMask.Paths { 496 path, err := ParseUserAuthInfo_FieldPath(strPath) 497 if err != nil { 498 return err 499 } 500 fieldMask.Paths = append(fieldMask.Paths, path) 501 } 502 return nil 503 } 504 505 // implement methods required by customType 506 func (fieldMask User_AuthInfo_FieldMask) Marshal() ([]byte, error) { 507 protoFieldMask := fieldMask.ToProtoFieldMask() 508 return proto.Marshal(protoFieldMask) 509 } 510 511 func (fieldMask *User_AuthInfo_FieldMask) Unmarshal(data []byte) error { 512 protoFieldMask := &googlefieldmaskpb.FieldMask{} 513 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 514 return err 515 } 516 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 517 return err 518 } 519 return nil 520 } 521 522 func (fieldMask *User_AuthInfo_FieldMask) Size() int { 523 return proto.Size(fieldMask.ToProtoFieldMask()) 524 } 525 526 func (fieldMask User_AuthInfo_FieldMask) MarshalJSON() ([]byte, error) { 527 return json.Marshal(fieldMask.ToProtoFieldMask()) 528 } 529 530 func (fieldMask *User_AuthInfo_FieldMask) UnmarshalJSON(data []byte) error { 531 protoFieldMask := &googlefieldmaskpb.FieldMask{} 532 if err := json.Unmarshal(data, protoFieldMask); err != nil { 533 return err 534 } 535 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 536 return err 537 } 538 return nil 539 } 540 541 func (fieldMask *User_AuthInfo_FieldMask) AppendPath(path UserAuthInfo_FieldPath) { 542 fieldMask.Paths = append(fieldMask.Paths, path) 543 } 544 545 func (fieldMask *User_AuthInfo_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 546 fieldMask.Paths = append(fieldMask.Paths, path.(UserAuthInfo_FieldPath)) 547 } 548 549 func (fieldMask *User_AuthInfo_FieldMask) GetPaths() []UserAuthInfo_FieldPath { 550 if fieldMask == nil { 551 return nil 552 } 553 return fieldMask.Paths 554 } 555 556 func (fieldMask *User_AuthInfo_FieldMask) GetRawPaths() []gotenobject.FieldPath { 557 if fieldMask == nil { 558 return nil 559 } 560 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 561 for _, path := range fieldMask.Paths { 562 rawPaths = append(rawPaths, path) 563 } 564 return rawPaths 565 } 566 567 func (fieldMask *User_AuthInfo_FieldMask) SetFromCliFlag(raw string) error { 568 path, err := ParseUserAuthInfo_FieldPath(raw) 569 if err != nil { 570 return err 571 } 572 fieldMask.Paths = append(fieldMask.Paths, path) 573 return nil 574 } 575 576 func (fieldMask *User_AuthInfo_FieldMask) Set(target, source *User_AuthInfo) { 577 for _, path := range fieldMask.Paths { 578 val, _ := path.GetSingle(source) 579 // if val is nil, then field does not exist in source, skip 580 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 581 if val != nil { 582 path.WithIValue(val).SetTo(&target) 583 } 584 } 585 } 586 587 func (fieldMask *User_AuthInfo_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 588 fieldMask.Set(target.(*User_AuthInfo), source.(*User_AuthInfo)) 589 } 590 591 func (fieldMask *User_AuthInfo_FieldMask) Project(source *User_AuthInfo) *User_AuthInfo { 592 if source == nil { 593 return nil 594 } 595 if fieldMask == nil { 596 return source 597 } 598 result := &User_AuthInfo{} 599 600 for _, p := range fieldMask.Paths { 601 switch tp := p.(type) { 602 case *UserAuthInfo_FieldTerminalPath: 603 switch tp.selector { 604 case UserAuthInfo_FieldPathSelectorProvider: 605 result.Provider = source.Provider 606 case UserAuthInfo_FieldPathSelectorId: 607 result.Id = source.Id 608 } 609 } 610 } 611 return result 612 } 613 614 func (fieldMask *User_AuthInfo_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 615 return fieldMask.Project(source.(*User_AuthInfo)) 616 } 617 618 func (fieldMask *User_AuthInfo_FieldMask) PathsCount() int { 619 if fieldMask == nil { 620 return 0 621 } 622 return len(fieldMask.Paths) 623 } 624 625 type User_WorkStatus_FieldMask struct { 626 Paths []UserWorkStatus_FieldPath 627 } 628 629 func FullUser_WorkStatus_FieldMask() *User_WorkStatus_FieldMask { 630 res := &User_WorkStatus_FieldMask{} 631 res.Paths = append(res.Paths, &UserWorkStatus_FieldTerminalPath{selector: UserWorkStatus_FieldPathSelectorPending}) 632 return res 633 } 634 635 func (fieldMask *User_WorkStatus_FieldMask) String() string { 636 if fieldMask == nil { 637 return "<nil>" 638 } 639 pathsStr := make([]string, 0, len(fieldMask.Paths)) 640 for _, path := range fieldMask.Paths { 641 pathsStr = append(pathsStr, path.String()) 642 } 643 return strings.Join(pathsStr, ", ") 644 } 645 646 func (fieldMask *User_WorkStatus_FieldMask) IsFull() bool { 647 if fieldMask == nil { 648 return false 649 } 650 presentSelectors := make([]bool, 1) 651 for _, path := range fieldMask.Paths { 652 if asFinal, ok := path.(*UserWorkStatus_FieldTerminalPath); ok { 653 presentSelectors[int(asFinal.selector)] = true 654 } 655 } 656 for _, flag := range presentSelectors { 657 if !flag { 658 return false 659 } 660 } 661 return true 662 } 663 664 func (fieldMask *User_WorkStatus_FieldMask) ProtoReflect() preflect.Message { 665 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 666 return ParseUserWorkStatus_FieldPath(raw) 667 }) 668 } 669 670 func (fieldMask *User_WorkStatus_FieldMask) ProtoMessage() {} 671 672 func (fieldMask *User_WorkStatus_FieldMask) Reset() { 673 if fieldMask != nil { 674 fieldMask.Paths = nil 675 } 676 } 677 678 func (fieldMask *User_WorkStatus_FieldMask) Subtract(other *User_WorkStatus_FieldMask) *User_WorkStatus_FieldMask { 679 result := &User_WorkStatus_FieldMask{} 680 removedSelectors := make([]bool, 1) 681 682 for _, path := range other.GetPaths() { 683 switch tp := path.(type) { 684 case *UserWorkStatus_FieldTerminalPath: 685 removedSelectors[int(tp.selector)] = true 686 } 687 } 688 for _, path := range fieldMask.GetPaths() { 689 if !removedSelectors[int(path.Selector())] { 690 result.Paths = append(result.Paths, path) 691 } 692 } 693 694 if len(result.Paths) == 0 { 695 return nil 696 } 697 return result 698 } 699 700 func (fieldMask *User_WorkStatus_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 701 return fieldMask.Subtract(other.(*User_WorkStatus_FieldMask)) 702 } 703 704 // FilterInputFields generates copy of field paths with output_only field paths removed 705 func (fieldMask *User_WorkStatus_FieldMask) FilterInputFields() *User_WorkStatus_FieldMask { 706 result := &User_WorkStatus_FieldMask{} 707 result.Paths = append(result.Paths, fieldMask.Paths...) 708 return result 709 } 710 711 // ToFieldMask is used for proto conversions 712 func (fieldMask *User_WorkStatus_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 713 protoFieldMask := &googlefieldmaskpb.FieldMask{} 714 for _, path := range fieldMask.Paths { 715 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 716 } 717 return protoFieldMask 718 } 719 720 func (fieldMask *User_WorkStatus_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 721 if fieldMask == nil { 722 return status.Error(codes.Internal, "target field mask is nil") 723 } 724 fieldMask.Paths = make([]UserWorkStatus_FieldPath, 0, len(protoFieldMask.Paths)) 725 for _, strPath := range protoFieldMask.Paths { 726 path, err := ParseUserWorkStatus_FieldPath(strPath) 727 if err != nil { 728 return err 729 } 730 fieldMask.Paths = append(fieldMask.Paths, path) 731 } 732 return nil 733 } 734 735 // implement methods required by customType 736 func (fieldMask User_WorkStatus_FieldMask) Marshal() ([]byte, error) { 737 protoFieldMask := fieldMask.ToProtoFieldMask() 738 return proto.Marshal(protoFieldMask) 739 } 740 741 func (fieldMask *User_WorkStatus_FieldMask) Unmarshal(data []byte) error { 742 protoFieldMask := &googlefieldmaskpb.FieldMask{} 743 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 744 return err 745 } 746 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 747 return err 748 } 749 return nil 750 } 751 752 func (fieldMask *User_WorkStatus_FieldMask) Size() int { 753 return proto.Size(fieldMask.ToProtoFieldMask()) 754 } 755 756 func (fieldMask User_WorkStatus_FieldMask) MarshalJSON() ([]byte, error) { 757 return json.Marshal(fieldMask.ToProtoFieldMask()) 758 } 759 760 func (fieldMask *User_WorkStatus_FieldMask) UnmarshalJSON(data []byte) error { 761 protoFieldMask := &googlefieldmaskpb.FieldMask{} 762 if err := json.Unmarshal(data, protoFieldMask); err != nil { 763 return err 764 } 765 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 766 return err 767 } 768 return nil 769 } 770 771 func (fieldMask *User_WorkStatus_FieldMask) AppendPath(path UserWorkStatus_FieldPath) { 772 fieldMask.Paths = append(fieldMask.Paths, path) 773 } 774 775 func (fieldMask *User_WorkStatus_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 776 fieldMask.Paths = append(fieldMask.Paths, path.(UserWorkStatus_FieldPath)) 777 } 778 779 func (fieldMask *User_WorkStatus_FieldMask) GetPaths() []UserWorkStatus_FieldPath { 780 if fieldMask == nil { 781 return nil 782 } 783 return fieldMask.Paths 784 } 785 786 func (fieldMask *User_WorkStatus_FieldMask) GetRawPaths() []gotenobject.FieldPath { 787 if fieldMask == nil { 788 return nil 789 } 790 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 791 for _, path := range fieldMask.Paths { 792 rawPaths = append(rawPaths, path) 793 } 794 return rawPaths 795 } 796 797 func (fieldMask *User_WorkStatus_FieldMask) SetFromCliFlag(raw string) error { 798 path, err := ParseUserWorkStatus_FieldPath(raw) 799 if err != nil { 800 return err 801 } 802 fieldMask.Paths = append(fieldMask.Paths, path) 803 return nil 804 } 805 806 func (fieldMask *User_WorkStatus_FieldMask) Set(target, source *User_WorkStatus) { 807 for _, path := range fieldMask.Paths { 808 val, _ := path.GetSingle(source) 809 // if val is nil, then field does not exist in source, skip 810 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 811 if val != nil { 812 path.WithIValue(val).SetTo(&target) 813 } 814 } 815 } 816 817 func (fieldMask *User_WorkStatus_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 818 fieldMask.Set(target.(*User_WorkStatus), source.(*User_WorkStatus)) 819 } 820 821 func (fieldMask *User_WorkStatus_FieldMask) Project(source *User_WorkStatus) *User_WorkStatus { 822 if source == nil { 823 return nil 824 } 825 if fieldMask == nil { 826 return source 827 } 828 result := &User_WorkStatus{} 829 830 for _, p := range fieldMask.Paths { 831 switch tp := p.(type) { 832 case *UserWorkStatus_FieldTerminalPath: 833 switch tp.selector { 834 case UserWorkStatus_FieldPathSelectorPending: 835 result.Pending = source.Pending 836 } 837 } 838 } 839 return result 840 } 841 842 func (fieldMask *User_WorkStatus_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 843 return fieldMask.Project(source.(*User_WorkStatus)) 844 } 845 846 func (fieldMask *User_WorkStatus_FieldMask) PathsCount() int { 847 if fieldMask == nil { 848 return 0 849 } 850 return len(fieldMask.Paths) 851 }