kubecost_codecs.go 75 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875
  1. ////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // DO NOT MODIFY
  4. //
  5. // ┻━┻ ︵ヽ(`Д´)ノ︵ ┻━┻
  6. //
  7. //
  8. // This source file was automatically generated by bingen.
  9. //
  10. ////////////////////////////////////////////////////////////////////////////////
  11. package kubecost
  12. import (
  13. "encoding"
  14. "fmt"
  15. util "github.com/kubecost/cost-model/pkg/util"
  16. "reflect"
  17. "strings"
  18. "time"
  19. )
  20. const (
  21. // GeneratorPackageName is the package the generator is targetting
  22. GeneratorPackageName string = "kubecost"
  23. // CodecVersion is the version passed into the generator
  24. CodecVersion uint8 = 7
  25. )
  26. //--------------------------------------------------------------------------
  27. // Type Map
  28. //--------------------------------------------------------------------------
  29. // Generated type map for resolving interface implementations to
  30. // to concrete types
  31. var typeMap map[string]reflect.Type = map[string]reflect.Type{
  32. "Allocation": reflect.TypeOf((*Allocation)(nil)).Elem(),
  33. "AllocationSet": reflect.TypeOf((*AllocationSet)(nil)).Elem(),
  34. "AllocationSetRange": reflect.TypeOf((*AllocationSetRange)(nil)).Elem(),
  35. "Any": reflect.TypeOf((*Any)(nil)).Elem(),
  36. "AssetProperties": reflect.TypeOf((*AssetProperties)(nil)).Elem(),
  37. "AssetSet": reflect.TypeOf((*AssetSet)(nil)).Elem(),
  38. "AssetSetRange": reflect.TypeOf((*AssetSetRange)(nil)).Elem(),
  39. "Breakdown": reflect.TypeOf((*Breakdown)(nil)).Elem(),
  40. "Cloud": reflect.TypeOf((*Cloud)(nil)).Elem(),
  41. "ClusterManagement": reflect.TypeOf((*ClusterManagement)(nil)).Elem(),
  42. "Disk": reflect.TypeOf((*Disk)(nil)).Elem(),
  43. "LoadBalancer": reflect.TypeOf((*LoadBalancer)(nil)).Elem(),
  44. "Network": reflect.TypeOf((*Network)(nil)).Elem(),
  45. "Node": reflect.TypeOf((*Node)(nil)).Elem(),
  46. "SharedAsset": reflect.TypeOf((*SharedAsset)(nil)).Elem(),
  47. "Window": reflect.TypeOf((*Window)(nil)).Elem(),
  48. }
  49. //--------------------------------------------------------------------------
  50. // Type Helpers
  51. //--------------------------------------------------------------------------
  52. // typeToString determines the basic properties of the type, the qualifier, package path, and
  53. // type name, and returns the qualified type
  54. func typeToString(f interface{}) string {
  55. qual := ""
  56. t := reflect.TypeOf(f)
  57. if t.Kind() == reflect.Ptr {
  58. t = t.Elem()
  59. qual = "*"
  60. }
  61. return fmt.Sprintf("%s%s.%s", qual, t.PkgPath(), t.Name())
  62. }
  63. // resolveType uses the name of a type and returns the package, base type name, and whether
  64. // or not it's a pointer.
  65. func resolveType(t string) (pkg string, name string, isPtr bool) {
  66. isPtr = t[:1] == "*"
  67. if isPtr {
  68. t = t[1:]
  69. }
  70. slashIndex := strings.LastIndex(t, "/")
  71. if slashIndex >= 0 {
  72. t = t[slashIndex+1:]
  73. }
  74. parts := strings.Split(t, ".")
  75. if parts[0] == GeneratorPackageName {
  76. parts[0] = ""
  77. }
  78. pkg = parts[0]
  79. name = parts[1]
  80. return
  81. }
  82. //--------------------------------------------------------------------------
  83. // Allocation
  84. //--------------------------------------------------------------------------
  85. // MarshalBinary serializes the internal properties of this Allocation instance
  86. // into a byte array
  87. func (target *Allocation) MarshalBinary() (data []byte, err error) {
  88. // panics are recovered and propagated as errors
  89. defer func() {
  90. if r := recover(); r != nil {
  91. if e, ok := r.(error); ok {
  92. err = e
  93. } else if s, ok := r.(string); ok {
  94. err = fmt.Errorf("Unexpected panic: %s", s)
  95. } else {
  96. err = fmt.Errorf("Unexpected panic: %+v", r)
  97. }
  98. }
  99. }()
  100. buff := util.NewBuffer()
  101. buff.WriteUInt8(CodecVersion) // version
  102. buff.WriteString(target.Name) // write string
  103. // --- [begin][write][reference](Properties) ---
  104. a, errA := target.Properties.MarshalBinary()
  105. if errA != nil {
  106. return nil, errA
  107. }
  108. buff.WriteInt(len(a))
  109. buff.WriteBytes(a)
  110. // --- [end][write][reference](Properties) ---
  111. // --- [begin][write][struct](Window) ---
  112. b, errB := target.Window.MarshalBinary()
  113. if errB != nil {
  114. return nil, errB
  115. }
  116. buff.WriteInt(len(b))
  117. buff.WriteBytes(b)
  118. // --- [end][write][struct](Window) ---
  119. // --- [begin][write][reference](time.Time) ---
  120. c, errC := target.Start.MarshalBinary()
  121. if errC != nil {
  122. return nil, errC
  123. }
  124. buff.WriteInt(len(c))
  125. buff.WriteBytes(c)
  126. // --- [end][write][reference](time.Time) ---
  127. // --- [begin][write][reference](time.Time) ---
  128. d, errD := target.End.MarshalBinary()
  129. if errD != nil {
  130. return nil, errD
  131. }
  132. buff.WriteInt(len(d))
  133. buff.WriteBytes(d)
  134. // --- [end][write][reference](time.Time) ---
  135. buff.WriteFloat64(target.CPUCoreHours) // write float64
  136. buff.WriteFloat64(target.CPUCoreRequestAverage) // write float64
  137. buff.WriteFloat64(target.CPUCoreUsageAverage) // write float64
  138. buff.WriteFloat64(target.CPUCost) // write float64
  139. buff.WriteFloat64(target.GPUHours) // write float64
  140. buff.WriteFloat64(target.GPUCost) // write float64
  141. buff.WriteFloat64(target.NetworkCost) // write float64
  142. buff.WriteFloat64(target.PVByteHours) // write float64
  143. buff.WriteFloat64(target.PVCost) // write float64
  144. buff.WriteFloat64(target.RAMByteHours) // write float64
  145. buff.WriteFloat64(target.RAMBytesRequestAverage) // write float64
  146. buff.WriteFloat64(target.RAMBytesUsageAverage) // write float64
  147. buff.WriteFloat64(target.RAMCost) // write float64
  148. buff.WriteFloat64(target.SharedCost) // write float64
  149. buff.WriteFloat64(target.ExternalCost) // write float64
  150. buff.WriteFloat64(target.TotalCost) // write float64
  151. return buff.Bytes(), nil
  152. }
  153. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  154. // the Allocation type
  155. func (target *Allocation) UnmarshalBinary(data []byte) (err error) {
  156. // panics are recovered and propagated as errors
  157. defer func() {
  158. if r := recover(); r != nil {
  159. if e, ok := r.(error); ok {
  160. err = e
  161. } else if s, ok := r.(string); ok {
  162. err = fmt.Errorf("Unexpected panic: %s", s)
  163. } else {
  164. err = fmt.Errorf("Unexpected panic: %+v", r)
  165. }
  166. }
  167. }()
  168. buff := util.NewBufferFromBytes(data)
  169. // Codec Version Check
  170. version := buff.ReadUInt8()
  171. if version != CodecVersion {
  172. return fmt.Errorf("Invalid Version Unmarshaling Allocation. Expected %d, got %d", CodecVersion, version)
  173. }
  174. a := buff.ReadString() // read string
  175. target.Name = a
  176. // --- [begin][read][reference](Properties) ---
  177. b := &Properties{}
  178. c := buff.ReadInt() // byte array length
  179. d := buff.ReadBytes(c) // byte array
  180. errA := b.UnmarshalBinary(d)
  181. if errA != nil {
  182. return errA
  183. }
  184. target.Properties = *b
  185. // --- [end][read][reference](Properties) ---
  186. // --- [begin][read][struct](Window) ---
  187. e := &Window{}
  188. f := buff.ReadInt() // byte array length
  189. g := buff.ReadBytes(f) // byte array
  190. errB := e.UnmarshalBinary(g)
  191. if errB != nil {
  192. return errB
  193. }
  194. target.Window = *e
  195. // --- [end][read][struct](Window) ---
  196. // --- [begin][read][reference](time.Time) ---
  197. h := &time.Time{}
  198. l := buff.ReadInt() // byte array length
  199. m := buff.ReadBytes(l) // byte array
  200. errC := h.UnmarshalBinary(m)
  201. if errC != nil {
  202. return errC
  203. }
  204. target.Start = *h
  205. // --- [end][read][reference](time.Time) ---
  206. // --- [begin][read][reference](time.Time) ---
  207. n := &time.Time{}
  208. o := buff.ReadInt() // byte array length
  209. p := buff.ReadBytes(o) // byte array
  210. errD := n.UnmarshalBinary(p)
  211. if errD != nil {
  212. return errD
  213. }
  214. target.End = *n
  215. // --- [end][read][reference](time.Time) ---
  216. q := buff.ReadFloat64() // read float64
  217. target.CPUCoreHours = q
  218. r := buff.ReadFloat64() // read float64
  219. target.CPUCoreRequestAverage = r
  220. s := buff.ReadFloat64() // read float64
  221. target.CPUCoreUsageAverage = s
  222. t := buff.ReadFloat64() // read float64
  223. target.CPUCost = t
  224. u := buff.ReadFloat64() // read float64
  225. target.GPUHours = u
  226. w := buff.ReadFloat64() // read float64
  227. target.GPUCost = w
  228. x := buff.ReadFloat64() // read float64
  229. target.NetworkCost = x
  230. y := buff.ReadFloat64() // read float64
  231. target.PVByteHours = y
  232. z := buff.ReadFloat64() // read float64
  233. target.PVCost = z
  234. aa := buff.ReadFloat64() // read float64
  235. target.RAMByteHours = aa
  236. bb := buff.ReadFloat64() // read float64
  237. target.RAMBytesRequestAverage = bb
  238. cc := buff.ReadFloat64() // read float64
  239. target.RAMBytesUsageAverage = cc
  240. dd := buff.ReadFloat64() // read float64
  241. target.RAMCost = dd
  242. ee := buff.ReadFloat64() // read float64
  243. target.SharedCost = ee
  244. ff := buff.ReadFloat64() // read float64
  245. target.ExternalCost = ff
  246. gg := buff.ReadFloat64() // read float64
  247. target.TotalCost = gg
  248. return nil
  249. }
  250. //--------------------------------------------------------------------------
  251. // AllocationSet
  252. //--------------------------------------------------------------------------
  253. // MarshalBinary serializes the internal properties of this AllocationSet instance
  254. // into a byte array
  255. func (target *AllocationSet) MarshalBinary() (data []byte, err error) {
  256. // panics are recovered and propagated as errors
  257. defer func() {
  258. if r := recover(); r != nil {
  259. if e, ok := r.(error); ok {
  260. err = e
  261. } else if s, ok := r.(string); ok {
  262. err = fmt.Errorf("Unexpected panic: %s", s)
  263. } else {
  264. err = fmt.Errorf("Unexpected panic: %+v", r)
  265. }
  266. }
  267. }()
  268. buff := util.NewBuffer()
  269. buff.WriteUInt8(CodecVersion) // version
  270. if target.allocations == nil {
  271. buff.WriteUInt8(uint8(0)) // write nil byte
  272. } else {
  273. buff.WriteUInt8(uint8(1)) // write non-nil byte
  274. // --- [begin][write][map](map[string]*Allocation) ---
  275. buff.WriteInt(len(target.allocations)) // map length
  276. for k, v := range target.allocations {
  277. buff.WriteString(k) // write string
  278. if v == nil {
  279. buff.WriteUInt8(uint8(0)) // write nil byte
  280. } else {
  281. buff.WriteUInt8(uint8(1)) // write non-nil byte
  282. // --- [begin][write][struct](Allocation) ---
  283. a, errA := v.MarshalBinary()
  284. if errA != nil {
  285. return nil, errA
  286. }
  287. buff.WriteInt(len(a))
  288. buff.WriteBytes(a)
  289. // --- [end][write][struct](Allocation) ---
  290. }
  291. }
  292. // --- [end][write][map](map[string]*Allocation) ---
  293. }
  294. if target.externalKeys == nil {
  295. buff.WriteUInt8(uint8(0)) // write nil byte
  296. } else {
  297. buff.WriteUInt8(uint8(1)) // write non-nil byte
  298. // --- [begin][write][map](map[string]bool) ---
  299. buff.WriteInt(len(target.externalKeys)) // map length
  300. for kk, vv := range target.externalKeys {
  301. buff.WriteString(kk) // write string
  302. buff.WriteBool(vv) // write bool
  303. }
  304. // --- [end][write][map](map[string]bool) ---
  305. }
  306. if target.idleKeys == nil {
  307. buff.WriteUInt8(uint8(0)) // write nil byte
  308. } else {
  309. buff.WriteUInt8(uint8(1)) // write non-nil byte
  310. // --- [begin][write][map](map[string]bool) ---
  311. buff.WriteInt(len(target.idleKeys)) // map length
  312. for kkk, vvv := range target.idleKeys {
  313. buff.WriteString(kkk) // write string
  314. buff.WriteBool(vvv) // write bool
  315. }
  316. // --- [end][write][map](map[string]bool) ---
  317. }
  318. // --- [begin][write][struct](Window) ---
  319. b, errB := target.Window.MarshalBinary()
  320. if errB != nil {
  321. return nil, errB
  322. }
  323. buff.WriteInt(len(b))
  324. buff.WriteBytes(b)
  325. // --- [end][write][struct](Window) ---
  326. if target.Warnings == nil {
  327. buff.WriteUInt8(uint8(0)) // write nil byte
  328. } else {
  329. buff.WriteUInt8(uint8(1)) // write non-nil byte
  330. // --- [begin][write][slice]([]string) ---
  331. buff.WriteInt(len(target.Warnings)) // array length
  332. for i := 0; i < len(target.Warnings); i++ {
  333. buff.WriteString(target.Warnings[i]) // write string
  334. }
  335. // --- [end][write][slice]([]string) ---
  336. }
  337. if target.Errors == nil {
  338. buff.WriteUInt8(uint8(0)) // write nil byte
  339. } else {
  340. buff.WriteUInt8(uint8(1)) // write non-nil byte
  341. // --- [begin][write][slice]([]string) ---
  342. buff.WriteInt(len(target.Errors)) // array length
  343. for j := 0; j < len(target.Errors); j++ {
  344. buff.WriteString(target.Errors[j]) // write string
  345. }
  346. // --- [end][write][slice]([]string) ---
  347. }
  348. return buff.Bytes(), nil
  349. }
  350. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  351. // the AllocationSet type
  352. func (target *AllocationSet) UnmarshalBinary(data []byte) (err error) {
  353. // panics are recovered and propagated as errors
  354. defer func() {
  355. if r := recover(); r != nil {
  356. if e, ok := r.(error); ok {
  357. err = e
  358. } else if s, ok := r.(string); ok {
  359. err = fmt.Errorf("Unexpected panic: %s", s)
  360. } else {
  361. err = fmt.Errorf("Unexpected panic: %+v", r)
  362. }
  363. }
  364. }()
  365. buff := util.NewBufferFromBytes(data)
  366. // Codec Version Check
  367. version := buff.ReadUInt8()
  368. if version != CodecVersion {
  369. return fmt.Errorf("Invalid Version Unmarshaling AllocationSet. Expected %d, got %d", CodecVersion, version)
  370. }
  371. if buff.ReadUInt8() == uint8(0) {
  372. target.allocations = nil
  373. } else {
  374. // --- [begin][read][map](map[string]*Allocation) ---
  375. a := make(map[string]*Allocation)
  376. b := buff.ReadInt() // map len
  377. for i := 0; i < b; i++ {
  378. var k string
  379. c := buff.ReadString() // read string
  380. k = c
  381. var v *Allocation
  382. if buff.ReadUInt8() == uint8(0) {
  383. v = nil
  384. } else {
  385. // --- [begin][read][struct](Allocation) ---
  386. d := &Allocation{}
  387. e := buff.ReadInt() // byte array length
  388. f := buff.ReadBytes(e) // byte array
  389. errA := d.UnmarshalBinary(f)
  390. if errA != nil {
  391. return errA
  392. }
  393. v = d
  394. // --- [end][read][struct](Allocation) ---
  395. }
  396. a[k] = v
  397. }
  398. target.allocations = a
  399. // --- [end][read][map](map[string]*Allocation) ---
  400. }
  401. if buff.ReadUInt8() == uint8(0) {
  402. target.externalKeys = nil
  403. } else {
  404. // --- [begin][read][map](map[string]bool) ---
  405. g := make(map[string]bool)
  406. h := buff.ReadInt() // map len
  407. for j := 0; j < h; j++ {
  408. var kk string
  409. l := buff.ReadString() // read string
  410. kk = l
  411. var vv bool
  412. m := buff.ReadBool() // read bool
  413. vv = m
  414. g[kk] = vv
  415. }
  416. target.externalKeys = g
  417. // --- [end][read][map](map[string]bool) ---
  418. }
  419. if buff.ReadUInt8() == uint8(0) {
  420. target.idleKeys = nil
  421. } else {
  422. // --- [begin][read][map](map[string]bool) ---
  423. n := make(map[string]bool)
  424. o := buff.ReadInt() // map len
  425. for ii := 0; ii < o; ii++ {
  426. var kkk string
  427. p := buff.ReadString() // read string
  428. kkk = p
  429. var vvv bool
  430. q := buff.ReadBool() // read bool
  431. vvv = q
  432. n[kkk] = vvv
  433. }
  434. target.idleKeys = n
  435. // --- [end][read][map](map[string]bool) ---
  436. }
  437. // --- [begin][read][struct](Window) ---
  438. r := &Window{}
  439. s := buff.ReadInt() // byte array length
  440. t := buff.ReadBytes(s) // byte array
  441. errB := r.UnmarshalBinary(t)
  442. if errB != nil {
  443. return errB
  444. }
  445. target.Window = *r
  446. // --- [end][read][struct](Window) ---
  447. if buff.ReadUInt8() == uint8(0) {
  448. target.Warnings = nil
  449. } else {
  450. // --- [begin][read][slice]([]string) ---
  451. w := buff.ReadInt() // array len
  452. u := make([]string, w)
  453. for jj := 0; jj < w; jj++ {
  454. var x string
  455. y := buff.ReadString() // read string
  456. x = y
  457. u[jj] = x
  458. }
  459. target.Warnings = u
  460. // --- [end][read][slice]([]string) ---
  461. }
  462. if buff.ReadUInt8() == uint8(0) {
  463. target.Errors = nil
  464. } else {
  465. // --- [begin][read][slice]([]string) ---
  466. aa := buff.ReadInt() // array len
  467. z := make([]string, aa)
  468. for iii := 0; iii < aa; iii++ {
  469. var bb string
  470. cc := buff.ReadString() // read string
  471. bb = cc
  472. z[iii] = bb
  473. }
  474. target.Errors = z
  475. // --- [end][read][slice]([]string) ---
  476. }
  477. return nil
  478. }
  479. //--------------------------------------------------------------------------
  480. // AllocationSetRange
  481. //--------------------------------------------------------------------------
  482. // MarshalBinary serializes the internal properties of this AllocationSetRange instance
  483. // into a byte array
  484. func (target *AllocationSetRange) MarshalBinary() (data []byte, err error) {
  485. // panics are recovered and propagated as errors
  486. defer func() {
  487. if r := recover(); r != nil {
  488. if e, ok := r.(error); ok {
  489. err = e
  490. } else if s, ok := r.(string); ok {
  491. err = fmt.Errorf("Unexpected panic: %s", s)
  492. } else {
  493. err = fmt.Errorf("Unexpected panic: %+v", r)
  494. }
  495. }
  496. }()
  497. buff := util.NewBuffer()
  498. buff.WriteUInt8(CodecVersion) // version
  499. if target.allocations == nil {
  500. buff.WriteUInt8(uint8(0)) // write nil byte
  501. } else {
  502. buff.WriteUInt8(uint8(1)) // write non-nil byte
  503. // --- [begin][write][slice]([]*AllocationSet) ---
  504. buff.WriteInt(len(target.allocations)) // array length
  505. for i := 0; i < len(target.allocations); i++ {
  506. if target.allocations[i] == nil {
  507. buff.WriteUInt8(uint8(0)) // write nil byte
  508. } else {
  509. buff.WriteUInt8(uint8(1)) // write non-nil byte
  510. // --- [begin][write][struct](AllocationSet) ---
  511. a, errA := target.allocations[i].MarshalBinary()
  512. if errA != nil {
  513. return nil, errA
  514. }
  515. buff.WriteInt(len(a))
  516. buff.WriteBytes(a)
  517. // --- [end][write][struct](AllocationSet) ---
  518. }
  519. }
  520. // --- [end][write][slice]([]*AllocationSet) ---
  521. }
  522. return buff.Bytes(), nil
  523. }
  524. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  525. // the AllocationSetRange type
  526. func (target *AllocationSetRange) UnmarshalBinary(data []byte) (err error) {
  527. // panics are recovered and propagated as errors
  528. defer func() {
  529. if r := recover(); r != nil {
  530. if e, ok := r.(error); ok {
  531. err = e
  532. } else if s, ok := r.(string); ok {
  533. err = fmt.Errorf("Unexpected panic: %s", s)
  534. } else {
  535. err = fmt.Errorf("Unexpected panic: %+v", r)
  536. }
  537. }
  538. }()
  539. buff := util.NewBufferFromBytes(data)
  540. // Codec Version Check
  541. version := buff.ReadUInt8()
  542. if version != CodecVersion {
  543. return fmt.Errorf("Invalid Version Unmarshaling AllocationSetRange. Expected %d, got %d", CodecVersion, version)
  544. }
  545. if buff.ReadUInt8() == uint8(0) {
  546. target.allocations = nil
  547. } else {
  548. // --- [begin][read][slice]([]*AllocationSet) ---
  549. b := buff.ReadInt() // array len
  550. a := make([]*AllocationSet, b)
  551. for i := 0; i < b; i++ {
  552. var c *AllocationSet
  553. if buff.ReadUInt8() == uint8(0) {
  554. c = nil
  555. } else {
  556. // --- [begin][read][struct](AllocationSet) ---
  557. d := &AllocationSet{}
  558. e := buff.ReadInt() // byte array length
  559. f := buff.ReadBytes(e) // byte array
  560. errA := d.UnmarshalBinary(f)
  561. if errA != nil {
  562. return errA
  563. }
  564. c = d
  565. // --- [end][read][struct](AllocationSet) ---
  566. }
  567. a[i] = c
  568. }
  569. target.allocations = a
  570. // --- [end][read][slice]([]*AllocationSet) ---
  571. }
  572. return nil
  573. }
  574. //--------------------------------------------------------------------------
  575. // Any
  576. //--------------------------------------------------------------------------
  577. // MarshalBinary serializes the internal properties of this Any instance
  578. // into a byte array
  579. func (target *Any) MarshalBinary() (data []byte, err error) {
  580. // panics are recovered and propagated as errors
  581. defer func() {
  582. if r := recover(); r != nil {
  583. if e, ok := r.(error); ok {
  584. err = e
  585. } else if s, ok := r.(string); ok {
  586. err = fmt.Errorf("Unexpected panic: %s", s)
  587. } else {
  588. err = fmt.Errorf("Unexpected panic: %+v", r)
  589. }
  590. }
  591. }()
  592. buff := util.NewBuffer()
  593. buff.WriteUInt8(CodecVersion) // version
  594. // --- [begin][write][alias](AssetLabels) ---
  595. if map[string]string(target.labels) == nil {
  596. buff.WriteUInt8(uint8(0)) // write nil byte
  597. } else {
  598. buff.WriteUInt8(uint8(1)) // write non-nil byte
  599. // --- [begin][write][map](map[string]string) ---
  600. buff.WriteInt(len(map[string]string(target.labels))) // map length
  601. for k, v := range map[string]string(target.labels) {
  602. buff.WriteString(k) // write string
  603. buff.WriteString(v) // write string
  604. }
  605. // --- [end][write][map](map[string]string) ---
  606. }
  607. // --- [end][write][alias](AssetLabels) ---
  608. if target.properties == nil {
  609. buff.WriteUInt8(uint8(0)) // write nil byte
  610. } else {
  611. buff.WriteUInt8(uint8(1)) // write non-nil byte
  612. // --- [begin][write][struct](AssetProperties) ---
  613. a, errA := target.properties.MarshalBinary()
  614. if errA != nil {
  615. return nil, errA
  616. }
  617. buff.WriteInt(len(a))
  618. buff.WriteBytes(a)
  619. // --- [end][write][struct](AssetProperties) ---
  620. }
  621. // --- [begin][write][reference](time.Time) ---
  622. b, errB := target.start.MarshalBinary()
  623. if errB != nil {
  624. return nil, errB
  625. }
  626. buff.WriteInt(len(b))
  627. buff.WriteBytes(b)
  628. // --- [end][write][reference](time.Time) ---
  629. // --- [begin][write][reference](time.Time) ---
  630. c, errC := target.end.MarshalBinary()
  631. if errC != nil {
  632. return nil, errC
  633. }
  634. buff.WriteInt(len(c))
  635. buff.WriteBytes(c)
  636. // --- [end][write][reference](time.Time) ---
  637. // --- [begin][write][struct](Window) ---
  638. d, errD := target.window.MarshalBinary()
  639. if errD != nil {
  640. return nil, errD
  641. }
  642. buff.WriteInt(len(d))
  643. buff.WriteBytes(d)
  644. // --- [end][write][struct](Window) ---
  645. buff.WriteFloat64(target.adjustment) // write float64
  646. buff.WriteFloat64(target.Cost) // write float64
  647. return buff.Bytes(), nil
  648. }
  649. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  650. // the Any type
  651. func (target *Any) UnmarshalBinary(data []byte) (err error) {
  652. // panics are recovered and propagated as errors
  653. defer func() {
  654. if r := recover(); r != nil {
  655. if e, ok := r.(error); ok {
  656. err = e
  657. } else if s, ok := r.(string); ok {
  658. err = fmt.Errorf("Unexpected panic: %s", s)
  659. } else {
  660. err = fmt.Errorf("Unexpected panic: %+v", r)
  661. }
  662. }
  663. }()
  664. buff := util.NewBufferFromBytes(data)
  665. // Codec Version Check
  666. version := buff.ReadUInt8()
  667. if version != CodecVersion {
  668. return fmt.Errorf("Invalid Version Unmarshaling Any. Expected %d, got %d", CodecVersion, version)
  669. }
  670. // --- [begin][read][alias](AssetLabels) ---
  671. var a map[string]string
  672. if buff.ReadUInt8() == uint8(0) {
  673. a = nil
  674. } else {
  675. // --- [begin][read][map](map[string]string) ---
  676. b := make(map[string]string)
  677. c := buff.ReadInt() // map len
  678. for i := 0; i < c; i++ {
  679. var k string
  680. d := buff.ReadString() // read string
  681. k = d
  682. var v string
  683. e := buff.ReadString() // read string
  684. v = e
  685. b[k] = v
  686. }
  687. a = b
  688. // --- [end][read][map](map[string]string) ---
  689. }
  690. target.labels = AssetLabels(a)
  691. // --- [end][read][alias](AssetLabels) ---
  692. if buff.ReadUInt8() == uint8(0) {
  693. target.properties = nil
  694. } else {
  695. // --- [begin][read][struct](AssetProperties) ---
  696. f := &AssetProperties{}
  697. g := buff.ReadInt() // byte array length
  698. h := buff.ReadBytes(g) // byte array
  699. errA := f.UnmarshalBinary(h)
  700. if errA != nil {
  701. return errA
  702. }
  703. target.properties = f
  704. // --- [end][read][struct](AssetProperties) ---
  705. }
  706. // --- [begin][read][reference](time.Time) ---
  707. l := &time.Time{}
  708. m := buff.ReadInt() // byte array length
  709. n := buff.ReadBytes(m) // byte array
  710. errB := l.UnmarshalBinary(n)
  711. if errB != nil {
  712. return errB
  713. }
  714. target.start = *l
  715. // --- [end][read][reference](time.Time) ---
  716. // --- [begin][read][reference](time.Time) ---
  717. o := &time.Time{}
  718. p := buff.ReadInt() // byte array length
  719. q := buff.ReadBytes(p) // byte array
  720. errC := o.UnmarshalBinary(q)
  721. if errC != nil {
  722. return errC
  723. }
  724. target.end = *o
  725. // --- [end][read][reference](time.Time) ---
  726. // --- [begin][read][struct](Window) ---
  727. r := &Window{}
  728. s := buff.ReadInt() // byte array length
  729. t := buff.ReadBytes(s) // byte array
  730. errD := r.UnmarshalBinary(t)
  731. if errD != nil {
  732. return errD
  733. }
  734. target.window = *r
  735. // --- [end][read][struct](Window) ---
  736. u := buff.ReadFloat64() // read float64
  737. target.adjustment = u
  738. w := buff.ReadFloat64() // read float64
  739. target.Cost = w
  740. return nil
  741. }
  742. //--------------------------------------------------------------------------
  743. // AssetProperties
  744. //--------------------------------------------------------------------------
  745. // MarshalBinary serializes the internal properties of this AssetProperties instance
  746. // into a byte array
  747. func (target *AssetProperties) MarshalBinary() (data []byte, err error) {
  748. // panics are recovered and propagated as errors
  749. defer func() {
  750. if r := recover(); r != nil {
  751. if e, ok := r.(error); ok {
  752. err = e
  753. } else if s, ok := r.(string); ok {
  754. err = fmt.Errorf("Unexpected panic: %s", s)
  755. } else {
  756. err = fmt.Errorf("Unexpected panic: %+v", r)
  757. }
  758. }
  759. }()
  760. buff := util.NewBuffer()
  761. buff.WriteUInt8(CodecVersion) // version
  762. buff.WriteString(target.Category) // write string
  763. buff.WriteString(target.Provider) // write string
  764. buff.WriteString(target.Account) // write string
  765. buff.WriteString(target.Project) // write string
  766. buff.WriteString(target.Service) // write string
  767. buff.WriteString(target.Cluster) // write string
  768. buff.WriteString(target.Name) // write string
  769. buff.WriteString(target.ProviderID) // write string
  770. return buff.Bytes(), nil
  771. }
  772. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  773. // the AssetProperties type
  774. func (target *AssetProperties) UnmarshalBinary(data []byte) (err error) {
  775. // panics are recovered and propagated as errors
  776. defer func() {
  777. if r := recover(); r != nil {
  778. if e, ok := r.(error); ok {
  779. err = e
  780. } else if s, ok := r.(string); ok {
  781. err = fmt.Errorf("Unexpected panic: %s", s)
  782. } else {
  783. err = fmt.Errorf("Unexpected panic: %+v", r)
  784. }
  785. }
  786. }()
  787. buff := util.NewBufferFromBytes(data)
  788. // Codec Version Check
  789. version := buff.ReadUInt8()
  790. if version != CodecVersion {
  791. return fmt.Errorf("Invalid Version Unmarshaling AssetProperties. Expected %d, got %d", CodecVersion, version)
  792. }
  793. a := buff.ReadString() // read string
  794. target.Category = a
  795. b := buff.ReadString() // read string
  796. target.Provider = b
  797. c := buff.ReadString() // read string
  798. target.Account = c
  799. d := buff.ReadString() // read string
  800. target.Project = d
  801. e := buff.ReadString() // read string
  802. target.Service = e
  803. f := buff.ReadString() // read string
  804. target.Cluster = f
  805. g := buff.ReadString() // read string
  806. target.Name = g
  807. h := buff.ReadString() // read string
  808. target.ProviderID = h
  809. return nil
  810. }
  811. //--------------------------------------------------------------------------
  812. // AssetSet
  813. //--------------------------------------------------------------------------
  814. // MarshalBinary serializes the internal properties of this AssetSet instance
  815. // into a byte array
  816. func (target *AssetSet) MarshalBinary() (data []byte, err error) {
  817. // panics are recovered and propagated as errors
  818. defer func() {
  819. if r := recover(); r != nil {
  820. if e, ok := r.(error); ok {
  821. err = e
  822. } else if s, ok := r.(string); ok {
  823. err = fmt.Errorf("Unexpected panic: %s", s)
  824. } else {
  825. err = fmt.Errorf("Unexpected panic: %+v", r)
  826. }
  827. }
  828. }()
  829. buff := util.NewBuffer()
  830. buff.WriteUInt8(CodecVersion) // version
  831. if target.aggregateBy == nil {
  832. buff.WriteUInt8(uint8(0)) // write nil byte
  833. } else {
  834. buff.WriteUInt8(uint8(1)) // write non-nil byte
  835. // --- [begin][write][slice]([]string) ---
  836. buff.WriteInt(len(target.aggregateBy)) // array length
  837. for i := 0; i < len(target.aggregateBy); i++ {
  838. buff.WriteString(target.aggregateBy[i]) // write string
  839. }
  840. // --- [end][write][slice]([]string) ---
  841. }
  842. if target.assets == nil {
  843. buff.WriteUInt8(uint8(0)) // write nil byte
  844. } else {
  845. buff.WriteUInt8(uint8(1)) // write non-nil byte
  846. // --- [begin][write][map](map[string]Asset) ---
  847. buff.WriteInt(len(target.assets)) // map length
  848. for k, v := range target.assets {
  849. buff.WriteString(k) // write string
  850. if v == nil {
  851. buff.WriteUInt8(uint8(0)) // write nil byte
  852. } else {
  853. buff.WriteUInt8(uint8(1)) // write non-nil byte
  854. // --- [begin][write][interface](Asset) ---
  855. a := reflect.ValueOf(v).Interface()
  856. b, okA := a.(encoding.BinaryMarshaler)
  857. if !okA {
  858. return nil, fmt.Errorf("Type: %s does not implement encoding.BinaryMarshaler", typeToString(v))
  859. }
  860. c, errA := b.MarshalBinary()
  861. if errA != nil {
  862. return nil, errA
  863. }
  864. buff.WriteString(typeToString(v))
  865. buff.WriteInt(len(c))
  866. buff.WriteBytes(c)
  867. // --- [end][write][interface](Asset) ---
  868. }
  869. }
  870. // --- [end][write][map](map[string]Asset) ---
  871. }
  872. // --- [begin][write][struct](Window) ---
  873. d, errB := target.Window.MarshalBinary()
  874. if errB != nil {
  875. return nil, errB
  876. }
  877. buff.WriteInt(len(d))
  878. buff.WriteBytes(d)
  879. // --- [end][write][struct](Window) ---
  880. if target.Warnings == nil {
  881. buff.WriteUInt8(uint8(0)) // write nil byte
  882. } else {
  883. buff.WriteUInt8(uint8(1)) // write non-nil byte
  884. // --- [begin][write][slice]([]string) ---
  885. buff.WriteInt(len(target.Warnings)) // array length
  886. for j := 0; j < len(target.Warnings); j++ {
  887. buff.WriteString(target.Warnings[j]) // write string
  888. }
  889. // --- [end][write][slice]([]string) ---
  890. }
  891. if target.Errors == nil {
  892. buff.WriteUInt8(uint8(0)) // write nil byte
  893. } else {
  894. buff.WriteUInt8(uint8(1)) // write non-nil byte
  895. // --- [begin][write][slice]([]string) ---
  896. buff.WriteInt(len(target.Errors)) // array length
  897. for ii := 0; ii < len(target.Errors); ii++ {
  898. buff.WriteString(target.Errors[ii]) // write string
  899. }
  900. // --- [end][write][slice]([]string) ---
  901. }
  902. return buff.Bytes(), nil
  903. }
  904. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  905. // the AssetSet type
  906. func (target *AssetSet) UnmarshalBinary(data []byte) (err error) {
  907. // panics are recovered and propagated as errors
  908. defer func() {
  909. if r := recover(); r != nil {
  910. if e, ok := r.(error); ok {
  911. err = e
  912. } else if s, ok := r.(string); ok {
  913. err = fmt.Errorf("Unexpected panic: %s", s)
  914. } else {
  915. err = fmt.Errorf("Unexpected panic: %+v", r)
  916. }
  917. }
  918. }()
  919. buff := util.NewBufferFromBytes(data)
  920. // Codec Version Check
  921. version := buff.ReadUInt8()
  922. if version != CodecVersion {
  923. return fmt.Errorf("Invalid Version Unmarshaling AssetSet. Expected %d, got %d", CodecVersion, version)
  924. }
  925. if buff.ReadUInt8() == uint8(0) {
  926. target.aggregateBy = nil
  927. } else {
  928. // --- [begin][read][slice]([]string) ---
  929. b := buff.ReadInt() // array len
  930. a := make([]string, b)
  931. for i := 0; i < b; i++ {
  932. var c string
  933. d := buff.ReadString() // read string
  934. c = d
  935. a[i] = c
  936. }
  937. target.aggregateBy = a
  938. // --- [end][read][slice]([]string) ---
  939. }
  940. if buff.ReadUInt8() == uint8(0) {
  941. target.assets = nil
  942. } else {
  943. // --- [begin][read][map](map[string]Asset) ---
  944. e := make(map[string]Asset)
  945. f := buff.ReadInt() // map len
  946. for j := 0; j < f; j++ {
  947. var k string
  948. g := buff.ReadString() // read string
  949. k = g
  950. var v Asset
  951. if buff.ReadUInt8() == uint8(0) {
  952. v = nil
  953. } else {
  954. // --- [begin][read][interface](Asset) ---
  955. h := buff.ReadString()
  956. _, l, _ := resolveType(h)
  957. if _, ok := typeMap[l]; !ok {
  958. return fmt.Errorf("Unknown Type: %s", l)
  959. }
  960. m, okA := reflect.New(typeMap[l]).Interface().(interface{ UnmarshalBinary([]byte) error })
  961. if !okA {
  962. return fmt.Errorf("Type: %s does not implement UnmarshalBinary([]byte) error", l)
  963. }
  964. n := buff.ReadInt() // byte array length
  965. o := buff.ReadBytes(n) // byte array
  966. errA := m.UnmarshalBinary(o)
  967. if errA != nil {
  968. return errA
  969. }
  970. v = m.(Asset)
  971. // --- [end][read][interface](Asset) ---
  972. }
  973. e[k] = v
  974. }
  975. target.assets = e
  976. // --- [end][read][map](map[string]Asset) ---
  977. }
  978. // --- [begin][read][struct](Window) ---
  979. p := &Window{}
  980. q := buff.ReadInt() // byte array length
  981. r := buff.ReadBytes(q) // byte array
  982. errB := p.UnmarshalBinary(r)
  983. if errB != nil {
  984. return errB
  985. }
  986. target.Window = *p
  987. // --- [end][read][struct](Window) ---
  988. if buff.ReadUInt8() == uint8(0) {
  989. target.Warnings = nil
  990. } else {
  991. // --- [begin][read][slice]([]string) ---
  992. t := buff.ReadInt() // array len
  993. s := make([]string, t)
  994. for ii := 0; ii < t; ii++ {
  995. var u string
  996. w := buff.ReadString() // read string
  997. u = w
  998. s[ii] = u
  999. }
  1000. target.Warnings = s
  1001. // --- [end][read][slice]([]string) ---
  1002. }
  1003. if buff.ReadUInt8() == uint8(0) {
  1004. target.Errors = nil
  1005. } else {
  1006. // --- [begin][read][slice]([]string) ---
  1007. y := buff.ReadInt() // array len
  1008. x := make([]string, y)
  1009. for jj := 0; jj < y; jj++ {
  1010. var z string
  1011. aa := buff.ReadString() // read string
  1012. z = aa
  1013. x[jj] = z
  1014. }
  1015. target.Errors = x
  1016. // --- [end][read][slice]([]string) ---
  1017. }
  1018. return nil
  1019. }
  1020. //--------------------------------------------------------------------------
  1021. // AssetSetRange
  1022. //--------------------------------------------------------------------------
  1023. // MarshalBinary serializes the internal properties of this AssetSetRange instance
  1024. // into a byte array
  1025. func (target *AssetSetRange) MarshalBinary() (data []byte, err error) {
  1026. // panics are recovered and propagated as errors
  1027. defer func() {
  1028. if r := recover(); r != nil {
  1029. if e, ok := r.(error); ok {
  1030. err = e
  1031. } else if s, ok := r.(string); ok {
  1032. err = fmt.Errorf("Unexpected panic: %s", s)
  1033. } else {
  1034. err = fmt.Errorf("Unexpected panic: %+v", r)
  1035. }
  1036. }
  1037. }()
  1038. buff := util.NewBuffer()
  1039. buff.WriteUInt8(CodecVersion) // version
  1040. if target.assets == nil {
  1041. buff.WriteUInt8(uint8(0)) // write nil byte
  1042. } else {
  1043. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1044. // --- [begin][write][slice]([]*AssetSet) ---
  1045. buff.WriteInt(len(target.assets)) // array length
  1046. for i := 0; i < len(target.assets); i++ {
  1047. if target.assets[i] == nil {
  1048. buff.WriteUInt8(uint8(0)) // write nil byte
  1049. } else {
  1050. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1051. // --- [begin][write][struct](AssetSet) ---
  1052. a, errA := target.assets[i].MarshalBinary()
  1053. if errA != nil {
  1054. return nil, errA
  1055. }
  1056. buff.WriteInt(len(a))
  1057. buff.WriteBytes(a)
  1058. // --- [end][write][struct](AssetSet) ---
  1059. }
  1060. }
  1061. // --- [end][write][slice]([]*AssetSet) ---
  1062. }
  1063. return buff.Bytes(), nil
  1064. }
  1065. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  1066. // the AssetSetRange type
  1067. func (target *AssetSetRange) UnmarshalBinary(data []byte) (err error) {
  1068. // panics are recovered and propagated as errors
  1069. defer func() {
  1070. if r := recover(); r != nil {
  1071. if e, ok := r.(error); ok {
  1072. err = e
  1073. } else if s, ok := r.(string); ok {
  1074. err = fmt.Errorf("Unexpected panic: %s", s)
  1075. } else {
  1076. err = fmt.Errorf("Unexpected panic: %+v", r)
  1077. }
  1078. }
  1079. }()
  1080. buff := util.NewBufferFromBytes(data)
  1081. // Codec Version Check
  1082. version := buff.ReadUInt8()
  1083. if version != CodecVersion {
  1084. return fmt.Errorf("Invalid Version Unmarshaling AssetSetRange. Expected %d, got %d", CodecVersion, version)
  1085. }
  1086. if buff.ReadUInt8() == uint8(0) {
  1087. target.assets = nil
  1088. } else {
  1089. // --- [begin][read][slice]([]*AssetSet) ---
  1090. b := buff.ReadInt() // array len
  1091. a := make([]*AssetSet, b)
  1092. for i := 0; i < b; i++ {
  1093. var c *AssetSet
  1094. if buff.ReadUInt8() == uint8(0) {
  1095. c = nil
  1096. } else {
  1097. // --- [begin][read][struct](AssetSet) ---
  1098. d := &AssetSet{}
  1099. e := buff.ReadInt() // byte array length
  1100. f := buff.ReadBytes(e) // byte array
  1101. errA := d.UnmarshalBinary(f)
  1102. if errA != nil {
  1103. return errA
  1104. }
  1105. c = d
  1106. // --- [end][read][struct](AssetSet) ---
  1107. }
  1108. a[i] = c
  1109. }
  1110. target.assets = a
  1111. // --- [end][read][slice]([]*AssetSet) ---
  1112. }
  1113. return nil
  1114. }
  1115. //--------------------------------------------------------------------------
  1116. // Breakdown
  1117. //--------------------------------------------------------------------------
  1118. // MarshalBinary serializes the internal properties of this Breakdown instance
  1119. // into a byte array
  1120. func (target *Breakdown) MarshalBinary() (data []byte, err error) {
  1121. // panics are recovered and propagated as errors
  1122. defer func() {
  1123. if r := recover(); r != nil {
  1124. if e, ok := r.(error); ok {
  1125. err = e
  1126. } else if s, ok := r.(string); ok {
  1127. err = fmt.Errorf("Unexpected panic: %s", s)
  1128. } else {
  1129. err = fmt.Errorf("Unexpected panic: %+v", r)
  1130. }
  1131. }
  1132. }()
  1133. buff := util.NewBuffer()
  1134. buff.WriteUInt8(CodecVersion) // version
  1135. buff.WriteFloat64(target.Idle) // write float64
  1136. buff.WriteFloat64(target.Other) // write float64
  1137. buff.WriteFloat64(target.System) // write float64
  1138. buff.WriteFloat64(target.User) // write float64
  1139. return buff.Bytes(), nil
  1140. }
  1141. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  1142. // the Breakdown type
  1143. func (target *Breakdown) UnmarshalBinary(data []byte) (err error) {
  1144. // panics are recovered and propagated as errors
  1145. defer func() {
  1146. if r := recover(); r != nil {
  1147. if e, ok := r.(error); ok {
  1148. err = e
  1149. } else if s, ok := r.(string); ok {
  1150. err = fmt.Errorf("Unexpected panic: %s", s)
  1151. } else {
  1152. err = fmt.Errorf("Unexpected panic: %+v", r)
  1153. }
  1154. }
  1155. }()
  1156. buff := util.NewBufferFromBytes(data)
  1157. // Codec Version Check
  1158. version := buff.ReadUInt8()
  1159. if version != CodecVersion {
  1160. return fmt.Errorf("Invalid Version Unmarshaling Breakdown. Expected %d, got %d", CodecVersion, version)
  1161. }
  1162. a := buff.ReadFloat64() // read float64
  1163. target.Idle = a
  1164. b := buff.ReadFloat64() // read float64
  1165. target.Other = b
  1166. c := buff.ReadFloat64() // read float64
  1167. target.System = c
  1168. d := buff.ReadFloat64() // read float64
  1169. target.User = d
  1170. return nil
  1171. }
  1172. //--------------------------------------------------------------------------
  1173. // Cloud
  1174. //--------------------------------------------------------------------------
  1175. // MarshalBinary serializes the internal properties of this Cloud instance
  1176. // into a byte array
  1177. func (target *Cloud) MarshalBinary() (data []byte, err error) {
  1178. // panics are recovered and propagated as errors
  1179. defer func() {
  1180. if r := recover(); r != nil {
  1181. if e, ok := r.(error); ok {
  1182. err = e
  1183. } else if s, ok := r.(string); ok {
  1184. err = fmt.Errorf("Unexpected panic: %s", s)
  1185. } else {
  1186. err = fmt.Errorf("Unexpected panic: %+v", r)
  1187. }
  1188. }
  1189. }()
  1190. buff := util.NewBuffer()
  1191. buff.WriteUInt8(CodecVersion) // version
  1192. // --- [begin][write][alias](AssetLabels) ---
  1193. if map[string]string(target.labels) == nil {
  1194. buff.WriteUInt8(uint8(0)) // write nil byte
  1195. } else {
  1196. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1197. // --- [begin][write][map](map[string]string) ---
  1198. buff.WriteInt(len(map[string]string(target.labels))) // map length
  1199. for k, v := range map[string]string(target.labels) {
  1200. buff.WriteString(k) // write string
  1201. buff.WriteString(v) // write string
  1202. }
  1203. // --- [end][write][map](map[string]string) ---
  1204. }
  1205. // --- [end][write][alias](AssetLabels) ---
  1206. if target.properties == nil {
  1207. buff.WriteUInt8(uint8(0)) // write nil byte
  1208. } else {
  1209. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1210. // --- [begin][write][struct](AssetProperties) ---
  1211. a, errA := target.properties.MarshalBinary()
  1212. if errA != nil {
  1213. return nil, errA
  1214. }
  1215. buff.WriteInt(len(a))
  1216. buff.WriteBytes(a)
  1217. // --- [end][write][struct](AssetProperties) ---
  1218. }
  1219. // --- [begin][write][reference](time.Time) ---
  1220. b, errB := target.start.MarshalBinary()
  1221. if errB != nil {
  1222. return nil, errB
  1223. }
  1224. buff.WriteInt(len(b))
  1225. buff.WriteBytes(b)
  1226. // --- [end][write][reference](time.Time) ---
  1227. // --- [begin][write][reference](time.Time) ---
  1228. c, errC := target.end.MarshalBinary()
  1229. if errC != nil {
  1230. return nil, errC
  1231. }
  1232. buff.WriteInt(len(c))
  1233. buff.WriteBytes(c)
  1234. // --- [end][write][reference](time.Time) ---
  1235. // --- [begin][write][struct](Window) ---
  1236. d, errD := target.window.MarshalBinary()
  1237. if errD != nil {
  1238. return nil, errD
  1239. }
  1240. buff.WriteInt(len(d))
  1241. buff.WriteBytes(d)
  1242. // --- [end][write][struct](Window) ---
  1243. buff.WriteFloat64(target.adjustment) // write float64
  1244. buff.WriteFloat64(target.Cost) // write float64
  1245. buff.WriteFloat64(target.Credit) // write float64
  1246. return buff.Bytes(), nil
  1247. }
  1248. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  1249. // the Cloud type
  1250. func (target *Cloud) UnmarshalBinary(data []byte) (err error) {
  1251. // panics are recovered and propagated as errors
  1252. defer func() {
  1253. if r := recover(); r != nil {
  1254. if e, ok := r.(error); ok {
  1255. err = e
  1256. } else if s, ok := r.(string); ok {
  1257. err = fmt.Errorf("Unexpected panic: %s", s)
  1258. } else {
  1259. err = fmt.Errorf("Unexpected panic: %+v", r)
  1260. }
  1261. }
  1262. }()
  1263. buff := util.NewBufferFromBytes(data)
  1264. // Codec Version Check
  1265. version := buff.ReadUInt8()
  1266. if version != CodecVersion {
  1267. return fmt.Errorf("Invalid Version Unmarshaling Cloud. Expected %d, got %d", CodecVersion, version)
  1268. }
  1269. // --- [begin][read][alias](AssetLabels) ---
  1270. var a map[string]string
  1271. if buff.ReadUInt8() == uint8(0) {
  1272. a = nil
  1273. } else {
  1274. // --- [begin][read][map](map[string]string) ---
  1275. b := make(map[string]string)
  1276. c := buff.ReadInt() // map len
  1277. for i := 0; i < c; i++ {
  1278. var k string
  1279. d := buff.ReadString() // read string
  1280. k = d
  1281. var v string
  1282. e := buff.ReadString() // read string
  1283. v = e
  1284. b[k] = v
  1285. }
  1286. a = b
  1287. // --- [end][read][map](map[string]string) ---
  1288. }
  1289. target.labels = AssetLabels(a)
  1290. // --- [end][read][alias](AssetLabels) ---
  1291. if buff.ReadUInt8() == uint8(0) {
  1292. target.properties = nil
  1293. } else {
  1294. // --- [begin][read][struct](AssetProperties) ---
  1295. f := &AssetProperties{}
  1296. g := buff.ReadInt() // byte array length
  1297. h := buff.ReadBytes(g) // byte array
  1298. errA := f.UnmarshalBinary(h)
  1299. if errA != nil {
  1300. return errA
  1301. }
  1302. target.properties = f
  1303. // --- [end][read][struct](AssetProperties) ---
  1304. }
  1305. // --- [begin][read][reference](time.Time) ---
  1306. l := &time.Time{}
  1307. m := buff.ReadInt() // byte array length
  1308. n := buff.ReadBytes(m) // byte array
  1309. errB := l.UnmarshalBinary(n)
  1310. if errB != nil {
  1311. return errB
  1312. }
  1313. target.start = *l
  1314. // --- [end][read][reference](time.Time) ---
  1315. // --- [begin][read][reference](time.Time) ---
  1316. o := &time.Time{}
  1317. p := buff.ReadInt() // byte array length
  1318. q := buff.ReadBytes(p) // byte array
  1319. errC := o.UnmarshalBinary(q)
  1320. if errC != nil {
  1321. return errC
  1322. }
  1323. target.end = *o
  1324. // --- [end][read][reference](time.Time) ---
  1325. // --- [begin][read][struct](Window) ---
  1326. r := &Window{}
  1327. s := buff.ReadInt() // byte array length
  1328. t := buff.ReadBytes(s) // byte array
  1329. errD := r.UnmarshalBinary(t)
  1330. if errD != nil {
  1331. return errD
  1332. }
  1333. target.window = *r
  1334. // --- [end][read][struct](Window) ---
  1335. u := buff.ReadFloat64() // read float64
  1336. target.adjustment = u
  1337. w := buff.ReadFloat64() // read float64
  1338. target.Cost = w
  1339. x := buff.ReadFloat64() // read float64
  1340. target.Credit = x
  1341. return nil
  1342. }
  1343. //--------------------------------------------------------------------------
  1344. // ClusterManagement
  1345. //--------------------------------------------------------------------------
  1346. // MarshalBinary serializes the internal properties of this ClusterManagement instance
  1347. // into a byte array
  1348. func (target *ClusterManagement) MarshalBinary() (data []byte, err error) {
  1349. // panics are recovered and propagated as errors
  1350. defer func() {
  1351. if r := recover(); r != nil {
  1352. if e, ok := r.(error); ok {
  1353. err = e
  1354. } else if s, ok := r.(string); ok {
  1355. err = fmt.Errorf("Unexpected panic: %s", s)
  1356. } else {
  1357. err = fmt.Errorf("Unexpected panic: %+v", r)
  1358. }
  1359. }
  1360. }()
  1361. buff := util.NewBuffer()
  1362. buff.WriteUInt8(CodecVersion) // version
  1363. // --- [begin][write][alias](AssetLabels) ---
  1364. if map[string]string(target.labels) == nil {
  1365. buff.WriteUInt8(uint8(0)) // write nil byte
  1366. } else {
  1367. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1368. // --- [begin][write][map](map[string]string) ---
  1369. buff.WriteInt(len(map[string]string(target.labels))) // map length
  1370. for k, v := range map[string]string(target.labels) {
  1371. buff.WriteString(k) // write string
  1372. buff.WriteString(v) // write string
  1373. }
  1374. // --- [end][write][map](map[string]string) ---
  1375. }
  1376. // --- [end][write][alias](AssetLabels) ---
  1377. if target.properties == nil {
  1378. buff.WriteUInt8(uint8(0)) // write nil byte
  1379. } else {
  1380. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1381. // --- [begin][write][struct](AssetProperties) ---
  1382. a, errA := target.properties.MarshalBinary()
  1383. if errA != nil {
  1384. return nil, errA
  1385. }
  1386. buff.WriteInt(len(a))
  1387. buff.WriteBytes(a)
  1388. // --- [end][write][struct](AssetProperties) ---
  1389. }
  1390. // --- [begin][write][struct](Window) ---
  1391. b, errB := target.window.MarshalBinary()
  1392. if errB != nil {
  1393. return nil, errB
  1394. }
  1395. buff.WriteInt(len(b))
  1396. buff.WriteBytes(b)
  1397. // --- [end][write][struct](Window) ---
  1398. buff.WriteFloat64(target.Cost) // write float64
  1399. return buff.Bytes(), nil
  1400. }
  1401. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  1402. // the ClusterManagement type
  1403. func (target *ClusterManagement) UnmarshalBinary(data []byte) (err error) {
  1404. // panics are recovered and propagated as errors
  1405. defer func() {
  1406. if r := recover(); r != nil {
  1407. if e, ok := r.(error); ok {
  1408. err = e
  1409. } else if s, ok := r.(string); ok {
  1410. err = fmt.Errorf("Unexpected panic: %s", s)
  1411. } else {
  1412. err = fmt.Errorf("Unexpected panic: %+v", r)
  1413. }
  1414. }
  1415. }()
  1416. buff := util.NewBufferFromBytes(data)
  1417. // Codec Version Check
  1418. version := buff.ReadUInt8()
  1419. if version != CodecVersion {
  1420. return fmt.Errorf("Invalid Version Unmarshaling ClusterManagement. Expected %d, got %d", CodecVersion, version)
  1421. }
  1422. // --- [begin][read][alias](AssetLabels) ---
  1423. var a map[string]string
  1424. if buff.ReadUInt8() == uint8(0) {
  1425. a = nil
  1426. } else {
  1427. // --- [begin][read][map](map[string]string) ---
  1428. b := make(map[string]string)
  1429. c := buff.ReadInt() // map len
  1430. for i := 0; i < c; i++ {
  1431. var k string
  1432. d := buff.ReadString() // read string
  1433. k = d
  1434. var v string
  1435. e := buff.ReadString() // read string
  1436. v = e
  1437. b[k] = v
  1438. }
  1439. a = b
  1440. // --- [end][read][map](map[string]string) ---
  1441. }
  1442. target.labels = AssetLabels(a)
  1443. // --- [end][read][alias](AssetLabels) ---
  1444. if buff.ReadUInt8() == uint8(0) {
  1445. target.properties = nil
  1446. } else {
  1447. // --- [begin][read][struct](AssetProperties) ---
  1448. f := &AssetProperties{}
  1449. g := buff.ReadInt() // byte array length
  1450. h := buff.ReadBytes(g) // byte array
  1451. errA := f.UnmarshalBinary(h)
  1452. if errA != nil {
  1453. return errA
  1454. }
  1455. target.properties = f
  1456. // --- [end][read][struct](AssetProperties) ---
  1457. }
  1458. // --- [begin][read][struct](Window) ---
  1459. l := &Window{}
  1460. m := buff.ReadInt() // byte array length
  1461. n := buff.ReadBytes(m) // byte array
  1462. errB := l.UnmarshalBinary(n)
  1463. if errB != nil {
  1464. return errB
  1465. }
  1466. target.window = *l
  1467. // --- [end][read][struct](Window) ---
  1468. o := buff.ReadFloat64() // read float64
  1469. target.Cost = o
  1470. return nil
  1471. }
  1472. //--------------------------------------------------------------------------
  1473. // Disk
  1474. //--------------------------------------------------------------------------
  1475. // MarshalBinary serializes the internal properties of this Disk instance
  1476. // into a byte array
  1477. func (target *Disk) MarshalBinary() (data []byte, err error) {
  1478. // panics are recovered and propagated as errors
  1479. defer func() {
  1480. if r := recover(); r != nil {
  1481. if e, ok := r.(error); ok {
  1482. err = e
  1483. } else if s, ok := r.(string); ok {
  1484. err = fmt.Errorf("Unexpected panic: %s", s)
  1485. } else {
  1486. err = fmt.Errorf("Unexpected panic: %+v", r)
  1487. }
  1488. }
  1489. }()
  1490. buff := util.NewBuffer()
  1491. buff.WriteUInt8(CodecVersion) // version
  1492. // --- [begin][write][alias](AssetLabels) ---
  1493. if map[string]string(target.labels) == nil {
  1494. buff.WriteUInt8(uint8(0)) // write nil byte
  1495. } else {
  1496. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1497. // --- [begin][write][map](map[string]string) ---
  1498. buff.WriteInt(len(map[string]string(target.labels))) // map length
  1499. for k, v := range map[string]string(target.labels) {
  1500. buff.WriteString(k) // write string
  1501. buff.WriteString(v) // write string
  1502. }
  1503. // --- [end][write][map](map[string]string) ---
  1504. }
  1505. // --- [end][write][alias](AssetLabels) ---
  1506. if target.properties == nil {
  1507. buff.WriteUInt8(uint8(0)) // write nil byte
  1508. } else {
  1509. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1510. // --- [begin][write][struct](AssetProperties) ---
  1511. a, errA := target.properties.MarshalBinary()
  1512. if errA != nil {
  1513. return nil, errA
  1514. }
  1515. buff.WriteInt(len(a))
  1516. buff.WriteBytes(a)
  1517. // --- [end][write][struct](AssetProperties) ---
  1518. }
  1519. // --- [begin][write][reference](time.Time) ---
  1520. b, errB := target.start.MarshalBinary()
  1521. if errB != nil {
  1522. return nil, errB
  1523. }
  1524. buff.WriteInt(len(b))
  1525. buff.WriteBytes(b)
  1526. // --- [end][write][reference](time.Time) ---
  1527. // --- [begin][write][reference](time.Time) ---
  1528. c, errC := target.end.MarshalBinary()
  1529. if errC != nil {
  1530. return nil, errC
  1531. }
  1532. buff.WriteInt(len(c))
  1533. buff.WriteBytes(c)
  1534. // --- [end][write][reference](time.Time) ---
  1535. // --- [begin][write][struct](Window) ---
  1536. d, errD := target.window.MarshalBinary()
  1537. if errD != nil {
  1538. return nil, errD
  1539. }
  1540. buff.WriteInt(len(d))
  1541. buff.WriteBytes(d)
  1542. // --- [end][write][struct](Window) ---
  1543. buff.WriteFloat64(target.adjustment) // write float64
  1544. buff.WriteFloat64(target.Cost) // write float64
  1545. buff.WriteFloat64(target.ByteHours) // write float64
  1546. buff.WriteFloat64(target.Local) // write float64
  1547. if target.Breakdown == nil {
  1548. buff.WriteUInt8(uint8(0)) // write nil byte
  1549. } else {
  1550. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1551. // --- [begin][write][struct](Breakdown) ---
  1552. e, errE := target.Breakdown.MarshalBinary()
  1553. if errE != nil {
  1554. return nil, errE
  1555. }
  1556. buff.WriteInt(len(e))
  1557. buff.WriteBytes(e)
  1558. // --- [end][write][struct](Breakdown) ---
  1559. }
  1560. return buff.Bytes(), nil
  1561. }
  1562. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  1563. // the Disk type
  1564. func (target *Disk) UnmarshalBinary(data []byte) (err error) {
  1565. // panics are recovered and propagated as errors
  1566. defer func() {
  1567. if r := recover(); r != nil {
  1568. if e, ok := r.(error); ok {
  1569. err = e
  1570. } else if s, ok := r.(string); ok {
  1571. err = fmt.Errorf("Unexpected panic: %s", s)
  1572. } else {
  1573. err = fmt.Errorf("Unexpected panic: %+v", r)
  1574. }
  1575. }
  1576. }()
  1577. buff := util.NewBufferFromBytes(data)
  1578. // Codec Version Check
  1579. version := buff.ReadUInt8()
  1580. if version != CodecVersion {
  1581. return fmt.Errorf("Invalid Version Unmarshaling Disk. Expected %d, got %d", CodecVersion, version)
  1582. }
  1583. // --- [begin][read][alias](AssetLabels) ---
  1584. var a map[string]string
  1585. if buff.ReadUInt8() == uint8(0) {
  1586. a = nil
  1587. } else {
  1588. // --- [begin][read][map](map[string]string) ---
  1589. b := make(map[string]string)
  1590. c := buff.ReadInt() // map len
  1591. for i := 0; i < c; i++ {
  1592. var k string
  1593. d := buff.ReadString() // read string
  1594. k = d
  1595. var v string
  1596. e := buff.ReadString() // read string
  1597. v = e
  1598. b[k] = v
  1599. }
  1600. a = b
  1601. // --- [end][read][map](map[string]string) ---
  1602. }
  1603. target.labels = AssetLabels(a)
  1604. // --- [end][read][alias](AssetLabels) ---
  1605. if buff.ReadUInt8() == uint8(0) {
  1606. target.properties = nil
  1607. } else {
  1608. // --- [begin][read][struct](AssetProperties) ---
  1609. f := &AssetProperties{}
  1610. g := buff.ReadInt() // byte array length
  1611. h := buff.ReadBytes(g) // byte array
  1612. errA := f.UnmarshalBinary(h)
  1613. if errA != nil {
  1614. return errA
  1615. }
  1616. target.properties = f
  1617. // --- [end][read][struct](AssetProperties) ---
  1618. }
  1619. // --- [begin][read][reference](time.Time) ---
  1620. l := &time.Time{}
  1621. m := buff.ReadInt() // byte array length
  1622. n := buff.ReadBytes(m) // byte array
  1623. errB := l.UnmarshalBinary(n)
  1624. if errB != nil {
  1625. return errB
  1626. }
  1627. target.start = *l
  1628. // --- [end][read][reference](time.Time) ---
  1629. // --- [begin][read][reference](time.Time) ---
  1630. o := &time.Time{}
  1631. p := buff.ReadInt() // byte array length
  1632. q := buff.ReadBytes(p) // byte array
  1633. errC := o.UnmarshalBinary(q)
  1634. if errC != nil {
  1635. return errC
  1636. }
  1637. target.end = *o
  1638. // --- [end][read][reference](time.Time) ---
  1639. // --- [begin][read][struct](Window) ---
  1640. r := &Window{}
  1641. s := buff.ReadInt() // byte array length
  1642. t := buff.ReadBytes(s) // byte array
  1643. errD := r.UnmarshalBinary(t)
  1644. if errD != nil {
  1645. return errD
  1646. }
  1647. target.window = *r
  1648. // --- [end][read][struct](Window) ---
  1649. u := buff.ReadFloat64() // read float64
  1650. target.adjustment = u
  1651. w := buff.ReadFloat64() // read float64
  1652. target.Cost = w
  1653. x := buff.ReadFloat64() // read float64
  1654. target.ByteHours = x
  1655. y := buff.ReadFloat64() // read float64
  1656. target.Local = y
  1657. if buff.ReadUInt8() == uint8(0) {
  1658. target.Breakdown = nil
  1659. } else {
  1660. // --- [begin][read][struct](Breakdown) ---
  1661. z := &Breakdown{}
  1662. aa := buff.ReadInt() // byte array length
  1663. bb := buff.ReadBytes(aa) // byte array
  1664. errE := z.UnmarshalBinary(bb)
  1665. if errE != nil {
  1666. return errE
  1667. }
  1668. target.Breakdown = z
  1669. // --- [end][read][struct](Breakdown) ---
  1670. }
  1671. return nil
  1672. }
  1673. //--------------------------------------------------------------------------
  1674. // LoadBalancer
  1675. //--------------------------------------------------------------------------
  1676. // MarshalBinary serializes the internal properties of this LoadBalancer instance
  1677. // into a byte array
  1678. func (target *LoadBalancer) MarshalBinary() (data []byte, err error) {
  1679. // panics are recovered and propagated as errors
  1680. defer func() {
  1681. if r := recover(); r != nil {
  1682. if e, ok := r.(error); ok {
  1683. err = e
  1684. } else if s, ok := r.(string); ok {
  1685. err = fmt.Errorf("Unexpected panic: %s", s)
  1686. } else {
  1687. err = fmt.Errorf("Unexpected panic: %+v", r)
  1688. }
  1689. }
  1690. }()
  1691. buff := util.NewBuffer()
  1692. buff.WriteUInt8(CodecVersion) // version
  1693. if target.properties == nil {
  1694. buff.WriteUInt8(uint8(0)) // write nil byte
  1695. } else {
  1696. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1697. // --- [begin][write][struct](AssetProperties) ---
  1698. a, errA := target.properties.MarshalBinary()
  1699. if errA != nil {
  1700. return nil, errA
  1701. }
  1702. buff.WriteInt(len(a))
  1703. buff.WriteBytes(a)
  1704. // --- [end][write][struct](AssetProperties) ---
  1705. }
  1706. // --- [begin][write][alias](AssetLabels) ---
  1707. if map[string]string(target.labels) == nil {
  1708. buff.WriteUInt8(uint8(0)) // write nil byte
  1709. } else {
  1710. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1711. // --- [begin][write][map](map[string]string) ---
  1712. buff.WriteInt(len(map[string]string(target.labels))) // map length
  1713. for k, v := range map[string]string(target.labels) {
  1714. buff.WriteString(k) // write string
  1715. buff.WriteString(v) // write string
  1716. }
  1717. // --- [end][write][map](map[string]string) ---
  1718. }
  1719. // --- [end][write][alias](AssetLabels) ---
  1720. // --- [begin][write][reference](time.Time) ---
  1721. b, errB := target.start.MarshalBinary()
  1722. if errB != nil {
  1723. return nil, errB
  1724. }
  1725. buff.WriteInt(len(b))
  1726. buff.WriteBytes(b)
  1727. // --- [end][write][reference](time.Time) ---
  1728. // --- [begin][write][reference](time.Time) ---
  1729. c, errC := target.end.MarshalBinary()
  1730. if errC != nil {
  1731. return nil, errC
  1732. }
  1733. buff.WriteInt(len(c))
  1734. buff.WriteBytes(c)
  1735. // --- [end][write][reference](time.Time) ---
  1736. // --- [begin][write][struct](Window) ---
  1737. d, errD := target.window.MarshalBinary()
  1738. if errD != nil {
  1739. return nil, errD
  1740. }
  1741. buff.WriteInt(len(d))
  1742. buff.WriteBytes(d)
  1743. // --- [end][write][struct](Window) ---
  1744. buff.WriteFloat64(target.adjustment) // write float64
  1745. buff.WriteFloat64(target.Cost) // write float64
  1746. return buff.Bytes(), nil
  1747. }
  1748. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  1749. // the LoadBalancer type
  1750. func (target *LoadBalancer) UnmarshalBinary(data []byte) (err error) {
  1751. // panics are recovered and propagated as errors
  1752. defer func() {
  1753. if r := recover(); r != nil {
  1754. if e, ok := r.(error); ok {
  1755. err = e
  1756. } else if s, ok := r.(string); ok {
  1757. err = fmt.Errorf("Unexpected panic: %s", s)
  1758. } else {
  1759. err = fmt.Errorf("Unexpected panic: %+v", r)
  1760. }
  1761. }
  1762. }()
  1763. buff := util.NewBufferFromBytes(data)
  1764. // Codec Version Check
  1765. version := buff.ReadUInt8()
  1766. if version != CodecVersion {
  1767. return fmt.Errorf("Invalid Version Unmarshaling LoadBalancer. Expected %d, got %d", CodecVersion, version)
  1768. }
  1769. if buff.ReadUInt8() == uint8(0) {
  1770. target.properties = nil
  1771. } else {
  1772. // --- [begin][read][struct](AssetProperties) ---
  1773. a := &AssetProperties{}
  1774. b := buff.ReadInt() // byte array length
  1775. c := buff.ReadBytes(b) // byte array
  1776. errA := a.UnmarshalBinary(c)
  1777. if errA != nil {
  1778. return errA
  1779. }
  1780. target.properties = a
  1781. // --- [end][read][struct](AssetProperties) ---
  1782. }
  1783. // --- [begin][read][alias](AssetLabels) ---
  1784. var d map[string]string
  1785. if buff.ReadUInt8() == uint8(0) {
  1786. d = nil
  1787. } else {
  1788. // --- [begin][read][map](map[string]string) ---
  1789. e := make(map[string]string)
  1790. f := buff.ReadInt() // map len
  1791. for i := 0; i < f; i++ {
  1792. var k string
  1793. g := buff.ReadString() // read string
  1794. k = g
  1795. var v string
  1796. h := buff.ReadString() // read string
  1797. v = h
  1798. e[k] = v
  1799. }
  1800. d = e
  1801. // --- [end][read][map](map[string]string) ---
  1802. }
  1803. target.labels = AssetLabels(d)
  1804. // --- [end][read][alias](AssetLabels) ---
  1805. // --- [begin][read][reference](time.Time) ---
  1806. l := &time.Time{}
  1807. m := buff.ReadInt() // byte array length
  1808. n := buff.ReadBytes(m) // byte array
  1809. errB := l.UnmarshalBinary(n)
  1810. if errB != nil {
  1811. return errB
  1812. }
  1813. target.start = *l
  1814. // --- [end][read][reference](time.Time) ---
  1815. // --- [begin][read][reference](time.Time) ---
  1816. o := &time.Time{}
  1817. p := buff.ReadInt() // byte array length
  1818. q := buff.ReadBytes(p) // byte array
  1819. errC := o.UnmarshalBinary(q)
  1820. if errC != nil {
  1821. return errC
  1822. }
  1823. target.end = *o
  1824. // --- [end][read][reference](time.Time) ---
  1825. // --- [begin][read][struct](Window) ---
  1826. r := &Window{}
  1827. s := buff.ReadInt() // byte array length
  1828. t := buff.ReadBytes(s) // byte array
  1829. errD := r.UnmarshalBinary(t)
  1830. if errD != nil {
  1831. return errD
  1832. }
  1833. target.window = *r
  1834. // --- [end][read][struct](Window) ---
  1835. u := buff.ReadFloat64() // read float64
  1836. target.adjustment = u
  1837. w := buff.ReadFloat64() // read float64
  1838. target.Cost = w
  1839. return nil
  1840. }
  1841. //--------------------------------------------------------------------------
  1842. // Network
  1843. //--------------------------------------------------------------------------
  1844. // MarshalBinary serializes the internal properties of this Network instance
  1845. // into a byte array
  1846. func (target *Network) MarshalBinary() (data []byte, err error) {
  1847. // panics are recovered and propagated as errors
  1848. defer func() {
  1849. if r := recover(); r != nil {
  1850. if e, ok := r.(error); ok {
  1851. err = e
  1852. } else if s, ok := r.(string); ok {
  1853. err = fmt.Errorf("Unexpected panic: %s", s)
  1854. } else {
  1855. err = fmt.Errorf("Unexpected panic: %+v", r)
  1856. }
  1857. }
  1858. }()
  1859. buff := util.NewBuffer()
  1860. buff.WriteUInt8(CodecVersion) // version
  1861. if target.properties == nil {
  1862. buff.WriteUInt8(uint8(0)) // write nil byte
  1863. } else {
  1864. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1865. // --- [begin][write][struct](AssetProperties) ---
  1866. a, errA := target.properties.MarshalBinary()
  1867. if errA != nil {
  1868. return nil, errA
  1869. }
  1870. buff.WriteInt(len(a))
  1871. buff.WriteBytes(a)
  1872. // --- [end][write][struct](AssetProperties) ---
  1873. }
  1874. // --- [begin][write][alias](AssetLabels) ---
  1875. if map[string]string(target.labels) == nil {
  1876. buff.WriteUInt8(uint8(0)) // write nil byte
  1877. } else {
  1878. buff.WriteUInt8(uint8(1)) // write non-nil byte
  1879. // --- [begin][write][map](map[string]string) ---
  1880. buff.WriteInt(len(map[string]string(target.labels))) // map length
  1881. for k, v := range map[string]string(target.labels) {
  1882. buff.WriteString(k) // write string
  1883. buff.WriteString(v) // write string
  1884. }
  1885. // --- [end][write][map](map[string]string) ---
  1886. }
  1887. // --- [end][write][alias](AssetLabels) ---
  1888. // --- [begin][write][reference](time.Time) ---
  1889. b, errB := target.start.MarshalBinary()
  1890. if errB != nil {
  1891. return nil, errB
  1892. }
  1893. buff.WriteInt(len(b))
  1894. buff.WriteBytes(b)
  1895. // --- [end][write][reference](time.Time) ---
  1896. // --- [begin][write][reference](time.Time) ---
  1897. c, errC := target.end.MarshalBinary()
  1898. if errC != nil {
  1899. return nil, errC
  1900. }
  1901. buff.WriteInt(len(c))
  1902. buff.WriteBytes(c)
  1903. // --- [end][write][reference](time.Time) ---
  1904. // --- [begin][write][struct](Window) ---
  1905. d, errD := target.window.MarshalBinary()
  1906. if errD != nil {
  1907. return nil, errD
  1908. }
  1909. buff.WriteInt(len(d))
  1910. buff.WriteBytes(d)
  1911. // --- [end][write][struct](Window) ---
  1912. buff.WriteFloat64(target.adjustment) // write float64
  1913. buff.WriteFloat64(target.Cost) // write float64
  1914. return buff.Bytes(), nil
  1915. }
  1916. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  1917. // the Network type
  1918. func (target *Network) UnmarshalBinary(data []byte) (err error) {
  1919. // panics are recovered and propagated as errors
  1920. defer func() {
  1921. if r := recover(); r != nil {
  1922. if e, ok := r.(error); ok {
  1923. err = e
  1924. } else if s, ok := r.(string); ok {
  1925. err = fmt.Errorf("Unexpected panic: %s", s)
  1926. } else {
  1927. err = fmt.Errorf("Unexpected panic: %+v", r)
  1928. }
  1929. }
  1930. }()
  1931. buff := util.NewBufferFromBytes(data)
  1932. // Codec Version Check
  1933. version := buff.ReadUInt8()
  1934. if version != CodecVersion {
  1935. return fmt.Errorf("Invalid Version Unmarshaling Network. Expected %d, got %d", CodecVersion, version)
  1936. }
  1937. if buff.ReadUInt8() == uint8(0) {
  1938. target.properties = nil
  1939. } else {
  1940. // --- [begin][read][struct](AssetProperties) ---
  1941. a := &AssetProperties{}
  1942. b := buff.ReadInt() // byte array length
  1943. c := buff.ReadBytes(b) // byte array
  1944. errA := a.UnmarshalBinary(c)
  1945. if errA != nil {
  1946. return errA
  1947. }
  1948. target.properties = a
  1949. // --- [end][read][struct](AssetProperties) ---
  1950. }
  1951. // --- [begin][read][alias](AssetLabels) ---
  1952. var d map[string]string
  1953. if buff.ReadUInt8() == uint8(0) {
  1954. d = nil
  1955. } else {
  1956. // --- [begin][read][map](map[string]string) ---
  1957. e := make(map[string]string)
  1958. f := buff.ReadInt() // map len
  1959. for i := 0; i < f; i++ {
  1960. var k string
  1961. g := buff.ReadString() // read string
  1962. k = g
  1963. var v string
  1964. h := buff.ReadString() // read string
  1965. v = h
  1966. e[k] = v
  1967. }
  1968. d = e
  1969. // --- [end][read][map](map[string]string) ---
  1970. }
  1971. target.labels = AssetLabels(d)
  1972. // --- [end][read][alias](AssetLabels) ---
  1973. // --- [begin][read][reference](time.Time) ---
  1974. l := &time.Time{}
  1975. m := buff.ReadInt() // byte array length
  1976. n := buff.ReadBytes(m) // byte array
  1977. errB := l.UnmarshalBinary(n)
  1978. if errB != nil {
  1979. return errB
  1980. }
  1981. target.start = *l
  1982. // --- [end][read][reference](time.Time) ---
  1983. // --- [begin][read][reference](time.Time) ---
  1984. o := &time.Time{}
  1985. p := buff.ReadInt() // byte array length
  1986. q := buff.ReadBytes(p) // byte array
  1987. errC := o.UnmarshalBinary(q)
  1988. if errC != nil {
  1989. return errC
  1990. }
  1991. target.end = *o
  1992. // --- [end][read][reference](time.Time) ---
  1993. // --- [begin][read][struct](Window) ---
  1994. r := &Window{}
  1995. s := buff.ReadInt() // byte array length
  1996. t := buff.ReadBytes(s) // byte array
  1997. errD := r.UnmarshalBinary(t)
  1998. if errD != nil {
  1999. return errD
  2000. }
  2001. target.window = *r
  2002. // --- [end][read][struct](Window) ---
  2003. u := buff.ReadFloat64() // read float64
  2004. target.adjustment = u
  2005. w := buff.ReadFloat64() // read float64
  2006. target.Cost = w
  2007. return nil
  2008. }
  2009. //--------------------------------------------------------------------------
  2010. // Node
  2011. //--------------------------------------------------------------------------
  2012. // MarshalBinary serializes the internal properties of this Node instance
  2013. // into a byte array
  2014. func (target *Node) MarshalBinary() (data []byte, err error) {
  2015. // panics are recovered and propagated as errors
  2016. defer func() {
  2017. if r := recover(); r != nil {
  2018. if e, ok := r.(error); ok {
  2019. err = e
  2020. } else if s, ok := r.(string); ok {
  2021. err = fmt.Errorf("Unexpected panic: %s", s)
  2022. } else {
  2023. err = fmt.Errorf("Unexpected panic: %+v", r)
  2024. }
  2025. }
  2026. }()
  2027. buff := util.NewBuffer()
  2028. buff.WriteUInt8(CodecVersion) // version
  2029. if target.properties == nil {
  2030. buff.WriteUInt8(uint8(0)) // write nil byte
  2031. } else {
  2032. buff.WriteUInt8(uint8(1)) // write non-nil byte
  2033. // --- [begin][write][struct](AssetProperties) ---
  2034. a, errA := target.properties.MarshalBinary()
  2035. if errA != nil {
  2036. return nil, errA
  2037. }
  2038. buff.WriteInt(len(a))
  2039. buff.WriteBytes(a)
  2040. // --- [end][write][struct](AssetProperties) ---
  2041. }
  2042. // --- [begin][write][alias](AssetLabels) ---
  2043. if map[string]string(target.labels) == nil {
  2044. buff.WriteUInt8(uint8(0)) // write nil byte
  2045. } else {
  2046. buff.WriteUInt8(uint8(1)) // write non-nil byte
  2047. // --- [begin][write][map](map[string]string) ---
  2048. buff.WriteInt(len(map[string]string(target.labels))) // map length
  2049. for k, v := range map[string]string(target.labels) {
  2050. buff.WriteString(k) // write string
  2051. buff.WriteString(v) // write string
  2052. }
  2053. // --- [end][write][map](map[string]string) ---
  2054. }
  2055. // --- [end][write][alias](AssetLabels) ---
  2056. // --- [begin][write][reference](time.Time) ---
  2057. b, errB := target.start.MarshalBinary()
  2058. if errB != nil {
  2059. return nil, errB
  2060. }
  2061. buff.WriteInt(len(b))
  2062. buff.WriteBytes(b)
  2063. // --- [end][write][reference](time.Time) ---
  2064. // --- [begin][write][reference](time.Time) ---
  2065. c, errC := target.end.MarshalBinary()
  2066. if errC != nil {
  2067. return nil, errC
  2068. }
  2069. buff.WriteInt(len(c))
  2070. buff.WriteBytes(c)
  2071. // --- [end][write][reference](time.Time) ---
  2072. // --- [begin][write][struct](Window) ---
  2073. d, errD := target.window.MarshalBinary()
  2074. if errD != nil {
  2075. return nil, errD
  2076. }
  2077. buff.WriteInt(len(d))
  2078. buff.WriteBytes(d)
  2079. // --- [end][write][struct](Window) ---
  2080. buff.WriteFloat64(target.adjustment) // write float64
  2081. buff.WriteString(target.NodeType) // write string
  2082. buff.WriteFloat64(target.CPUCoreHours) // write float64
  2083. buff.WriteFloat64(target.RAMByteHours) // write float64
  2084. if target.CPUBreakdown == nil {
  2085. buff.WriteUInt8(uint8(0)) // write nil byte
  2086. } else {
  2087. buff.WriteUInt8(uint8(1)) // write non-nil byte
  2088. // --- [begin][write][struct](Breakdown) ---
  2089. e, errE := target.CPUBreakdown.MarshalBinary()
  2090. if errE != nil {
  2091. return nil, errE
  2092. }
  2093. buff.WriteInt(len(e))
  2094. buff.WriteBytes(e)
  2095. // --- [end][write][struct](Breakdown) ---
  2096. }
  2097. if target.RAMBreakdown == nil {
  2098. buff.WriteUInt8(uint8(0)) // write nil byte
  2099. } else {
  2100. buff.WriteUInt8(uint8(1)) // write non-nil byte
  2101. // --- [begin][write][struct](Breakdown) ---
  2102. f, errF := target.RAMBreakdown.MarshalBinary()
  2103. if errF != nil {
  2104. return nil, errF
  2105. }
  2106. buff.WriteInt(len(f))
  2107. buff.WriteBytes(f)
  2108. // --- [end][write][struct](Breakdown) ---
  2109. }
  2110. buff.WriteFloat64(target.CPUCost) // write float64
  2111. buff.WriteFloat64(target.GPUCost) // write float64
  2112. buff.WriteFloat64(target.RAMCost) // write float64
  2113. buff.WriteFloat64(target.Discount) // write float64
  2114. buff.WriteFloat64(target.Preemptible) // write float64
  2115. return buff.Bytes(), nil
  2116. }
  2117. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  2118. // the Node type
  2119. func (target *Node) UnmarshalBinary(data []byte) (err error) {
  2120. // panics are recovered and propagated as errors
  2121. defer func() {
  2122. if r := recover(); r != nil {
  2123. if e, ok := r.(error); ok {
  2124. err = e
  2125. } else if s, ok := r.(string); ok {
  2126. err = fmt.Errorf("Unexpected panic: %s", s)
  2127. } else {
  2128. err = fmt.Errorf("Unexpected panic: %+v", r)
  2129. }
  2130. }
  2131. }()
  2132. buff := util.NewBufferFromBytes(data)
  2133. // Codec Version Check
  2134. version := buff.ReadUInt8()
  2135. if version != CodecVersion {
  2136. return fmt.Errorf("Invalid Version Unmarshaling Node. Expected %d, got %d", CodecVersion, version)
  2137. }
  2138. if buff.ReadUInt8() == uint8(0) {
  2139. target.properties = nil
  2140. } else {
  2141. // --- [begin][read][struct](AssetProperties) ---
  2142. a := &AssetProperties{}
  2143. b := buff.ReadInt() // byte array length
  2144. c := buff.ReadBytes(b) // byte array
  2145. errA := a.UnmarshalBinary(c)
  2146. if errA != nil {
  2147. return errA
  2148. }
  2149. target.properties = a
  2150. // --- [end][read][struct](AssetProperties) ---
  2151. }
  2152. // --- [begin][read][alias](AssetLabels) ---
  2153. var d map[string]string
  2154. if buff.ReadUInt8() == uint8(0) {
  2155. d = nil
  2156. } else {
  2157. // --- [begin][read][map](map[string]string) ---
  2158. e := make(map[string]string)
  2159. f := buff.ReadInt() // map len
  2160. for i := 0; i < f; i++ {
  2161. var k string
  2162. g := buff.ReadString() // read string
  2163. k = g
  2164. var v string
  2165. h := buff.ReadString() // read string
  2166. v = h
  2167. e[k] = v
  2168. }
  2169. d = e
  2170. // --- [end][read][map](map[string]string) ---
  2171. }
  2172. target.labels = AssetLabels(d)
  2173. // --- [end][read][alias](AssetLabels) ---
  2174. // --- [begin][read][reference](time.Time) ---
  2175. l := &time.Time{}
  2176. m := buff.ReadInt() // byte array length
  2177. n := buff.ReadBytes(m) // byte array
  2178. errB := l.UnmarshalBinary(n)
  2179. if errB != nil {
  2180. return errB
  2181. }
  2182. target.start = *l
  2183. // --- [end][read][reference](time.Time) ---
  2184. // --- [begin][read][reference](time.Time) ---
  2185. o := &time.Time{}
  2186. p := buff.ReadInt() // byte array length
  2187. q := buff.ReadBytes(p) // byte array
  2188. errC := o.UnmarshalBinary(q)
  2189. if errC != nil {
  2190. return errC
  2191. }
  2192. target.end = *o
  2193. // --- [end][read][reference](time.Time) ---
  2194. // --- [begin][read][struct](Window) ---
  2195. r := &Window{}
  2196. s := buff.ReadInt() // byte array length
  2197. t := buff.ReadBytes(s) // byte array
  2198. errD := r.UnmarshalBinary(t)
  2199. if errD != nil {
  2200. return errD
  2201. }
  2202. target.window = *r
  2203. // --- [end][read][struct](Window) ---
  2204. u := buff.ReadFloat64() // read float64
  2205. target.adjustment = u
  2206. w := buff.ReadString() // read string
  2207. target.NodeType = w
  2208. x := buff.ReadFloat64() // read float64
  2209. target.CPUCoreHours = x
  2210. y := buff.ReadFloat64() // read float64
  2211. target.RAMByteHours = y
  2212. if buff.ReadUInt8() == uint8(0) {
  2213. target.CPUBreakdown = nil
  2214. } else {
  2215. // --- [begin][read][struct](Breakdown) ---
  2216. z := &Breakdown{}
  2217. aa := buff.ReadInt() // byte array length
  2218. bb := buff.ReadBytes(aa) // byte array
  2219. errE := z.UnmarshalBinary(bb)
  2220. if errE != nil {
  2221. return errE
  2222. }
  2223. target.CPUBreakdown = z
  2224. // --- [end][read][struct](Breakdown) ---
  2225. }
  2226. if buff.ReadUInt8() == uint8(0) {
  2227. target.RAMBreakdown = nil
  2228. } else {
  2229. // --- [begin][read][struct](Breakdown) ---
  2230. cc := &Breakdown{}
  2231. dd := buff.ReadInt() // byte array length
  2232. ee := buff.ReadBytes(dd) // byte array
  2233. errF := cc.UnmarshalBinary(ee)
  2234. if errF != nil {
  2235. return errF
  2236. }
  2237. target.RAMBreakdown = cc
  2238. // --- [end][read][struct](Breakdown) ---
  2239. }
  2240. ff := buff.ReadFloat64() // read float64
  2241. target.CPUCost = ff
  2242. gg := buff.ReadFloat64() // read float64
  2243. target.GPUCost = gg
  2244. hh := buff.ReadFloat64() // read float64
  2245. target.RAMCost = hh
  2246. ll := buff.ReadFloat64() // read float64
  2247. target.Discount = ll
  2248. mm := buff.ReadFloat64() // read float64
  2249. target.Preemptible = mm
  2250. return nil
  2251. }
  2252. //--------------------------------------------------------------------------
  2253. // SharedAsset
  2254. //--------------------------------------------------------------------------
  2255. // MarshalBinary serializes the internal properties of this SharedAsset instance
  2256. // into a byte array
  2257. func (target *SharedAsset) MarshalBinary() (data []byte, err error) {
  2258. // panics are recovered and propagated as errors
  2259. defer func() {
  2260. if r := recover(); r != nil {
  2261. if e, ok := r.(error); ok {
  2262. err = e
  2263. } else if s, ok := r.(string); ok {
  2264. err = fmt.Errorf("Unexpected panic: %s", s)
  2265. } else {
  2266. err = fmt.Errorf("Unexpected panic: %+v", r)
  2267. }
  2268. }
  2269. }()
  2270. buff := util.NewBuffer()
  2271. buff.WriteUInt8(CodecVersion) // version
  2272. if target.properties == nil {
  2273. buff.WriteUInt8(uint8(0)) // write nil byte
  2274. } else {
  2275. buff.WriteUInt8(uint8(1)) // write non-nil byte
  2276. // --- [begin][write][struct](AssetProperties) ---
  2277. a, errA := target.properties.MarshalBinary()
  2278. if errA != nil {
  2279. return nil, errA
  2280. }
  2281. buff.WriteInt(len(a))
  2282. buff.WriteBytes(a)
  2283. // --- [end][write][struct](AssetProperties) ---
  2284. }
  2285. // --- [begin][write][alias](AssetLabels) ---
  2286. if map[string]string(target.labels) == nil {
  2287. buff.WriteUInt8(uint8(0)) // write nil byte
  2288. } else {
  2289. buff.WriteUInt8(uint8(1)) // write non-nil byte
  2290. // --- [begin][write][map](map[string]string) ---
  2291. buff.WriteInt(len(map[string]string(target.labels))) // map length
  2292. for k, v := range map[string]string(target.labels) {
  2293. buff.WriteString(k) // write string
  2294. buff.WriteString(v) // write string
  2295. }
  2296. // --- [end][write][map](map[string]string) ---
  2297. }
  2298. // --- [end][write][alias](AssetLabels) ---
  2299. // --- [begin][write][struct](Window) ---
  2300. b, errB := target.window.MarshalBinary()
  2301. if errB != nil {
  2302. return nil, errB
  2303. }
  2304. buff.WriteInt(len(b))
  2305. buff.WriteBytes(b)
  2306. // --- [end][write][struct](Window) ---
  2307. buff.WriteFloat64(target.Cost) // write float64
  2308. return buff.Bytes(), nil
  2309. }
  2310. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  2311. // the SharedAsset type
  2312. func (target *SharedAsset) UnmarshalBinary(data []byte) (err error) {
  2313. // panics are recovered and propagated as errors
  2314. defer func() {
  2315. if r := recover(); r != nil {
  2316. if e, ok := r.(error); ok {
  2317. err = e
  2318. } else if s, ok := r.(string); ok {
  2319. err = fmt.Errorf("Unexpected panic: %s", s)
  2320. } else {
  2321. err = fmt.Errorf("Unexpected panic: %+v", r)
  2322. }
  2323. }
  2324. }()
  2325. buff := util.NewBufferFromBytes(data)
  2326. // Codec Version Check
  2327. version := buff.ReadUInt8()
  2328. if version != CodecVersion {
  2329. return fmt.Errorf("Invalid Version Unmarshaling SharedAsset. Expected %d, got %d", CodecVersion, version)
  2330. }
  2331. if buff.ReadUInt8() == uint8(0) {
  2332. target.properties = nil
  2333. } else {
  2334. // --- [begin][read][struct](AssetProperties) ---
  2335. a := &AssetProperties{}
  2336. b := buff.ReadInt() // byte array length
  2337. c := buff.ReadBytes(b) // byte array
  2338. errA := a.UnmarshalBinary(c)
  2339. if errA != nil {
  2340. return errA
  2341. }
  2342. target.properties = a
  2343. // --- [end][read][struct](AssetProperties) ---
  2344. }
  2345. // --- [begin][read][alias](AssetLabels) ---
  2346. var d map[string]string
  2347. if buff.ReadUInt8() == uint8(0) {
  2348. d = nil
  2349. } else {
  2350. // --- [begin][read][map](map[string]string) ---
  2351. e := make(map[string]string)
  2352. f := buff.ReadInt() // map len
  2353. for i := 0; i < f; i++ {
  2354. var k string
  2355. g := buff.ReadString() // read string
  2356. k = g
  2357. var v string
  2358. h := buff.ReadString() // read string
  2359. v = h
  2360. e[k] = v
  2361. }
  2362. d = e
  2363. // --- [end][read][map](map[string]string) ---
  2364. }
  2365. target.labels = AssetLabels(d)
  2366. // --- [end][read][alias](AssetLabels) ---
  2367. // --- [begin][read][struct](Window) ---
  2368. l := &Window{}
  2369. m := buff.ReadInt() // byte array length
  2370. n := buff.ReadBytes(m) // byte array
  2371. errB := l.UnmarshalBinary(n)
  2372. if errB != nil {
  2373. return errB
  2374. }
  2375. target.window = *l
  2376. // --- [end][read][struct](Window) ---
  2377. o := buff.ReadFloat64() // read float64
  2378. target.Cost = o
  2379. return nil
  2380. }
  2381. //--------------------------------------------------------------------------
  2382. // Window
  2383. //--------------------------------------------------------------------------
  2384. // MarshalBinary serializes the internal properties of this Window instance
  2385. // into a byte array
  2386. func (target *Window) MarshalBinary() (data []byte, err error) {
  2387. // panics are recovered and propagated as errors
  2388. defer func() {
  2389. if r := recover(); r != nil {
  2390. if e, ok := r.(error); ok {
  2391. err = e
  2392. } else if s, ok := r.(string); ok {
  2393. err = fmt.Errorf("Unexpected panic: %s", s)
  2394. } else {
  2395. err = fmt.Errorf("Unexpected panic: %+v", r)
  2396. }
  2397. }
  2398. }()
  2399. buff := util.NewBuffer()
  2400. buff.WriteUInt8(CodecVersion) // version
  2401. if target.start == nil {
  2402. buff.WriteUInt8(uint8(0)) // write nil byte
  2403. } else {
  2404. buff.WriteUInt8(uint8(1)) // write non-nil byte
  2405. // --- [begin][write][reference](time.Time) ---
  2406. a, errA := target.start.MarshalBinary()
  2407. if errA != nil {
  2408. return nil, errA
  2409. }
  2410. buff.WriteInt(len(a))
  2411. buff.WriteBytes(a)
  2412. // --- [end][write][reference](time.Time) ---
  2413. }
  2414. if target.end == nil {
  2415. buff.WriteUInt8(uint8(0)) // write nil byte
  2416. } else {
  2417. buff.WriteUInt8(uint8(1)) // write non-nil byte
  2418. // --- [begin][write][reference](time.Time) ---
  2419. b, errB := target.end.MarshalBinary()
  2420. if errB != nil {
  2421. return nil, errB
  2422. }
  2423. buff.WriteInt(len(b))
  2424. buff.WriteBytes(b)
  2425. // --- [end][write][reference](time.Time) ---
  2426. }
  2427. return buff.Bytes(), nil
  2428. }
  2429. // UnmarshalBinary uses the data passed byte array to set all the internal properties of
  2430. // the Window type
  2431. func (target *Window) UnmarshalBinary(data []byte) (err error) {
  2432. // panics are recovered and propagated as errors
  2433. defer func() {
  2434. if r := recover(); r != nil {
  2435. if e, ok := r.(error); ok {
  2436. err = e
  2437. } else if s, ok := r.(string); ok {
  2438. err = fmt.Errorf("Unexpected panic: %s", s)
  2439. } else {
  2440. err = fmt.Errorf("Unexpected panic: %+v", r)
  2441. }
  2442. }
  2443. }()
  2444. buff := util.NewBufferFromBytes(data)
  2445. // Codec Version Check
  2446. version := buff.ReadUInt8()
  2447. if version != CodecVersion {
  2448. return fmt.Errorf("Invalid Version Unmarshaling Window. Expected %d, got %d", CodecVersion, version)
  2449. }
  2450. if buff.ReadUInt8() == uint8(0) {
  2451. target.start = nil
  2452. } else {
  2453. // --- [begin][read][reference](time.Time) ---
  2454. a := &time.Time{}
  2455. b := buff.ReadInt() // byte array length
  2456. c := buff.ReadBytes(b) // byte array
  2457. errA := a.UnmarshalBinary(c)
  2458. if errA != nil {
  2459. return errA
  2460. }
  2461. target.start = a
  2462. // --- [end][read][reference](time.Time) ---
  2463. }
  2464. if buff.ReadUInt8() == uint8(0) {
  2465. target.end = nil
  2466. } else {
  2467. // --- [begin][read][reference](time.Time) ---
  2468. d := &time.Time{}
  2469. e := buff.ReadInt() // byte array length
  2470. f := buff.ReadBytes(e) // byte array
  2471. errB := d.UnmarshalBinary(f)
  2472. if errB != nil {
  2473. return errB
  2474. }
  2475. target.end = d
  2476. // --- [end][read][reference](time.Time) ---
  2477. }
  2478. return nil
  2479. }