kubecost_codecs.go 90 KB

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