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}}