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

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/limits/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  	meta_resource "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/resource"
    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  	_ = &meta_resource.Resource{}
    42  )
    43  
    44  type Allowance_FieldMask struct {
    45  	Paths []Allowance_FieldPath
    46  }
    47  
    48  func FullAllowance_FieldMask() *Allowance_FieldMask {
    49  	res := &Allowance_FieldMask{}
    50  	res.Paths = append(res.Paths, &Allowance_FieldTerminalPath{selector: Allowance_FieldPathSelectorResource})
    51  	res.Paths = append(res.Paths, &Allowance_FieldTerminalPath{selector: Allowance_FieldPathSelectorValue})
    52  	return res
    53  }
    54  
    55  func (fieldMask *Allowance_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 *Allowance_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.(*Allowance_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 *Allowance_FieldMask) ProtoReflect() preflect.Message {
    85  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
    86  		return ParseAllowance_FieldPath(raw)
    87  	})
    88  }
    89  
    90  func (fieldMask *Allowance_FieldMask) ProtoMessage() {}
    91  
    92  func (fieldMask *Allowance_FieldMask) Reset() {
    93  	if fieldMask != nil {
    94  		fieldMask.Paths = nil
    95  	}
    96  }
    97  
    98  func (fieldMask *Allowance_FieldMask) Subtract(other *Allowance_FieldMask) *Allowance_FieldMask {
    99  	result := &Allowance_FieldMask{}
   100  	removedSelectors := make([]bool, 2)
   101  
   102  	for _, path := range other.GetPaths() {
   103  		switch tp := path.(type) {
   104  		case *Allowance_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 *Allowance_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   121  	return fieldMask.Subtract(other.(*Allowance_FieldMask))
   122  }
   123  
   124  // FilterInputFields generates copy of field paths with output_only field paths removed
   125  func (fieldMask *Allowance_FieldMask) FilterInputFields() *Allowance_FieldMask {
   126  	result := &Allowance_FieldMask{}
   127  	result.Paths = append(result.Paths, fieldMask.Paths...)
   128  	return result
   129  }
   130  
   131  // ToFieldMask is used for proto conversions
   132  func (fieldMask *Allowance_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 *Allowance_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([]Allowance_FieldPath, 0, len(protoFieldMask.Paths))
   145  	for _, strPath := range protoFieldMask.Paths {
   146  		path, err := ParseAllowance_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 Allowance_FieldMask) Marshal() ([]byte, error) {
   157  	protoFieldMask := fieldMask.ToProtoFieldMask()
   158  	return proto.Marshal(protoFieldMask)
   159  }
   160  
   161  func (fieldMask *Allowance_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 *Allowance_FieldMask) Size() int {
   173  	return proto.Size(fieldMask.ToProtoFieldMask())
   174  }
   175  
   176  func (fieldMask Allowance_FieldMask) MarshalJSON() ([]byte, error) {
   177  	return json.Marshal(fieldMask.ToProtoFieldMask())
   178  }
   179  
   180  func (fieldMask *Allowance_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 *Allowance_FieldMask) AppendPath(path Allowance_FieldPath) {
   192  	fieldMask.Paths = append(fieldMask.Paths, path)
   193  }
   194  
   195  func (fieldMask *Allowance_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   196  	fieldMask.Paths = append(fieldMask.Paths, path.(Allowance_FieldPath))
   197  }
   198  
   199  func (fieldMask *Allowance_FieldMask) GetPaths() []Allowance_FieldPath {
   200  	if fieldMask == nil {
   201  		return nil
   202  	}
   203  	return fieldMask.Paths
   204  }
   205  
   206  func (fieldMask *Allowance_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 *Allowance_FieldMask) SetFromCliFlag(raw string) error {
   218  	path, err := ParseAllowance_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 *Allowance_FieldMask) Set(target, source *Allowance) {
   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 *Allowance_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   238  	fieldMask.Set(target.(*Allowance), source.(*Allowance))
   239  }
   240  
   241  func (fieldMask *Allowance_FieldMask) Project(source *Allowance) *Allowance {
   242  	if source == nil {
   243  		return nil
   244  	}
   245  	if fieldMask == nil {
   246  		return source
   247  	}
   248  	result := &Allowance{}
   249  
   250  	for _, p := range fieldMask.Paths {
   251  		switch tp := p.(type) {
   252  		case *Allowance_FieldTerminalPath:
   253  			switch tp.selector {
   254  			case Allowance_FieldPathSelectorResource:
   255  				result.Resource = source.Resource
   256  			case Allowance_FieldPathSelectorValue:
   257  				result.Value = source.Value
   258  			}
   259  		}
   260  	}
   261  	return result
   262  }
   263  
   264  func (fieldMask *Allowance_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   265  	return fieldMask.Project(source.(*Allowance))
   266  }
   267  
   268  func (fieldMask *Allowance_FieldMask) PathsCount() int {
   269  	if fieldMask == nil {
   270  		return 0
   271  	}
   272  	return len(fieldMask.Paths)
   273  }
   274  
   275  type RegionalDistribution_FieldMask struct {
   276  	Paths []RegionalDistribution_FieldPath
   277  }
   278  
   279  func FullRegionalDistribution_FieldMask() *RegionalDistribution_FieldMask {
   280  	res := &RegionalDistribution_FieldMask{}
   281  	res.Paths = append(res.Paths, &RegionalDistribution_FieldTerminalPath{selector: RegionalDistribution_FieldPathSelectorResource})
   282  	res.Paths = append(res.Paths, &RegionalDistribution_FieldTerminalPath{selector: RegionalDistribution_FieldPathSelectorLimitsByRegion})
   283  	return res
   284  }
   285  
   286  func (fieldMask *RegionalDistribution_FieldMask) String() string {
   287  	if fieldMask == nil {
   288  		return "<nil>"
   289  	}
   290  	pathsStr := make([]string, 0, len(fieldMask.Paths))
   291  	for _, path := range fieldMask.Paths {
   292  		pathsStr = append(pathsStr, path.String())
   293  	}
   294  	return strings.Join(pathsStr, ", ")
   295  }
   296  
   297  func (fieldMask *RegionalDistribution_FieldMask) IsFull() bool {
   298  	if fieldMask == nil {
   299  		return false
   300  	}
   301  	presentSelectors := make([]bool, 2)
   302  	for _, path := range fieldMask.Paths {
   303  		if asFinal, ok := path.(*RegionalDistribution_FieldTerminalPath); ok {
   304  			presentSelectors[int(asFinal.selector)] = true
   305  		}
   306  	}
   307  	for _, flag := range presentSelectors {
   308  		if !flag {
   309  			return false
   310  		}
   311  	}
   312  	return true
   313  }
   314  
   315  func (fieldMask *RegionalDistribution_FieldMask) ProtoReflect() preflect.Message {
   316  	return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) {
   317  		return ParseRegionalDistribution_FieldPath(raw)
   318  	})
   319  }
   320  
   321  func (fieldMask *RegionalDistribution_FieldMask) ProtoMessage() {}
   322  
   323  func (fieldMask *RegionalDistribution_FieldMask) Reset() {
   324  	if fieldMask != nil {
   325  		fieldMask.Paths = nil
   326  	}
   327  }
   328  
   329  func (fieldMask *RegionalDistribution_FieldMask) Subtract(other *RegionalDistribution_FieldMask) *RegionalDistribution_FieldMask {
   330  	result := &RegionalDistribution_FieldMask{}
   331  	removedSelectors := make([]bool, 2)
   332  
   333  	for _, path := range other.GetPaths() {
   334  		switch tp := path.(type) {
   335  		case *RegionalDistribution_FieldTerminalPath:
   336  			removedSelectors[int(tp.selector)] = true
   337  		}
   338  	}
   339  	for _, path := range fieldMask.GetPaths() {
   340  		if !removedSelectors[int(path.Selector())] {
   341  			result.Paths = append(result.Paths, path)
   342  		}
   343  	}
   344  
   345  	if len(result.Paths) == 0 {
   346  		return nil
   347  	}
   348  	return result
   349  }
   350  
   351  func (fieldMask *RegionalDistribution_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask {
   352  	return fieldMask.Subtract(other.(*RegionalDistribution_FieldMask))
   353  }
   354  
   355  // FilterInputFields generates copy of field paths with output_only field paths removed
   356  func (fieldMask *RegionalDistribution_FieldMask) FilterInputFields() *RegionalDistribution_FieldMask {
   357  	result := &RegionalDistribution_FieldMask{}
   358  	result.Paths = append(result.Paths, fieldMask.Paths...)
   359  	return result
   360  }
   361  
   362  // ToFieldMask is used for proto conversions
   363  func (fieldMask *RegionalDistribution_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask {
   364  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   365  	for _, path := range fieldMask.Paths {
   366  		protoFieldMask.Paths = append(protoFieldMask.Paths, path.String())
   367  	}
   368  	return protoFieldMask
   369  }
   370  
   371  func (fieldMask *RegionalDistribution_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error {
   372  	if fieldMask == nil {
   373  		return status.Error(codes.Internal, "target field mask is nil")
   374  	}
   375  	fieldMask.Paths = make([]RegionalDistribution_FieldPath, 0, len(protoFieldMask.Paths))
   376  	for _, strPath := range protoFieldMask.Paths {
   377  		path, err := ParseRegionalDistribution_FieldPath(strPath)
   378  		if err != nil {
   379  			return err
   380  		}
   381  		fieldMask.Paths = append(fieldMask.Paths, path)
   382  	}
   383  	return nil
   384  }
   385  
   386  // implement methods required by customType
   387  func (fieldMask RegionalDistribution_FieldMask) Marshal() ([]byte, error) {
   388  	protoFieldMask := fieldMask.ToProtoFieldMask()
   389  	return proto.Marshal(protoFieldMask)
   390  }
   391  
   392  func (fieldMask *RegionalDistribution_FieldMask) Unmarshal(data []byte) error {
   393  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   394  	if err := proto.Unmarshal(data, protoFieldMask); err != nil {
   395  		return err
   396  	}
   397  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   398  		return err
   399  	}
   400  	return nil
   401  }
   402  
   403  func (fieldMask *RegionalDistribution_FieldMask) Size() int {
   404  	return proto.Size(fieldMask.ToProtoFieldMask())
   405  }
   406  
   407  func (fieldMask RegionalDistribution_FieldMask) MarshalJSON() ([]byte, error) {
   408  	return json.Marshal(fieldMask.ToProtoFieldMask())
   409  }
   410  
   411  func (fieldMask *RegionalDistribution_FieldMask) UnmarshalJSON(data []byte) error {
   412  	protoFieldMask := &googlefieldmaskpb.FieldMask{}
   413  	if err := json.Unmarshal(data, protoFieldMask); err != nil {
   414  		return err
   415  	}
   416  	if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil {
   417  		return err
   418  	}
   419  	return nil
   420  }
   421  
   422  func (fieldMask *RegionalDistribution_FieldMask) AppendPath(path RegionalDistribution_FieldPath) {
   423  	fieldMask.Paths = append(fieldMask.Paths, path)
   424  }
   425  
   426  func (fieldMask *RegionalDistribution_FieldMask) AppendRawPath(path gotenobject.FieldPath) {
   427  	fieldMask.Paths = append(fieldMask.Paths, path.(RegionalDistribution_FieldPath))
   428  }
   429  
   430  func (fieldMask *RegionalDistribution_FieldMask) GetPaths() []RegionalDistribution_FieldPath {
   431  	if fieldMask == nil {
   432  		return nil
   433  	}
   434  	return fieldMask.Paths
   435  }
   436  
   437  func (fieldMask *RegionalDistribution_FieldMask) GetRawPaths() []gotenobject.FieldPath {
   438  	if fieldMask == nil {
   439  		return nil
   440  	}
   441  	rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths))
   442  	for _, path := range fieldMask.Paths {
   443  		rawPaths = append(rawPaths, path)
   444  	}
   445  	return rawPaths
   446  }
   447  
   448  func (fieldMask *RegionalDistribution_FieldMask) SetFromCliFlag(raw string) error {
   449  	path, err := ParseRegionalDistribution_FieldPath(raw)
   450  	if err != nil {
   451  		return err
   452  	}
   453  	fieldMask.Paths = append(fieldMask.Paths, path)
   454  	return nil
   455  }
   456  
   457  func (fieldMask *RegionalDistribution_FieldMask) Set(target, source *RegionalDistribution) {
   458  	for _, path := range fieldMask.Paths {
   459  		val, _ := path.GetSingle(source)
   460  		// if val is nil, then field does not exist in source, skip
   461  		// otherwise, process (can still reflect.ValueOf(val).IsNil!)
   462  		if val != nil {
   463  			path.WithIValue(val).SetTo(&target)
   464  		}
   465  	}
   466  }
   467  
   468  func (fieldMask *RegionalDistribution_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) {
   469  	fieldMask.Set(target.(*RegionalDistribution), source.(*RegionalDistribution))
   470  }
   471  
   472  func (fieldMask *RegionalDistribution_FieldMask) Project(source *RegionalDistribution) *RegionalDistribution {
   473  	if source == nil {
   474  		return nil
   475  	}
   476  	if fieldMask == nil {
   477  		return source
   478  	}
   479  	result := &RegionalDistribution{}
   480  	var limitsByRegionMapKeys []string
   481  	wholeLimitsByRegionAccepted := false
   482  
   483  	for _, p := range fieldMask.Paths {
   484  		switch tp := p.(type) {
   485  		case *RegionalDistribution_FieldTerminalPath:
   486  			switch tp.selector {
   487  			case RegionalDistribution_FieldPathSelectorResource:
   488  				result.Resource = source.Resource
   489  			case RegionalDistribution_FieldPathSelectorLimitsByRegion:
   490  				result.LimitsByRegion = source.LimitsByRegion
   491  				wholeLimitsByRegionAccepted = true
   492  			}
   493  		case *RegionalDistribution_FieldPathMap:
   494  			switch tp.selector {
   495  			case RegionalDistribution_FieldPathSelectorLimitsByRegion:
   496  				limitsByRegionMapKeys = append(limitsByRegionMapKeys, tp.key)
   497  			}
   498  		}
   499  	}
   500  	if wholeLimitsByRegionAccepted == false && len(limitsByRegionMapKeys) > 0 && source.GetLimitsByRegion() != nil {
   501  		copiedMap := map[string]int64{}
   502  		sourceMap := source.GetLimitsByRegion()
   503  		for _, key := range limitsByRegionMapKeys {
   504  			copiedMap[key] = sourceMap[key]
   505  		}
   506  		result.LimitsByRegion = copiedMap
   507  	}
   508  	return result
   509  }
   510  
   511  func (fieldMask *RegionalDistribution_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt {
   512  	return fieldMask.Project(source.(*RegionalDistribution))
   513  }
   514  
   515  func (fieldMask *RegionalDistribution_FieldMask) PathsCount() int {
   516  	if fieldMask == nil {
   517  		return 0
   518  	}
   519  	return len(fieldMask.Paths)
   520  }