github.com/cloudwan/edgelq-sdk@v1.15.4/logging/resources/v1alpha2/common/common.pb.fieldmask.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/logging/proto/v1alpha2/common.proto
     3  // DO NOT EDIT!!!
     4  
     5  package common
     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  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    23  )
    24  
    25  // ensure the imports are used
    26  var (
    27  	_ = new(json.Marshaler)
    28  	_ = strings.Builder{}
    29  
    30  	_ = codes.NotFound
    31  	_ = status.Status{}
    32  	_ = new(proto.Message)
    33  	_ = new(preflect.Message)
    34  	_ = googlefieldmaskpb.FieldMask{}
    35  
    36  	_ = new(gotenobject.FieldMask)
    37  )
    38  
    39  // make sure we're using proto imports
    40  var (
    41  	_ = &timestamppb.Timestamp{}
    42  )
    43  
    44  type LabelDescriptor_FieldMask struct {
    45  	Paths []LabelDescriptor_FieldPath
    46  }
    47  
    48  func FullLabelDescriptor_FieldMask() *LabelDescriptor_FieldMask {
    49  	res := &LabelDescriptor_FieldMask{}
    50  	res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorKey})
    51  	res.Paths = append(res.Paths, &LabelDescriptor_FieldTerminalPath{selector: LabelDescriptor_FieldPathSelectorDescription})
    52  	return res
    53  }
    54  
    55  func (fieldMask *LabelDescriptor_FieldMask) String() string {
    56  	if fieldMask == nil {
    57  		return "<nil>"
    58  	}
    59  	pathsStr := make([]string, 0, len(fieldMask.Paths))
    60  	for _, path := range fieldMask.Paths {
    61  		pathsStr = append(pathsStr, path.String())
    62  	}
    63  	return strings.Join(pathsStr, ", ")
    64  }
    65  
    66  func (fieldMask *LabelDescriptor_FieldMask) IsFull() bool {
    67  	if fieldMask == nil {
    68  		return false
    69  	}
    70  	presentSelectors := make([]bool, 2)
    71  	for _, path := range fieldMask.Paths {
    72  		if asFinal, ok := path.(*LabelDescriptor_FieldTerminalPath); ok {
    73  			presentSelectors[int(asFinal.selector)] = true
    74  		}
    75  	}
    76  	for _, flag := range presentSelectors {
    77  		if !flag {
    78  			return false
    79  		}
    80  	}
    81  	return true
    82  }
    83  
    84  func (fieldMask *LabelDescriptor_FieldMask) ProtoReflect() preflect.Message {
    85  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
    86  		return ParseLabelDescriptor_FieldPath(raw)
    87  	})
    88  }
    89  
    90  func (fieldMask *LabelDescriptor_FieldMask) ProtoMessage() {}
    91  
    92  func (fieldMask *LabelDescriptor_FieldMask) Reset() {
    93  	if fieldMask != nil {
    94  		fieldMask.Paths = nil
    95  	}
    96  }
    97  
    98  func (fieldMask *LabelDescriptor_FieldMask) Subtract(other *LabelDescriptor_FieldMask) *LabelDescriptor_FieldMask {
    99  	result := &LabelDescriptor_FieldMask{}
   100  	removedSelectors := make([]bool, 2)
   101  
   102  	for _, path := range other.GetPaths() {
   103  		switch tp := path.(type) {
   104  		case *LabelDescriptor_FieldTerminalPath:
   105  			removedSelectors[int(tp.selector)] = true
   106  		}
   107  	}
   108  	for _, path := range fieldMask.GetPaths() {
   109  		if !removedSelectors[int(path.Selector())] {
   110  			result.Paths = append(result.Paths, path)
   111  		}
   112  	}
   113  
   114  	if len(result.Paths) == 0 {
   115  		return nil
   116  	}
   117  	return result
   118  }
   119  
   120  func (fieldMask *LabelDescriptor_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   121  	return fieldMask.Subtract(other.(*LabelDescriptor_FieldMask))
   122  }
   123  
   124  // FilterInputFields generates copy of field paths with output_only field paths removed
   125  func (fieldMask *LabelDescriptor_FieldMask) FilterInputFields() *LabelDescriptor_FieldMask {
   126  	result := &LabelDescriptor_FieldMask{}
   127  	result.Paths = append(result.Paths, fieldMask.Paths...)
   128  	return result
   129  }
   130  
   131  // ToFieldMask is used for proto conversions
   132  func (fieldMask *LabelDescriptor_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   133  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   134  	for _, path := range fieldMask.Paths {
   135  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   136  	}
   137  	return protoFieldMask
   138  }
   139  
   140  func (fieldMask *LabelDescriptor_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   141  	if fieldMask == nil {
   142  		return status.Error(codes.Internal, "target field mask is nil")
   143  	}
   144  	fieldMask.Paths = make([]LabelDescriptor_FieldPath, 0, len(protoFieldMask.Paths))
   145  	for _, strPath := range protoFieldMask.Paths {
   146  		path, err := ParseLabelDescriptor_FieldPath(strPath)
   147  		if err != nil {
   148  			return err
   149  		}
   150  		fieldMask.Paths = append(fieldMask.Paths, path)
   151  	}
   152  	return nil
   153  }
   154  
   155  // implement methods required by customType
   156  func (fieldMask LabelDescriptor_FieldMask) Marshal() ([]byte, error) {
   157  	protoFieldMask := fieldMask.ToProtoFieldMask()
   158  	return proto.Marshal(protoFieldMask)
   159  }
   160  
   161  func (fieldMask *LabelDescriptor_FieldMask) Unmarshal(data []byte) error {
   162  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   163  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   164  		return err
   165  	}
   166  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   167  		return err
   168  	}
   169  	return nil
   170  }
   171  
   172  func (fieldMask *LabelDescriptor_FieldMask) Size() int {
   173  	return proto.Size(fieldMask.ToProtoFieldMask())
   174  }
   175  
   176  func (fieldMask LabelDescriptor_FieldMask) MarshalJSON() ([]byte, error) {
   177  	return json.Marshal(fieldMask.ToProtoFieldMask())
   178  }
   179  
   180  func (fieldMask *LabelDescriptor_FieldMask) UnmarshalJSON(data []byte) error {
   181  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   182  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   183  		return err
   184  	}
   185  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   186  		return err
   187  	}
   188  	return nil
   189  }
   190  
   191  func (fieldMask *LabelDescriptor_FieldMask) AppendPath(path LabelDescriptor_FieldPath) {
   192  	fieldMask.Paths = append(fieldMask.Paths, path)
   193  }
   194  
   195  func (fieldMask *LabelDescriptor_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   196  	fieldMask.Paths = append(fieldMask.Paths, path.(LabelDescriptor_FieldPath))
   197  }
   198  
   199  func (fieldMask *LabelDescriptor_FieldMask) GetPaths() []LabelDescriptor_FieldPath {
   200  	if fieldMask == nil {
   201  		return nil
   202  	}
   203  	return fieldMask.Paths
   204  }
   205  
   206  func (fieldMask *LabelDescriptor_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   207  	if fieldMask == nil {
   208  		return nil
   209  	}
   210  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   211  	for _, path := range fieldMask.Paths {
   212  		rawPaths = append(rawPaths, path)
   213  	}
   214  	return rawPaths
   215  }
   216  
   217  func (fieldMask *LabelDescriptor_FieldMask) SetFromCliFlag(raw string) error {
   218  	path, err := ParseLabelDescriptor_FieldPath(raw)
   219  	if err != nil {
   220  		return err
   221  	}
   222  	fieldMask.Paths = append(fieldMask.Paths, path)
   223  	return nil
   224  }
   225  
   226  func (fieldMask *LabelDescriptor_FieldMask) Set(target, source *LabelDescriptor) {
   227  	for _, path := range fieldMask.Paths {
   228  		val, _ := path.GetSingle(source)
   229  		// if val is nil, then field does not exist in source, skip
   230  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   231  		if val != nil {
   232  			path.WithIValue(val).SetTo(&target)
   233  		}
   234  	}
   235  }
   236  
   237  func (fieldMask *LabelDescriptor_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   238  	fieldMask.Set(target.(*LabelDescriptor), source.(*LabelDescriptor))
   239  }
   240  
   241  func (fieldMask *LabelDescriptor_FieldMask) Project(source *LabelDescriptor) *LabelDescriptor {
   242  	if source == nil {
   243  		return nil
   244  	}
   245  	if fieldMask == nil {
   246  		return source
   247  	}
   248  	result := &LabelDescriptor{}
   249  
   250  	for _, p := range fieldMask.Paths {
   251  		switch tp := p.(type) {
   252  		case *LabelDescriptor_FieldTerminalPath:
   253  			switch tp.selector {
   254  			case LabelDescriptor_FieldPathSelectorKey:
   255  				result.Key = source.Key
   256  			case LabelDescriptor_FieldPathSelectorDescription:
   257  				result.Description = source.Description
   258  			}
   259  		}
   260  	}
   261  	return result
   262  }
   263  
   264  func (fieldMask *LabelDescriptor_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   265  	return fieldMask.Project(source.(*LabelDescriptor))
   266  }
   267  
   268  func (fieldMask *LabelDescriptor_FieldMask) PathsCount() int {
   269  	if fieldMask == nil {
   270  		return 0
   271  	}
   272  	return len(fieldMask.Paths)
   273  }
   274  
   275  type LabelKeySet_FieldMask struct {
   276  	Paths []LabelKeySet_FieldPath
   277  }
   278  
   279  func FullLabelKeySet_FieldMask() *LabelKeySet_FieldMask {
   280  	res := &LabelKeySet_FieldMask{}
   281  	res.Paths = append(res.Paths, &LabelKeySet_FieldTerminalPath{selector: LabelKeySet_FieldPathSelectorLabelKeys})
   282  	return res
   283  }
   284  
   285  func (fieldMask *LabelKeySet_FieldMask) String() string {
   286  	if fieldMask == nil {
   287  		return "<nil>"
   288  	}
   289  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   290  	for _, path := range fieldMask.Paths {
   291  		pathsStr = append(pathsStr, path.String())
   292  	}
   293  	return strings.Join(pathsStr, ", ")
   294  }
   295  
   296  func (fieldMask *LabelKeySet_FieldMask) IsFull() bool {
   297  	if fieldMask == nil {
   298  		return false
   299  	}
   300  	presentSelectors := make([]bool, 1)
   301  	for _, path := range fieldMask.Paths {
   302  		if asFinal, ok := path.(*LabelKeySet_FieldTerminalPath); ok {
   303  			presentSelectors[int(asFinal.selector)] = true
   304  		}
   305  	}
   306  	for _, flag := range presentSelectors {
   307  		if !flag {
   308  			return false
   309  		}
   310  	}
   311  	return true
   312  }
   313  
   314  func (fieldMask *LabelKeySet_FieldMask) ProtoReflect() preflect.Message {
   315  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   316  		return ParseLabelKeySet_FieldPath(raw)
   317  	})
   318  }
   319  
   320  func (fieldMask *LabelKeySet_FieldMask) ProtoMessage() {}
   321  
   322  func (fieldMask *LabelKeySet_FieldMask) Reset() {
   323  	if fieldMask != nil {
   324  		fieldMask.Paths = nil
   325  	}
   326  }
   327  
   328  func (fieldMask *LabelKeySet_FieldMask) Subtract(other *LabelKeySet_FieldMask) *LabelKeySet_FieldMask {
   329  	result := &LabelKeySet_FieldMask{}
   330  	removedSelectors := make([]bool, 1)
   331  
   332  	for _, path := range other.GetPaths() {
   333  		switch tp := path.(type) {
   334  		case *LabelKeySet_FieldTerminalPath:
   335  			removedSelectors[int(tp.selector)] = true
   336  		}
   337  	}
   338  	for _, path := range fieldMask.GetPaths() {
   339  		if !removedSelectors[int(path.Selector())] {
   340  			result.Paths = append(result.Paths, path)
   341  		}
   342  	}
   343  
   344  	if len(result.Paths) == 0 {
   345  		return nil
   346  	}
   347  	return result
   348  }
   349  
   350  func (fieldMask *LabelKeySet_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   351  	return fieldMask.Subtract(other.(*LabelKeySet_FieldMask))
   352  }
   353  
   354  // FilterInputFields generates copy of field paths with output_only field paths removed
   355  func (fieldMask *LabelKeySet_FieldMask) FilterInputFields() *LabelKeySet_FieldMask {
   356  	result := &LabelKeySet_FieldMask{}
   357  	result.Paths = append(result.Paths, fieldMask.Paths...)
   358  	return result
   359  }
   360  
   361  // ToFieldMask is used for proto conversions
   362  func (fieldMask *LabelKeySet_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   363  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   364  	for _, path := range fieldMask.Paths {
   365  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   366  	}
   367  	return protoFieldMask
   368  }
   369  
   370  func (fieldMask *LabelKeySet_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   371  	if fieldMask == nil {
   372  		return status.Error(codes.Internal, "target field mask is nil")
   373  	}
   374  	fieldMask.Paths = make([]LabelKeySet_FieldPath, 0, len(protoFieldMask.Paths))
   375  	for _, strPath := range protoFieldMask.Paths {
   376  		path, err := ParseLabelKeySet_FieldPath(strPath)
   377  		if err != nil {
   378  			return err
   379  		}
   380  		fieldMask.Paths = append(fieldMask.Paths, path)
   381  	}
   382  	return nil
   383  }
   384  
   385  // implement methods required by customType
   386  func (fieldMask LabelKeySet_FieldMask) Marshal() ([]byte, error) {
   387  	protoFieldMask := fieldMask.ToProtoFieldMask()
   388  	return proto.Marshal(protoFieldMask)
   389  }
   390  
   391  func (fieldMask *LabelKeySet_FieldMask) Unmarshal(data []byte) error {
   392  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   393  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   394  		return err
   395  	}
   396  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   397  		return err
   398  	}
   399  	return nil
   400  }
   401  
   402  func (fieldMask *LabelKeySet_FieldMask) Size() int {
   403  	return proto.Size(fieldMask.ToProtoFieldMask())
   404  }
   405  
   406  func (fieldMask LabelKeySet_FieldMask) MarshalJSON() ([]byte, error) {
   407  	return json.Marshal(fieldMask.ToProtoFieldMask())
   408  }
   409  
   410  func (fieldMask *LabelKeySet_FieldMask) UnmarshalJSON(data []byte) error {
   411  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   412  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   413  		return err
   414  	}
   415  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   416  		return err
   417  	}
   418  	return nil
   419  }
   420  
   421  func (fieldMask *LabelKeySet_FieldMask) AppendPath(path LabelKeySet_FieldPath) {
   422  	fieldMask.Paths = append(fieldMask.Paths, path)
   423  }
   424  
   425  func (fieldMask *LabelKeySet_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   426  	fieldMask.Paths = append(fieldMask.Paths, path.(LabelKeySet_FieldPath))
   427  }
   428  
   429  func (fieldMask *LabelKeySet_FieldMask) GetPaths() []LabelKeySet_FieldPath {
   430  	if fieldMask == nil {
   431  		return nil
   432  	}
   433  	return fieldMask.Paths
   434  }
   435  
   436  func (fieldMask *LabelKeySet_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   437  	if fieldMask == nil {
   438  		return nil
   439  	}
   440  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   441  	for _, path := range fieldMask.Paths {
   442  		rawPaths = append(rawPaths, path)
   443  	}
   444  	return rawPaths
   445  }
   446  
   447  func (fieldMask *LabelKeySet_FieldMask) SetFromCliFlag(raw string) error {
   448  	path, err := ParseLabelKeySet_FieldPath(raw)
   449  	if err != nil {
   450  		return err
   451  	}
   452  	fieldMask.Paths = append(fieldMask.Paths, path)
   453  	return nil
   454  }
   455  
   456  func (fieldMask *LabelKeySet_FieldMask) Set(target, source *LabelKeySet) {
   457  	for _, path := range fieldMask.Paths {
   458  		val, _ := path.GetSingle(source)
   459  		// if val is nil, then field does not exist in source, skip
   460  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   461  		if val != nil {
   462  			path.WithIValue(val).SetTo(&target)
   463  		}
   464  	}
   465  }
   466  
   467  func (fieldMask *LabelKeySet_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   468  	fieldMask.Set(target.(*LabelKeySet), source.(*LabelKeySet))
   469  }
   470  
   471  func (fieldMask *LabelKeySet_FieldMask) Project(source *LabelKeySet) *LabelKeySet {
   472  	if source == nil {
   473  		return nil
   474  	}
   475  	if fieldMask == nil {
   476  		return source
   477  	}
   478  	result := &LabelKeySet{}
   479  
   480  	for _, p := range fieldMask.Paths {
   481  		switch tp := p.(type) {
   482  		case *LabelKeySet_FieldTerminalPath:
   483  			switch tp.selector {
   484  			case LabelKeySet_FieldPathSelectorLabelKeys:
   485  				result.LabelKeys = source.LabelKeys
   486  			}
   487  		}
   488  	}
   489  	return result
   490  }
   491  
   492  func (fieldMask *LabelKeySet_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   493  	return fieldMask.Project(source.(*LabelKeySet))
   494  }
   495  
   496  func (fieldMask *LabelKeySet_FieldMask) PathsCount() int {
   497  	if fieldMask == nil {
   498  		return 0
   499  	}
   500  	return len(fieldMask.Paths)
   501  }
   502  
   503  type TimeInterval_FieldMask struct {
   504  	Paths []TimeInterval_FieldPath
   505  }
   506  
   507  func FullTimeInterval_FieldMask() *TimeInterval_FieldMask {
   508  	res := &TimeInterval_FieldMask{}
   509  	res.Paths = append(res.Paths, &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorEndTime})
   510  	res.Paths = append(res.Paths, &TimeInterval_FieldTerminalPath{selector: TimeInterval_FieldPathSelectorStartTime})
   511  	return res
   512  }
   513  
   514  func (fieldMask *TimeInterval_FieldMask) String() string {
   515  	if fieldMask == nil {
   516  		return "<nil>"
   517  	}
   518  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   519  	for _, path := range fieldMask.Paths {
   520  		pathsStr = append(pathsStr, path.String())
   521  	}
   522  	return strings.Join(pathsStr, ", ")
   523  }
   524  
   525  func (fieldMask *TimeInterval_FieldMask) IsFull() bool {
   526  	if fieldMask == nil {
   527  		return false
   528  	}
   529  	presentSelectors := make([]bool, 2)
   530  	for _, path := range fieldMask.Paths {
   531  		if asFinal, ok := path.(*TimeInterval_FieldTerminalPath); ok {
   532  			presentSelectors[int(asFinal.selector)] = true
   533  		}
   534  	}
   535  	for _, flag := range presentSelectors {
   536  		if !flag {
   537  			return false
   538  		}
   539  	}
   540  	return true
   541  }
   542  
   543  func (fieldMask *TimeInterval_FieldMask) ProtoReflect() preflect.Message {
   544  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   545  		return ParseTimeInterval_FieldPath(raw)
   546  	})
   547  }
   548  
   549  func (fieldMask *TimeInterval_FieldMask) ProtoMessage() {}
   550  
   551  func (fieldMask *TimeInterval_FieldMask) Reset() {
   552  	if fieldMask != nil {
   553  		fieldMask.Paths = nil
   554  	}
   555  }
   556  
   557  func (fieldMask *TimeInterval_FieldMask) Subtract(other *TimeInterval_FieldMask) *TimeInterval_FieldMask {
   558  	result := &TimeInterval_FieldMask{}
   559  	removedSelectors := make([]bool, 2)
   560  
   561  	for _, path := range other.GetPaths() {
   562  		switch tp := path.(type) {
   563  		case *TimeInterval_FieldTerminalPath:
   564  			removedSelectors[int(tp.selector)] = true
   565  		}
   566  	}
   567  	for _, path := range fieldMask.GetPaths() {
   568  		if !removedSelectors[int(path.Selector())] {
   569  			result.Paths = append(result.Paths, path)
   570  		}
   571  	}
   572  
   573  	if len(result.Paths) == 0 {
   574  		return nil
   575  	}
   576  	return result
   577  }
   578  
   579  func (fieldMask *TimeInterval_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   580  	return fieldMask.Subtract(other.(*TimeInterval_FieldMask))
   581  }
   582  
   583  // FilterInputFields generates copy of field paths with output_only field paths removed
   584  func (fieldMask *TimeInterval_FieldMask) FilterInputFields() *TimeInterval_FieldMask {
   585  	result := &TimeInterval_FieldMask{}
   586  	result.Paths = append(result.Paths, fieldMask.Paths...)
   587  	return result
   588  }
   589  
   590  // ToFieldMask is used for proto conversions
   591  func (fieldMask *TimeInterval_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   592  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   593  	for _, path := range fieldMask.Paths {
   594  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   595  	}
   596  	return protoFieldMask
   597  }
   598  
   599  func (fieldMask *TimeInterval_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   600  	if fieldMask == nil {
   601  		return status.Error(codes.Internal, "target field mask is nil")
   602  	}
   603  	fieldMask.Paths = make([]TimeInterval_FieldPath, 0, len(protoFieldMask.Paths))
   604  	for _, strPath := range protoFieldMask.Paths {
   605  		path, err := ParseTimeInterval_FieldPath(strPath)
   606  		if err != nil {
   607  			return err
   608  		}
   609  		fieldMask.Paths = append(fieldMask.Paths, path)
   610  	}
   611  	return nil
   612  }
   613  
   614  // implement methods required by customType
   615  func (fieldMask TimeInterval_FieldMask) Marshal() ([]byte, error) {
   616  	protoFieldMask := fieldMask.ToProtoFieldMask()
   617  	return proto.Marshal(protoFieldMask)
   618  }
   619  
   620  func (fieldMask *TimeInterval_FieldMask) Unmarshal(data []byte) error {
   621  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   622  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   623  		return err
   624  	}
   625  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   626  		return err
   627  	}
   628  	return nil
   629  }
   630  
   631  func (fieldMask *TimeInterval_FieldMask) Size() int {
   632  	return proto.Size(fieldMask.ToProtoFieldMask())
   633  }
   634  
   635  func (fieldMask TimeInterval_FieldMask) MarshalJSON() ([]byte, error) {
   636  	return json.Marshal(fieldMask.ToProtoFieldMask())
   637  }
   638  
   639  func (fieldMask *TimeInterval_FieldMask) UnmarshalJSON(data []byte) error {
   640  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   641  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   642  		return err
   643  	}
   644  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   645  		return err
   646  	}
   647  	return nil
   648  }
   649  
   650  func (fieldMask *TimeInterval_FieldMask) AppendPath(path TimeInterval_FieldPath) {
   651  	fieldMask.Paths = append(fieldMask.Paths, path)
   652  }
   653  
   654  func (fieldMask *TimeInterval_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   655  	fieldMask.Paths = append(fieldMask.Paths, path.(TimeInterval_FieldPath))
   656  }
   657  
   658  func (fieldMask *TimeInterval_FieldMask) GetPaths() []TimeInterval_FieldPath {
   659  	if fieldMask == nil {
   660  		return nil
   661  	}
   662  	return fieldMask.Paths
   663  }
   664  
   665  func (fieldMask *TimeInterval_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   666  	if fieldMask == nil {
   667  		return nil
   668  	}
   669  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   670  	for _, path := range fieldMask.Paths {
   671  		rawPaths = append(rawPaths, path)
   672  	}
   673  	return rawPaths
   674  }
   675  
   676  func (fieldMask *TimeInterval_FieldMask) SetFromCliFlag(raw string) error {
   677  	path, err := ParseTimeInterval_FieldPath(raw)
   678  	if err != nil {
   679  		return err
   680  	}
   681  	fieldMask.Paths = append(fieldMask.Paths, path)
   682  	return nil
   683  }
   684  
   685  func (fieldMask *TimeInterval_FieldMask) Set(target, source *TimeInterval) {
   686  	for _, path := range fieldMask.Paths {
   687  		val, _ := path.GetSingle(source)
   688  		// if val is nil, then field does not exist in source, skip
   689  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   690  		if val != nil {
   691  			path.WithIValue(val).SetTo(&target)
   692  		}
   693  	}
   694  }
   695  
   696  func (fieldMask *TimeInterval_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   697  	fieldMask.Set(target.(*TimeInterval), source.(*TimeInterval))
   698  }
   699  
   700  func (fieldMask *TimeInterval_FieldMask) Project(source *TimeInterval) *TimeInterval {
   701  	if source == nil {
   702  		return nil
   703  	}
   704  	if fieldMask == nil {
   705  		return source
   706  	}
   707  	result := &TimeInterval{}
   708  
   709  	for _, p := range fieldMask.Paths {
   710  		switch tp := p.(type) {
   711  		case *TimeInterval_FieldTerminalPath:
   712  			switch tp.selector {
   713  			case TimeInterval_FieldPathSelectorEndTime:
   714  				result.EndTime = source.EndTime
   715  			case TimeInterval_FieldPathSelectorStartTime:
   716  				result.StartTime = source.StartTime
   717  			}
   718  		}
   719  	}
   720  	return result
   721  }
   722  
   723  func (fieldMask *TimeInterval_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   724  	return fieldMask.Project(source.(*TimeInterval))
   725  }
   726  
   727  func (fieldMask *TimeInterval_FieldMask) PathsCount() int {
   728  	if fieldMask == nil {
   729  		return 0
   730  	}
   731  	return len(fieldMask.Paths)
   732  }