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  	_ = &timestamppb.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  }