github.com/optim-corp/cios-golang-sdk@v0.5.1/openapi/codegen/go-model/model.mustache (about)

     1  {{>partial_header}}
     2  package {{packageName}}
     3  {{#models}}{{#imports}}
     4  {{#-first}}import (
     5  {{/-first}}	"{{import}}"{{#-last}}
     6  )
     7  {{/-last}}{{/imports}}{{#model}}{{#isEnum}}{{#description}}// {{{classname}}} : {{{description}}}{{/description}}
     8  type {{{name}}} {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/format}}
     9  
    10  // List of {{{name}}}
    11  const (
    12  	{{#allowableValues}}
    13  	{{#enumVars}}
    14  	{{{classname}}}_{{name}} {{{classname}}} = {{{value}}}
    15  	{{/enumVars}}
    16  	{{/allowableValues}}
    17  ){{/isEnum}}{{^isEnum}}{{#description}}
    18  // {{classname}} - {{{description}}}{{/description}}
    19  type {{classname}} struct {
    20  {{#vars}}{{#description}}
    21  	// {{{description}}}{{/description}}
    22  	{{name}} {{#isNullable}}*{{/isNullable}}{{{dataType}}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}`
    23  {{/vars}}
    24  }
    25  
    26  type {{classname}}Stream []{{classname}}
    27  
    28  func {{classname}}StreamOf(arg ...{{classname}}) *{{classname}}Stream {
    29  	return (*{{classname}}Stream)(&arg)
    30  }
    31  func {{classname}}StreamFrom(arg []{{classname}}) *{{classname}}Stream {
    32  	return (*{{classname}}Stream)(&arg)
    33  }
    34  
    35  func (self *{{classname}}Stream) Add(arg {{classname}}) *{{classname}}Stream {
    36  	return self.AddAll(arg)
    37  
    38  }
    39  
    40  func (self *{{classname}}Stream) AddAll(arg ...{{classname}}) *{{classname}}Stream {
    41  	*self = append(*self, arg...)
    42  	return self
    43  }
    44  
    45  func (self *{{classname}}Stream) AddSafe(arg *{{classname}}) *{{classname}}Stream {
    46      if arg != nil {
    47          self.Add(*arg)
    48      }
    49  	return self
    50  
    51  }
    52  func (self *{{classname}}Stream) AllMatch(fn func(arg {{classname}}, index int) bool) bool {
    53  	for i, v := range *self {
    54  		if !fn(v, i) {
    55  			return false
    56  		}
    57  	}
    58  	return true
    59  }
    60  
    61  func (self *{{classname}}Stream) AnyMatch(fn func(arg {{classname}}, index int) bool) bool {
    62  	for i, v := range *self {
    63  		if fn(v, i) {
    64  			return true
    65  		}
    66  	}
    67  	return false
    68  }
    69  func (self *{{classname}}Stream) Clone() *{{classname}}Stream {
    70  	temp := {{classname}}StreamOf()
    71  	*temp = *self
    72  	return temp
    73  }
    74  
    75  func (self *{{classname}}Stream) Copy() *{{classname}}Stream {
    76  	return self.Clone()
    77  }
    78  
    79  func (self *{{classname}}Stream) Concat(arg []{{classname}}) *{{classname}}Stream {
    80  	return self.AddAll(arg...)
    81  }
    82  
    83  func (self *{{classname}}Stream) Delete(index int) *{{classname}}Stream {
    84  	if len(*self) > index+1 {
    85  		*self = append((*self)[:index], (*self)[index+1:]...)
    86  	} else {
    87  		*self = append((*self)[:index])
    88  	}
    89  	return self
    90  }
    91  
    92  func (self *{{classname}}Stream) DeleteRange(startIndex int, endIndex int) *{{classname}}Stream {
    93  	*self = append((*self)[:startIndex], (*self)[endIndex+1:]...)
    94  	return self
    95  }
    96  
    97  func (self *{{classname}}Stream) Filter(fn func(arg {{classname}}, index int) bool) *{{classname}}Stream {
    98  	_array := []{{classname}}{}
    99  	for i, v := range *self {
   100  		if fn(v, i) {
   101  			_array = append(_array, v)
   102  		}
   103  	}
   104  	*self = _array
   105  	return self
   106  }
   107  
   108  func (self *{{classname}}Stream) Find(fn func(arg {{classname}}, index int) bool) *{{classname}} {
   109  	i := self.FindIndex(fn)
   110  	if -1 != i {
   111  		return &(*self)[i]
   112  	}
   113  	return nil
   114  }
   115  
   116  func (self *{{classname}}Stream) FindIndex(fn func(arg {{classname}}, index int) bool) int {
   117  	for i, v := range *self {
   118  		if fn(v, i) {
   119  			return i
   120  		}
   121  	}
   122  	return -1
   123  }
   124  
   125  func (self *{{classname}}Stream) First() *{{classname}} {
   126  	return self.Get(0)
   127  }
   128  
   129  func (self *{{classname}}Stream) ForEach(fn func(arg {{classname}}, index int)) *{{classname}}Stream {
   130  	for i, v := range *self {
   131  		fn(v, i)
   132  	}
   133  	return self
   134  }
   135  func (self *{{classname}}Stream) ForEachRight(fn func(arg {{classname}}, index int)) *{{classname}}Stream {
   136  	for i := len(*self) - 1; i >= 0; i-- {
   137  		fn((*self)[i], i)
   138  	}
   139  	return self
   140  }
   141  func (self *{{classname}}Stream) GroupBy(fn func(arg {{classname}}, index int) string) map[string][]{{classname}} {
   142      m := map[string][]{{classname}}{}
   143      for i, v := range *self {
   144          key := fn(v, i)
   145          m[key] = append(m[key], v)
   146      }
   147      return m
   148  }
   149  func (self *{{classname}}Stream) GroupByValues(fn func(arg {{classname}}, index int) string) [][]{{classname}} {
   150  	tmp := [][]{{classname}}{}
   151  	m := self.GroupBy(fn)
   152  	for _, v := range m {
   153  		tmp = append(tmp, v)
   154  	}
   155  	return tmp
   156  }
   157  func (self *{{classname}}Stream) IsEmpty() bool {
   158  	if self.Len() == 0 {
   159  		return true
   160  	}
   161  	return false
   162  }
   163  func (self *{{classname}}Stream) IsPreset() bool {
   164  	return !self.IsEmpty()
   165  }
   166  func (self *{{classname}}Stream) Last() *{{classname}} {
   167  	return self.Get(self.Len() - 1)
   168  }
   169  
   170  func (self *{{classname}}Stream) Len() int {
   171      if self == nil {
   172  		return 0
   173  	}
   174  	return len(*self)
   175  }
   176  
   177  func (self *{{classname}}Stream) Map(fn func(arg {{classname}}, index int) {{classname}}) *{{classname}}Stream {
   178  	_array := make([]{{classname}}, 0, len(*self))
   179  	for i, v := range *self {
   180  		_array = append(_array, fn(v, i))
   181  	}
   182  	*self = _array
   183  	return self
   184  }
   185  
   186  func (self *{{classname}}Stream) MapAny(fn func(arg {{classname}}, index int) interface{}) []interface{} {
   187  	_array := make([]interface{}, 0, len(*self))
   188  	for i, v := range *self {
   189  		_array = append(_array, fn(v, i))
   190  	}
   191  	return _array
   192  }
   193  
   194  func (self *{{classname}}Stream) Map2Int(fn func(arg {{classname}}, index int) int) []int {
   195  	_array := make([]int, 0, len(*self))
   196  	for i, v := range *self {
   197  		_array = append(_array, fn(v, i))
   198  	}
   199  	return _array
   200  }
   201  
   202  func (self *{{classname}}Stream) Map2Int32(fn func(arg {{classname}}, index int) int32) []int32 {
   203  	_array := make([]int32, 0, len(*self))
   204  	for i, v := range *self {
   205  		_array = append(_array, fn(v, i))
   206  	}
   207  	return _array
   208  }
   209  
   210  func (self *{{classname}}Stream) Map2Int64(fn func(arg {{classname}}, index int) int64) []int64 {
   211  	_array := make([]int64, 0, len(*self))
   212  	for i, v := range *self {
   213  		_array = append(_array, fn(v, i))
   214  	}
   215  	return _array
   216  }
   217  
   218  func (self *{{classname}}Stream) Map2Float32(fn func(arg {{classname}}, index int) float32) []float32 {
   219  	_array := make([]float32, 0, len(*self))
   220  	for i, v := range *self {
   221  		_array = append(_array, fn(v, i))
   222  	}
   223  	return _array
   224  }
   225  
   226  func (self *{{classname}}Stream) Map2Float64(fn func(arg {{classname}}, index int) float64) []float64 {
   227  	_array := make([]float64, 0, len(*self))
   228  	for i, v := range *self {
   229  		_array = append(_array, fn(v, i))
   230  	}
   231  	return _array
   232  }
   233  
   234  func (self *{{classname}}Stream) Map2Bool(fn func(arg {{classname}}, index int) bool) []bool {
   235  	_array := make([]bool, 0, len(*self))
   236  	for i, v := range *self {
   237  		_array = append(_array, fn(v, i))
   238  	}
   239  	return _array
   240  }
   241  
   242  func (self *{{classname}}Stream) Map2Bytes(fn func(arg {{classname}}, index int) []byte) [][]byte {
   243  	_array := make([][]byte, 0, len(*self))
   244  	for i, v := range *self {
   245  		_array = append(_array, fn(v, i))
   246  	}
   247  	return _array
   248  }
   249  
   250  func (self *{{classname}}Stream) Map2String(fn func(arg {{classname}}, index int) string) []string {
   251  	_array := make([]string, 0, len(*self))
   252  	for i, v := range *self {
   253  		_array = append(_array, fn(v, i))
   254  	}
   255  	return _array
   256  }
   257  
   258  func (self *{{classname}}Stream) NoneMatch(fn func(arg {{classname}}, index int) bool) bool {
   259  	return !self.AnyMatch(fn)
   260  }
   261  
   262  func (self *{{classname}}Stream) Get(index int) *{{classname}} {
   263  	if self.Len() > index && index >= 0 {
   264  		return &(*self)[index]
   265  	}
   266  	return nil
   267  }
   268  func (self *{{classname}}Stream) ReduceInit(fn func(result, current {{classname}}, index int) {{classname}}, initialValue {{classname}}) *{{classname}}Stream {
   269  	result := []{{classname}}{}
   270  	for i, v := range *self {
   271  		if i == 0 {
   272  			result = append(result, fn(initialValue, v, i))
   273  		} else {
   274  			result = append(result, fn(result[i-1], v, i))
   275  		}
   276  	}
   277  	*self = result
   278  	return self
   279  }
   280  func (self *{{classname}}Stream) Reduce(fn func(result, current {{classname}}, index int) {{classname}}) *{{classname}}Stream {
   281  	result := []{{classname}}{}
   282  	for i, v := range *self {
   283  		if i == 0 {
   284  			result = append(result, fn({{classname}}{}, v, i))
   285  		} else {
   286  			result = append(result, fn(result[i-1], v, i))
   287  		}
   288  	}
   289  	*self = result
   290  	return self
   291  }
   292  func (self *{{classname}}Stream) ReduceInterface(fn func(result interface{}, current {{classname}}, index int) interface{}) []interface{} {
   293  	result := []interface{}{}
   294  	for i, v := range *self {
   295  		if i == 0 {
   296  			result = append(result, fn({{classname}}{}, v, i))
   297  		} else {
   298  			result = append(result, fn(result[i-1], v, i))
   299  		}
   300  	}
   301  	return result
   302  }
   303  func (self *{{classname}}Stream) ReduceString(fn func(result string, current {{classname}}, index int) string) []string {
   304  	result := []string{}
   305  	for i, v := range *self {
   306  		if i == 0 {
   307  			result = append(result, fn("", v, i))
   308  		} else {
   309  			result = append(result, fn(result[i-1], v, i))
   310  		}
   311  	}
   312  	return result
   313  }
   314  func (self *{{classname}}Stream) ReduceInt(fn func(result int, current {{classname}}, index int) int) []int {
   315  	result := []int{}
   316  	for i, v := range *self {
   317  		if i == 0 {
   318  			result = append(result, fn(0, v, i))
   319  		} else {
   320  			result = append(result, fn(result[i-1], v, i))
   321  		}
   322  	}
   323  	return result
   324  }
   325  func (self *{{classname}}Stream) ReduceInt32(fn func(result int32, current {{classname}}, index int) int32) []int32 {
   326  	result := []int32{}
   327  	for i, v := range *self {
   328  		if i == 0 {
   329  			result = append(result, fn(0, v, i))
   330  		} else {
   331  			result = append(result, fn(result[i-1], v, i))
   332  		}
   333  	}
   334  	return result
   335  }
   336  func (self *{{classname}}Stream) ReduceInt64(fn func(result int64, current {{classname}}, index int) int64) []int64 {
   337  	result := []int64{}
   338  	for i, v := range *self {
   339  		if i == 0 {
   340  			result = append(result, fn(0, v, i))
   341  		} else {
   342  			result = append(result, fn(result[i-1], v, i))
   343  		}
   344  	}
   345  	return result
   346  }
   347  func (self *{{classname}}Stream) ReduceFloat32(fn func(result float32, current {{classname}}, index int) float32) []float32 {
   348  	result := []float32{}
   349  	for i, v := range *self {
   350  		if i == 0 {
   351  			result = append(result, fn(0.0, v, i))
   352  		} else {
   353  			result = append(result, fn(result[i-1], v, i))
   354  		}
   355  	}
   356  	return result
   357  }
   358  func (self *{{classname}}Stream) ReduceFloat64(fn func(result float64, current {{classname}}, index int) float64) []float64 {
   359  	result := []float64{}
   360  	for i, v := range *self {
   361  		if i == 0 {
   362  			result = append(result, fn(0.0, v, i))
   363  		} else {
   364  			result = append(result, fn(result[i-1], v, i))
   365  		}
   366  	}
   367  	return result
   368  }
   369  func (self *{{classname}}Stream) ReduceBool(fn func(result bool, current {{classname}}, index int) bool) []bool {
   370  	result := []bool{}
   371  	for i, v := range *self {
   372  		if i == 0 {
   373  			result = append(result, fn(false, v, i))
   374  		} else {
   375  			result = append(result, fn(result[i-1], v, i))
   376  		}
   377  	}
   378  	return result
   379  }
   380  func (self *{{classname}}Stream) Reverse() *{{classname}}Stream {
   381  	_array := make([]{{classname}}, 0, len(*self))
   382  	for i := len(*self) - 1; i >= 0; i-- {
   383  		_array = append(_array, (*self)[i])
   384  	}
   385  	*self = _array
   386  	return self
   387  }
   388  
   389  func (self *{{classname}}Stream) Replace(fn func(arg {{classname}}, index int) {{classname}}) *{{classname}}Stream {
   390  	for i, v := range *self {
   391  		(*self)[i] = fn(v, i)
   392  	}
   393  	return self
   394  }
   395  
   396  func (self *{{classname}}Stream) Set(index int, val {{classname}}) {
   397  	if len(*self) > index {
   398  		(*self)[index] = val
   399  	}
   400  }
   401  
   402  func (self *{{classname}}Stream) Slice(startIndex int, n int) *{{classname}}Stream {
   403      last := startIndex+n
   404      if len(*self)-1 < startIndex {
   405          *self = []{{classname}}{}
   406      } else if len(*self) < last {
   407          *self = (*self)[startIndex:len(*self)]
   408      } else {
   409          *self = (*self)[startIndex:last]
   410      }
   411  	return self
   412  }
   413  
   414  func (self *{{classname}}Stream) ToList() []{{classname}} {
   415  	return self.Val()
   416  }
   417  
   418  func (self *{{classname}}Stream) Val() []{{classname}} {
   419      if self == nil {
   420          return []{{classname}}{}
   421      }
   422  	return *self
   423  }
   424  
   425  {{/isEnum}}{{/model}}{{/models}}