fast-path.generated.go 753 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156281572815828159281602816128162281632816428165281662816728168281692817028171281722817328174281752817628177281782817928180281812818228183281842818528186281872818828189281902819128192281932819428195281962819728198281992820028201282022820328204282052820628207282082820928210282112821228213282142821528216282172821828219282202822128222282232822428225282262822728228282292823028231282322823328234282352823628237282382823928240282412824228243282442824528246282472824828249282502825128252282532825428255282562825728258282592826028261282622826328264282652826628267282682826928270282712827228273282742827528276282772827828279282802828128282282832828428285282862828728288282892829028291282922829328294282952829628297282982829928300283012830228303283042830528306283072830828309283102831128312283132831428315283162831728318283192832028321283222832328324283252832628327283282832928330283312833228333283342833528336283372833828339283402834128342283432834428345283462834728348283492835028351283522835328354283552835628357283582835928360283612836228363283642836528366283672836828369283702837128372283732837428375283762837728378283792838028381283822838328384283852838628387283882838928390283912839228393283942839528396283972839828399284002840128402284032840428405284062840728408284092841028411284122841328414284152841628417284182841928420284212842228423284242842528426284272842828429284302843128432284332843428435284362843728438284392844028441284422844328444284452844628447284482844928450284512845228453284542845528456284572845828459284602846128462284632846428465284662846728468284692847028471284722847328474284752847628477284782847928480284812848228483284842848528486284872848828489284902849128492284932849428495284962849728498284992850028501285022850328504285052850628507285082850928510285112851228513285142851528516285172851828519285202852128522285232852428525285262852728528285292853028531285322853328534285352853628537285382853928540285412854228543285442854528546285472854828549285502855128552285532855428555285562855728558285592856028561285622856328564285652856628567285682856928570285712857228573285742857528576285772857828579285802858128582285832858428585285862858728588285892859028591285922859328594285952859628597285982859928600286012860228603286042860528606286072860828609286102861128612286132861428615286162861728618286192862028621286222862328624286252862628627286282862928630286312863228633286342863528636286372863828639286402864128642286432864428645286462864728648286492865028651286522865328654286552865628657286582865928660286612866228663286642866528666286672866828669286702867128672286732867428675286762867728678286792868028681286822868328684286852868628687286882868928690286912869228693286942869528696286972869828699287002870128702287032870428705287062870728708287092871028711287122871328714287152871628717287182871928720287212872228723287242872528726287272872828729287302873128732287332873428735287362873728738287392874028741287422874328744287452874628747287482874928750287512875228753287542875528756287572875828759287602876128762287632876428765287662876728768287692877028771287722877328774287752877628777287782877928780287812878228783287842878528786287872878828789287902879128792287932879428795287962879728798287992880028801288022880328804288052880628807288082880928810288112881228813288142881528816288172881828819288202882128822288232882428825288262882728828288292883028831288322883328834288352883628837288382883928840288412884228843288442884528846288472884828849288502885128852288532885428855288562885728858288592886028861288622886328864288652886628867288682886928870288712887228873288742887528876288772887828879288802888128882288832888428885288862888728888288892889028891288922889328894288952889628897288982889928900289012890228903289042890528906289072890828909289102891128912289132891428915289162891728918289192892028921289222892328924289252892628927289282892928930289312893228933289342893528936289372893828939289402894128942289432894428945289462894728948289492895028951289522895328954289552895628957289582895928960289612896228963289642896528966289672896828969289702897128972289732897428975289762897728978289792898028981289822898328984289852898628987289882898928990289912899228993289942899528996289972899828999290002900129002290032900429005290062900729008290092901029011290122901329014290152901629017290182901929020290212902229023290242902529026290272902829029290302903129032290332903429035290362903729038290392904029041290422904329044290452904629047290482904929050290512905229053290542905529056290572905829059290602906129062290632906429065290662906729068290692907029071290722907329074290752907629077290782907929080290812908229083290842908529086290872908829089290902909129092290932909429095290962909729098290992910029101291022910329104291052910629107291082910929110291112911229113291142911529116291172911829119291202912129122291232912429125291262912729128291292913029131291322913329134291352913629137291382913929140291412914229143291442914529146291472914829149291502915129152291532915429155291562915729158291592916029161291622916329164291652916629167291682916929170291712917229173291742917529176291772917829179291802918129182291832918429185291862918729188291892919029191291922919329194291952919629197291982919929200292012920229203292042920529206292072920829209292102921129212292132921429215292162921729218292192922029221292222922329224292252922629227292282922929230292312923229233292342923529236292372923829239292402924129242292432924429245292462924729248292492925029251292522925329254292552925629257292582925929260292612926229263292642926529266292672926829269292702927129272292732927429275292762927729278292792928029281292822928329284292852928629287292882928929290292912929229293292942929529296292972929829299293002930129302293032930429305293062930729308293092931029311293122931329314293152931629317293182931929320293212932229323293242932529326293272932829329293302933129332293332933429335293362933729338293392934029341293422934329344293452934629347293482934929350293512935229353293542935529356293572935829359293602936129362293632936429365293662936729368293692937029371293722937329374293752937629377293782937929380293812938229383293842938529386293872938829389293902939129392293932939429395293962939729398293992940029401294022940329404294052940629407294082940929410294112941229413294142941529416294172941829419294202942129422294232942429425294262942729428294292943029431294322943329434294352943629437294382943929440294412944229443294442944529446294472944829449294502945129452294532945429455294562945729458294592946029461294622946329464294652946629467294682946929470294712947229473294742947529476294772947829479294802948129482294832948429485294862948729488294892949029491294922949329494294952949629497294982949929500295012950229503295042950529506295072950829509295102951129512295132951429515295162951729518295192952029521295222952329524295252952629527295282952929530295312953229533295342953529536295372953829539295402954129542295432954429545295462954729548295492955029551295522955329554295552955629557295582955929560295612956229563295642956529566295672956829569295702957129572295732957429575295762957729578295792958029581295822958329584295852958629587295882958929590295912959229593295942959529596295972959829599296002960129602296032960429605296062960729608296092961029611296122961329614296152961629617296182961929620296212962229623296242962529626296272962829629296302963129632296332963429635296362963729638296392964029641296422964329644296452964629647296482964929650296512965229653296542965529656296572965829659296602966129662296632966429665296662966729668296692967029671296722967329674296752967629677296782967929680296812968229683296842968529686296872968829689296902969129692296932969429695296962969729698296992970029701297022970329704297052970629707297082970929710297112971229713297142971529716297172971829719297202972129722297232972429725297262972729728297292973029731297322973329734297352973629737297382973929740297412974229743297442974529746297472974829749297502975129752297532975429755297562975729758297592976029761297622976329764297652976629767297682976929770297712977229773297742977529776297772977829779297802978129782297832978429785297862978729788297892979029791297922979329794297952979629797297982979929800298012980229803298042980529806298072980829809298102981129812298132981429815298162981729818298192982029821298222982329824298252982629827298282982929830298312983229833298342983529836298372983829839298402984129842298432984429845298462984729848298492985029851298522985329854298552985629857298582985929860298612986229863298642986529866298672986829869298702987129872298732987429875298762987729878298792988029881298822988329884298852988629887298882988929890298912989229893298942989529896298972989829899299002990129902299032990429905299062990729908299092991029911299122991329914299152991629917299182991929920299212992229923299242992529926299272992829929299302993129932299332993429935299362993729938299392994029941299422994329944299452994629947299482994929950299512995229953299542995529956299572995829959299602996129962299632996429965299662996729968299692997029971299722997329974299752997629977299782997929980299812998229983299842998529986299872998829989299902999129992299932999429995299962999729998299993000030001300023000330004300053000630007300083000930010300113001230013300143001530016300173001830019300203002130022300233002430025300263002730028300293003030031300323003330034300353003630037300383003930040300413004230043300443004530046300473004830049300503005130052300533005430055300563005730058300593006030061300623006330064300653006630067300683006930070300713007230073300743007530076300773007830079300803008130082300833008430085300863008730088300893009030091300923009330094300953009630097300983009930100301013010230103301043010530106301073010830109301103011130112301133011430115301163011730118301193012030121301223012330124301253012630127301283012930130301313013230133301343013530136301373013830139301403014130142301433014430145301463014730148301493015030151301523015330154301553015630157301583015930160301613016230163301643016530166301673016830169301703017130172301733017430175301763017730178301793018030181301823018330184301853018630187301883018930190301913019230193301943019530196301973019830199302003020130202302033020430205302063020730208302093021030211302123021330214302153021630217302183021930220302213022230223302243022530226302273022830229302303023130232302333023430235302363023730238302393024030241302423024330244302453024630247302483024930250302513025230253302543025530256302573025830259302603026130262302633026430265302663026730268302693027030271302723027330274302753027630277302783027930280302813028230283302843028530286302873028830289302903029130292302933029430295302963029730298302993030030301303023030330304303053030630307303083030930310303113031230313303143031530316303173031830319303203032130322303233032430325303263032730328303293033030331303323033330334303353033630337303383033930340303413034230343303443034530346303473034830349303503035130352303533035430355303563035730358303593036030361303623036330364303653036630367303683036930370303713037230373303743037530376303773037830379303803038130382303833038430385303863038730388303893039030391303923039330394303953039630397303983039930400304013040230403304043040530406304073040830409304103041130412304133041430415304163041730418304193042030421304223042330424304253042630427304283042930430304313043230433304343043530436304373043830439304403044130442304433044430445304463044730448304493045030451304523045330454304553045630457304583045930460304613046230463304643046530466304673046830469304703047130472304733047430475304763047730478304793048030481304823048330484304853048630487304883048930490304913049230493304943049530496304973049830499305003050130502305033050430505305063050730508305093051030511305123051330514305153051630517305183051930520305213052230523305243052530526305273052830529305303053130532305333053430535305363053730538305393054030541305423054330544305453054630547305483054930550305513055230553305543055530556305573055830559305603056130562305633056430565305663056730568305693057030571305723057330574305753057630577305783057930580305813058230583305843058530586305873058830589305903059130592305933059430595305963059730598305993060030601306023060330604306053060630607306083060930610306113061230613306143061530616306173061830619306203062130622306233062430625306263062730628306293063030631306323063330634306353063630637306383063930640306413064230643306443064530646306473064830649306503065130652306533065430655306563065730658306593066030661306623066330664306653066630667306683066930670306713067230673306743067530676306773067830679306803068130682306833068430685306863068730688306893069030691306923069330694306953069630697306983069930700307013070230703307043070530706307073070830709307103071130712307133071430715307163071730718307193072030721307223072330724307253072630727307283072930730307313073230733307343073530736307373073830739307403074130742307433074430745307463074730748307493075030751307523075330754307553075630757307583075930760307613076230763307643076530766307673076830769307703077130772307733077430775307763077730778307793078030781307823078330784307853078630787307883078930790307913079230793307943079530796307973079830799308003080130802308033080430805308063080730808308093081030811308123081330814308153081630817308183081930820308213082230823308243082530826308273082830829308303083130832308333083430835308363083730838308393084030841308423084330844308453084630847308483084930850308513085230853308543085530856308573085830859308603086130862308633086430865308663086730868308693087030871308723087330874308753087630877308783087930880308813088230883308843088530886308873088830889308903089130892308933089430895308963089730898308993090030901309023090330904309053090630907309083090930910309113091230913309143091530916309173091830919309203092130922309233092430925309263092730928309293093030931309323093330934309353093630937309383093930940309413094230943309443094530946309473094830949309503095130952309533095430955309563095730958309593096030961309623096330964309653096630967309683096930970309713097230973309743097530976309773097830979309803098130982309833098430985309863098730988309893099030991309923099330994309953099630997309983099931000310013100231003310043100531006310073100831009310103101131012310133101431015310163101731018310193102031021310223102331024310253102631027310283102931030310313103231033310343103531036310373103831039310403104131042310433104431045310463104731048310493105031051310523105331054310553105631057310583105931060310613106231063310643106531066310673106831069310703107131072310733107431075310763107731078310793108031081310823108331084310853108631087310883108931090310913109231093310943109531096310973109831099311003110131102311033110431105311063110731108311093111031111311123111331114311153111631117311183111931120311213112231123311243112531126311273112831129311303113131132311333113431135311363113731138311393114031141311423114331144311453114631147311483114931150311513115231153311543115531156311573115831159311603116131162311633116431165311663116731168311693117031171311723117331174311753117631177311783117931180311813118231183311843118531186311873118831189311903119131192311933119431195311963119731198311993120031201312023120331204312053120631207312083120931210312113121231213312143121531216312173121831219312203122131222312233122431225312263122731228312293123031231312323123331234312353123631237312383123931240312413124231243312443124531246312473124831249312503125131252312533125431255312563125731258312593126031261312623126331264312653126631267312683126931270312713127231273312743127531276312773127831279312803128131282312833128431285312863128731288312893129031291312923129331294312953129631297312983129931300313013130231303313043130531306313073130831309313103131131312313133131431315313163131731318313193132031321313223132331324313253132631327313283132931330313313133231333313343133531336313373133831339313403134131342313433134431345313463134731348313493135031351313523135331354313553135631357313583135931360313613136231363313643136531366313673136831369313703137131372313733137431375313763137731378313793138031381313823138331384313853138631387313883138931390313913139231393313943139531396313973139831399314003140131402314033140431405314063140731408314093141031411314123141331414314153141631417314183141931420314213142231423314243142531426314273142831429314303143131432314333143431435314363143731438314393144031441314423144331444314453144631447314483144931450314513145231453314543145531456314573145831459314603146131462314633146431465314663146731468314693147031471314723147331474314753147631477314783147931480314813148231483314843148531486314873148831489314903149131492314933149431495314963149731498314993150031501315023150331504315053150631507315083150931510315113151231513315143151531516315173151831519315203152131522315233152431525315263152731528315293153031531315323153331534315353153631537315383153931540315413154231543315443154531546315473154831549315503155131552315533155431555315563155731558315593156031561315623156331564315653156631567315683156931570315713157231573315743157531576315773157831579315803158131582315833158431585315863158731588315893159031591315923159331594315953159631597315983159931600316013160231603316043160531606316073160831609316103161131612316133161431615316163161731618316193162031621316223162331624316253162631627316283162931630316313163231633316343163531636316373163831639316403164131642316433164431645316463164731648316493165031651316523165331654316553165631657316583165931660316613166231663316643166531666316673166831669316703167131672316733167431675316763167731678316793168031681316823168331684316853168631687316883168931690316913169231693316943169531696316973169831699317003170131702317033170431705317063170731708317093171031711317123171331714317153171631717317183171931720317213172231723317243172531726317273172831729317303173131732317333173431735317363173731738317393174031741317423174331744317453174631747317483174931750317513175231753317543175531756317573175831759317603176131762317633176431765317663176731768317693177031771317723177331774317753177631777317783177931780317813178231783317843178531786317873178831789317903179131792317933179431795317963179731798317993180031801318023180331804318053180631807318083180931810318113181231813318143181531816318173181831819318203182131822318233182431825318263182731828318293183031831318323183331834318353183631837318383183931840318413184231843318443184531846318473184831849318503185131852318533185431855318563185731858318593186031861318623186331864318653186631867318683186931870318713187231873318743187531876318773187831879318803188131882318833188431885318863188731888318893189031891318923189331894318953189631897318983189931900319013190231903319043190531906319073190831909319103191131912319133191431915319163191731918319193192031921319223192331924319253192631927319283192931930319313193231933319343193531936319373193831939319403194131942319433194431945319463194731948319493195031951319523195331954319553195631957319583195931960319613196231963319643196531966319673196831969319703197131972319733197431975319763197731978319793198031981319823198331984319853198631987319883198931990319913199231993319943199531996319973199831999320003200132002320033200432005320063200732008320093201032011320123201332014320153201632017320183201932020320213202232023320243202532026320273202832029320303203132032320333203432035320363203732038320393204032041320423204332044320453204632047320483204932050320513205232053320543205532056320573205832059320603206132062320633206432065320663206732068320693207032071320723207332074320753207632077320783207932080320813208232083320843208532086320873208832089320903209132092320933209432095320963209732098320993210032101321023210332104321053210632107321083210932110321113211232113321143211532116321173211832119321203212132122321233212432125321263212732128321293213032131321323213332134321353213632137321383213932140321413214232143321443214532146321473214832149321503215132152321533215432155321563215732158321593216032161321623216332164321653216632167321683216932170321713217232173321743217532176321773217832179321803218132182321833218432185321863218732188321893219032191321923219332194321953219632197321983219932200322013220232203322043220532206322073220832209322103221132212322133221432215322163221732218322193222032221322223222332224322253222632227322283222932230322313223232233322343223532236322373223832239322403224132242322433224432245322463224732248322493225032251322523225332254322553225632257322583225932260322613226232263322643226532266322673226832269322703227132272322733227432275322763227732278322793228032281322823228332284322853228632287322883228932290322913229232293322943229532296322973229832299323003230132302323033230432305323063230732308323093231032311323123231332314323153231632317323183231932320323213232232323323243232532326323273232832329323303233132332323333233432335323363233732338323393234032341323423234332344323453234632347323483234932350323513235232353323543235532356323573235832359323603236132362323633236432365323663236732368323693237032371323723237332374323753237632377323783237932380323813238232383323843238532386323873238832389323903239132392323933239432395323963239732398323993240032401324023240332404324053240632407324083240932410324113241232413324143241532416324173241832419324203242132422324233242432425324263242732428324293243032431324323243332434324353243632437324383243932440324413244232443324443244532446324473244832449324503245132452324533245432455324563245732458324593246032461324623246332464324653246632467324683246932470324713247232473324743247532476324773247832479324803248132482324833248432485324863248732488324893249032491324923249332494324953249632497324983249932500325013250232503325043250532506325073250832509325103251132512325133251432515325163251732518325193252032521325223252332524325253252632527325283252932530325313253232533325343253532536325373253832539325403254132542325433254432545325463254732548325493255032551325523255332554325553255632557325583255932560325613256232563325643256532566325673256832569325703257132572325733257432575325763257732578325793258032581325823258332584325853258632587325883258932590325913259232593325943259532596325973259832599326003260132602326033260432605326063260732608326093261032611326123261332614326153261632617326183261932620326213262232623326243262532626326273262832629326303263132632326333263432635326363263732638326393264032641326423264332644326453264632647326483264932650326513265232653326543265532656326573265832659326603266132662326633266432665326663266732668326693267032671326723267332674326753267632677326783267932680326813268232683326843268532686326873268832689326903269132692326933269432695326963269732698326993270032701327023270332704327053270632707327083270932710327113271232713327143271532716327173271832719327203272132722327233272432725327263272732728327293273032731327323273332734327353273632737327383273932740327413274232743327443274532746327473274832749327503275132752327533275432755327563275732758327593276032761327623276332764327653276632767327683276932770327713277232773327743277532776327773277832779327803278132782327833278432785327863278732788327893279032791327923279332794327953279632797327983279932800328013280232803328043280532806328073280832809328103281132812328133281432815328163281732818328193282032821328223282332824328253282632827328283282932830328313283232833328343283532836328373283832839328403284132842328433284432845328463284732848328493285032851328523285332854328553285632857328583285932860328613286232863328643286532866328673286832869328703287132872328733287432875328763287732878328793288032881328823288332884328853288632887328883288932890328913289232893328943289532896328973289832899329003290132902329033290432905329063290732908329093291032911329123291332914329153291632917329183291932920329213292232923329243292532926329273292832929329303293132932329333293432935329363293732938329393294032941329423294332944329453294632947329483294932950329513295232953329543295532956329573295832959329603296132962329633296432965329663296732968329693297032971329723297332974329753297632977329783297932980329813298232983329843298532986329873298832989329903299132992329933299432995329963299732998329993300033001330023300333004330053300633007330083300933010330113301233013330143301533016330173301833019330203302133022330233302433025330263302733028330293303033031330323303333034
  1. // +build !notfastpath
  2. // Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.
  3. // Use of this source code is governed by a MIT license found in the LICENSE file.
  4. // ************************************************************
  5. // DO NOT EDIT.
  6. // THIS FILE IS AUTO-GENERATED from fast-path.go.tmpl
  7. // ************************************************************
  8. package codec
  9. // Fast path functions try to create a fast path encode or decode implementation
  10. // for common maps and slices.
  11. //
  12. // We define the functions and register then in this single file
  13. // so as not to pollute the encode.go and decode.go, and create a dependency in there.
  14. // This file can be omitted without causing a build failure.
  15. //
  16. // The advantage of fast paths is:
  17. // - Many calls bypass reflection altogether
  18. //
  19. // Currently support
  20. // - slice of all builtin types,
  21. // - map of all builtin types to string or interface value
  22. // - symmetrical maps of all builtin types (e.g. str-str, uint8-uint8)
  23. // This should provide adequate "typical" implementations.
  24. //
  25. // Note that fast track decode functions must handle values for which an address cannot be obtained.
  26. // For example:
  27. // m2 := map[string]int{}
  28. // p2 := []interface{}{m2}
  29. // // decoding into p2 will bomb if fast track functions do not treat like unaddressable.
  30. //
  31. import (
  32. "reflect"
  33. "sort"
  34. )
  35. const fastpathEnabled = true
  36. type fastpathT struct{}
  37. var fastpathTV fastpathT
  38. type fastpathE struct {
  39. rtid uintptr
  40. rt reflect.Type
  41. encfn func(*Encoder, *codecFnInfo, reflect.Value)
  42. decfn func(*Decoder, *codecFnInfo, reflect.Value)
  43. }
  44. type fastpathA [271]fastpathE
  45. func (x *fastpathA) index(rtid uintptr) int {
  46. // use binary search to grab the index (adapted from sort/search.go)
  47. h, i, j := 0, 0, 271 // len(x)
  48. for i < j {
  49. h = i + (j-i)/2
  50. if x[h].rtid < rtid {
  51. i = h + 1
  52. } else {
  53. j = h
  54. }
  55. }
  56. if i < 271 && x[i].rtid == rtid {
  57. return i
  58. }
  59. return -1
  60. }
  61. type fastpathAslice []fastpathE
  62. func (x fastpathAslice) Len() int { return len(x) }
  63. func (x fastpathAslice) Less(i, j int) bool { return x[i].rtid < x[j].rtid }
  64. func (x fastpathAslice) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
  65. var fastpathAV fastpathA
  66. // due to possible initialization loop error, make fastpath in an init()
  67. func init() {
  68. i := 0
  69. fn := func(v interface{},
  70. fe func(*Encoder, *codecFnInfo, reflect.Value),
  71. fd func(*Decoder, *codecFnInfo, reflect.Value)) (f fastpathE) {
  72. xrt := reflect.TypeOf(v)
  73. xptr := rt2id(xrt)
  74. if useLookupRecognizedTypes {
  75. recognizedRtids = append(recognizedRtids, xptr)
  76. recognizedRtidPtrs = append(recognizedRtidPtrs, rt2id(reflect.PtrTo(xrt)))
  77. }
  78. fastpathAV[i] = fastpathE{xptr, xrt, fe, fd}
  79. i++
  80. return
  81. }
  82. fn([]interface{}(nil), (*Encoder).fastpathEncSliceIntfR, (*Decoder).fastpathDecSliceIntfR)
  83. fn([]string(nil), (*Encoder).fastpathEncSliceStringR, (*Decoder).fastpathDecSliceStringR)
  84. fn([]float32(nil), (*Encoder).fastpathEncSliceFloat32R, (*Decoder).fastpathDecSliceFloat32R)
  85. fn([]float64(nil), (*Encoder).fastpathEncSliceFloat64R, (*Decoder).fastpathDecSliceFloat64R)
  86. fn([]uint(nil), (*Encoder).fastpathEncSliceUintR, (*Decoder).fastpathDecSliceUintR)
  87. fn([]uint16(nil), (*Encoder).fastpathEncSliceUint16R, (*Decoder).fastpathDecSliceUint16R)
  88. fn([]uint32(nil), (*Encoder).fastpathEncSliceUint32R, (*Decoder).fastpathDecSliceUint32R)
  89. fn([]uint64(nil), (*Encoder).fastpathEncSliceUint64R, (*Decoder).fastpathDecSliceUint64R)
  90. fn([]uintptr(nil), (*Encoder).fastpathEncSliceUintptrR, (*Decoder).fastpathDecSliceUintptrR)
  91. fn([]int(nil), (*Encoder).fastpathEncSliceIntR, (*Decoder).fastpathDecSliceIntR)
  92. fn([]int8(nil), (*Encoder).fastpathEncSliceInt8R, (*Decoder).fastpathDecSliceInt8R)
  93. fn([]int16(nil), (*Encoder).fastpathEncSliceInt16R, (*Decoder).fastpathDecSliceInt16R)
  94. fn([]int32(nil), (*Encoder).fastpathEncSliceInt32R, (*Decoder).fastpathDecSliceInt32R)
  95. fn([]int64(nil), (*Encoder).fastpathEncSliceInt64R, (*Decoder).fastpathDecSliceInt64R)
  96. fn([]bool(nil), (*Encoder).fastpathEncSliceBoolR, (*Decoder).fastpathDecSliceBoolR)
  97. fn(map[interface{}]interface{}(nil), (*Encoder).fastpathEncMapIntfIntfR, (*Decoder).fastpathDecMapIntfIntfR)
  98. fn(map[interface{}]string(nil), (*Encoder).fastpathEncMapIntfStringR, (*Decoder).fastpathDecMapIntfStringR)
  99. fn(map[interface{}]uint(nil), (*Encoder).fastpathEncMapIntfUintR, (*Decoder).fastpathDecMapIntfUintR)
  100. fn(map[interface{}]uint8(nil), (*Encoder).fastpathEncMapIntfUint8R, (*Decoder).fastpathDecMapIntfUint8R)
  101. fn(map[interface{}]uint16(nil), (*Encoder).fastpathEncMapIntfUint16R, (*Decoder).fastpathDecMapIntfUint16R)
  102. fn(map[interface{}]uint32(nil), (*Encoder).fastpathEncMapIntfUint32R, (*Decoder).fastpathDecMapIntfUint32R)
  103. fn(map[interface{}]uint64(nil), (*Encoder).fastpathEncMapIntfUint64R, (*Decoder).fastpathDecMapIntfUint64R)
  104. fn(map[interface{}]uintptr(nil), (*Encoder).fastpathEncMapIntfUintptrR, (*Decoder).fastpathDecMapIntfUintptrR)
  105. fn(map[interface{}]int(nil), (*Encoder).fastpathEncMapIntfIntR, (*Decoder).fastpathDecMapIntfIntR)
  106. fn(map[interface{}]int8(nil), (*Encoder).fastpathEncMapIntfInt8R, (*Decoder).fastpathDecMapIntfInt8R)
  107. fn(map[interface{}]int16(nil), (*Encoder).fastpathEncMapIntfInt16R, (*Decoder).fastpathDecMapIntfInt16R)
  108. fn(map[interface{}]int32(nil), (*Encoder).fastpathEncMapIntfInt32R, (*Decoder).fastpathDecMapIntfInt32R)
  109. fn(map[interface{}]int64(nil), (*Encoder).fastpathEncMapIntfInt64R, (*Decoder).fastpathDecMapIntfInt64R)
  110. fn(map[interface{}]float32(nil), (*Encoder).fastpathEncMapIntfFloat32R, (*Decoder).fastpathDecMapIntfFloat32R)
  111. fn(map[interface{}]float64(nil), (*Encoder).fastpathEncMapIntfFloat64R, (*Decoder).fastpathDecMapIntfFloat64R)
  112. fn(map[interface{}]bool(nil), (*Encoder).fastpathEncMapIntfBoolR, (*Decoder).fastpathDecMapIntfBoolR)
  113. fn(map[string]interface{}(nil), (*Encoder).fastpathEncMapStringIntfR, (*Decoder).fastpathDecMapStringIntfR)
  114. fn(map[string]string(nil), (*Encoder).fastpathEncMapStringStringR, (*Decoder).fastpathDecMapStringStringR)
  115. fn(map[string]uint(nil), (*Encoder).fastpathEncMapStringUintR, (*Decoder).fastpathDecMapStringUintR)
  116. fn(map[string]uint8(nil), (*Encoder).fastpathEncMapStringUint8R, (*Decoder).fastpathDecMapStringUint8R)
  117. fn(map[string]uint16(nil), (*Encoder).fastpathEncMapStringUint16R, (*Decoder).fastpathDecMapStringUint16R)
  118. fn(map[string]uint32(nil), (*Encoder).fastpathEncMapStringUint32R, (*Decoder).fastpathDecMapStringUint32R)
  119. fn(map[string]uint64(nil), (*Encoder).fastpathEncMapStringUint64R, (*Decoder).fastpathDecMapStringUint64R)
  120. fn(map[string]uintptr(nil), (*Encoder).fastpathEncMapStringUintptrR, (*Decoder).fastpathDecMapStringUintptrR)
  121. fn(map[string]int(nil), (*Encoder).fastpathEncMapStringIntR, (*Decoder).fastpathDecMapStringIntR)
  122. fn(map[string]int8(nil), (*Encoder).fastpathEncMapStringInt8R, (*Decoder).fastpathDecMapStringInt8R)
  123. fn(map[string]int16(nil), (*Encoder).fastpathEncMapStringInt16R, (*Decoder).fastpathDecMapStringInt16R)
  124. fn(map[string]int32(nil), (*Encoder).fastpathEncMapStringInt32R, (*Decoder).fastpathDecMapStringInt32R)
  125. fn(map[string]int64(nil), (*Encoder).fastpathEncMapStringInt64R, (*Decoder).fastpathDecMapStringInt64R)
  126. fn(map[string]float32(nil), (*Encoder).fastpathEncMapStringFloat32R, (*Decoder).fastpathDecMapStringFloat32R)
  127. fn(map[string]float64(nil), (*Encoder).fastpathEncMapStringFloat64R, (*Decoder).fastpathDecMapStringFloat64R)
  128. fn(map[string]bool(nil), (*Encoder).fastpathEncMapStringBoolR, (*Decoder).fastpathDecMapStringBoolR)
  129. fn(map[float32]interface{}(nil), (*Encoder).fastpathEncMapFloat32IntfR, (*Decoder).fastpathDecMapFloat32IntfR)
  130. fn(map[float32]string(nil), (*Encoder).fastpathEncMapFloat32StringR, (*Decoder).fastpathDecMapFloat32StringR)
  131. fn(map[float32]uint(nil), (*Encoder).fastpathEncMapFloat32UintR, (*Decoder).fastpathDecMapFloat32UintR)
  132. fn(map[float32]uint8(nil), (*Encoder).fastpathEncMapFloat32Uint8R, (*Decoder).fastpathDecMapFloat32Uint8R)
  133. fn(map[float32]uint16(nil), (*Encoder).fastpathEncMapFloat32Uint16R, (*Decoder).fastpathDecMapFloat32Uint16R)
  134. fn(map[float32]uint32(nil), (*Encoder).fastpathEncMapFloat32Uint32R, (*Decoder).fastpathDecMapFloat32Uint32R)
  135. fn(map[float32]uint64(nil), (*Encoder).fastpathEncMapFloat32Uint64R, (*Decoder).fastpathDecMapFloat32Uint64R)
  136. fn(map[float32]uintptr(nil), (*Encoder).fastpathEncMapFloat32UintptrR, (*Decoder).fastpathDecMapFloat32UintptrR)
  137. fn(map[float32]int(nil), (*Encoder).fastpathEncMapFloat32IntR, (*Decoder).fastpathDecMapFloat32IntR)
  138. fn(map[float32]int8(nil), (*Encoder).fastpathEncMapFloat32Int8R, (*Decoder).fastpathDecMapFloat32Int8R)
  139. fn(map[float32]int16(nil), (*Encoder).fastpathEncMapFloat32Int16R, (*Decoder).fastpathDecMapFloat32Int16R)
  140. fn(map[float32]int32(nil), (*Encoder).fastpathEncMapFloat32Int32R, (*Decoder).fastpathDecMapFloat32Int32R)
  141. fn(map[float32]int64(nil), (*Encoder).fastpathEncMapFloat32Int64R, (*Decoder).fastpathDecMapFloat32Int64R)
  142. fn(map[float32]float32(nil), (*Encoder).fastpathEncMapFloat32Float32R, (*Decoder).fastpathDecMapFloat32Float32R)
  143. fn(map[float32]float64(nil), (*Encoder).fastpathEncMapFloat32Float64R, (*Decoder).fastpathDecMapFloat32Float64R)
  144. fn(map[float32]bool(nil), (*Encoder).fastpathEncMapFloat32BoolR, (*Decoder).fastpathDecMapFloat32BoolR)
  145. fn(map[float64]interface{}(nil), (*Encoder).fastpathEncMapFloat64IntfR, (*Decoder).fastpathDecMapFloat64IntfR)
  146. fn(map[float64]string(nil), (*Encoder).fastpathEncMapFloat64StringR, (*Decoder).fastpathDecMapFloat64StringR)
  147. fn(map[float64]uint(nil), (*Encoder).fastpathEncMapFloat64UintR, (*Decoder).fastpathDecMapFloat64UintR)
  148. fn(map[float64]uint8(nil), (*Encoder).fastpathEncMapFloat64Uint8R, (*Decoder).fastpathDecMapFloat64Uint8R)
  149. fn(map[float64]uint16(nil), (*Encoder).fastpathEncMapFloat64Uint16R, (*Decoder).fastpathDecMapFloat64Uint16R)
  150. fn(map[float64]uint32(nil), (*Encoder).fastpathEncMapFloat64Uint32R, (*Decoder).fastpathDecMapFloat64Uint32R)
  151. fn(map[float64]uint64(nil), (*Encoder).fastpathEncMapFloat64Uint64R, (*Decoder).fastpathDecMapFloat64Uint64R)
  152. fn(map[float64]uintptr(nil), (*Encoder).fastpathEncMapFloat64UintptrR, (*Decoder).fastpathDecMapFloat64UintptrR)
  153. fn(map[float64]int(nil), (*Encoder).fastpathEncMapFloat64IntR, (*Decoder).fastpathDecMapFloat64IntR)
  154. fn(map[float64]int8(nil), (*Encoder).fastpathEncMapFloat64Int8R, (*Decoder).fastpathDecMapFloat64Int8R)
  155. fn(map[float64]int16(nil), (*Encoder).fastpathEncMapFloat64Int16R, (*Decoder).fastpathDecMapFloat64Int16R)
  156. fn(map[float64]int32(nil), (*Encoder).fastpathEncMapFloat64Int32R, (*Decoder).fastpathDecMapFloat64Int32R)
  157. fn(map[float64]int64(nil), (*Encoder).fastpathEncMapFloat64Int64R, (*Decoder).fastpathDecMapFloat64Int64R)
  158. fn(map[float64]float32(nil), (*Encoder).fastpathEncMapFloat64Float32R, (*Decoder).fastpathDecMapFloat64Float32R)
  159. fn(map[float64]float64(nil), (*Encoder).fastpathEncMapFloat64Float64R, (*Decoder).fastpathDecMapFloat64Float64R)
  160. fn(map[float64]bool(nil), (*Encoder).fastpathEncMapFloat64BoolR, (*Decoder).fastpathDecMapFloat64BoolR)
  161. fn(map[uint]interface{}(nil), (*Encoder).fastpathEncMapUintIntfR, (*Decoder).fastpathDecMapUintIntfR)
  162. fn(map[uint]string(nil), (*Encoder).fastpathEncMapUintStringR, (*Decoder).fastpathDecMapUintStringR)
  163. fn(map[uint]uint(nil), (*Encoder).fastpathEncMapUintUintR, (*Decoder).fastpathDecMapUintUintR)
  164. fn(map[uint]uint8(nil), (*Encoder).fastpathEncMapUintUint8R, (*Decoder).fastpathDecMapUintUint8R)
  165. fn(map[uint]uint16(nil), (*Encoder).fastpathEncMapUintUint16R, (*Decoder).fastpathDecMapUintUint16R)
  166. fn(map[uint]uint32(nil), (*Encoder).fastpathEncMapUintUint32R, (*Decoder).fastpathDecMapUintUint32R)
  167. fn(map[uint]uint64(nil), (*Encoder).fastpathEncMapUintUint64R, (*Decoder).fastpathDecMapUintUint64R)
  168. fn(map[uint]uintptr(nil), (*Encoder).fastpathEncMapUintUintptrR, (*Decoder).fastpathDecMapUintUintptrR)
  169. fn(map[uint]int(nil), (*Encoder).fastpathEncMapUintIntR, (*Decoder).fastpathDecMapUintIntR)
  170. fn(map[uint]int8(nil), (*Encoder).fastpathEncMapUintInt8R, (*Decoder).fastpathDecMapUintInt8R)
  171. fn(map[uint]int16(nil), (*Encoder).fastpathEncMapUintInt16R, (*Decoder).fastpathDecMapUintInt16R)
  172. fn(map[uint]int32(nil), (*Encoder).fastpathEncMapUintInt32R, (*Decoder).fastpathDecMapUintInt32R)
  173. fn(map[uint]int64(nil), (*Encoder).fastpathEncMapUintInt64R, (*Decoder).fastpathDecMapUintInt64R)
  174. fn(map[uint]float32(nil), (*Encoder).fastpathEncMapUintFloat32R, (*Decoder).fastpathDecMapUintFloat32R)
  175. fn(map[uint]float64(nil), (*Encoder).fastpathEncMapUintFloat64R, (*Decoder).fastpathDecMapUintFloat64R)
  176. fn(map[uint]bool(nil), (*Encoder).fastpathEncMapUintBoolR, (*Decoder).fastpathDecMapUintBoolR)
  177. fn(map[uint8]interface{}(nil), (*Encoder).fastpathEncMapUint8IntfR, (*Decoder).fastpathDecMapUint8IntfR)
  178. fn(map[uint8]string(nil), (*Encoder).fastpathEncMapUint8StringR, (*Decoder).fastpathDecMapUint8StringR)
  179. fn(map[uint8]uint(nil), (*Encoder).fastpathEncMapUint8UintR, (*Decoder).fastpathDecMapUint8UintR)
  180. fn(map[uint8]uint8(nil), (*Encoder).fastpathEncMapUint8Uint8R, (*Decoder).fastpathDecMapUint8Uint8R)
  181. fn(map[uint8]uint16(nil), (*Encoder).fastpathEncMapUint8Uint16R, (*Decoder).fastpathDecMapUint8Uint16R)
  182. fn(map[uint8]uint32(nil), (*Encoder).fastpathEncMapUint8Uint32R, (*Decoder).fastpathDecMapUint8Uint32R)
  183. fn(map[uint8]uint64(nil), (*Encoder).fastpathEncMapUint8Uint64R, (*Decoder).fastpathDecMapUint8Uint64R)
  184. fn(map[uint8]uintptr(nil), (*Encoder).fastpathEncMapUint8UintptrR, (*Decoder).fastpathDecMapUint8UintptrR)
  185. fn(map[uint8]int(nil), (*Encoder).fastpathEncMapUint8IntR, (*Decoder).fastpathDecMapUint8IntR)
  186. fn(map[uint8]int8(nil), (*Encoder).fastpathEncMapUint8Int8R, (*Decoder).fastpathDecMapUint8Int8R)
  187. fn(map[uint8]int16(nil), (*Encoder).fastpathEncMapUint8Int16R, (*Decoder).fastpathDecMapUint8Int16R)
  188. fn(map[uint8]int32(nil), (*Encoder).fastpathEncMapUint8Int32R, (*Decoder).fastpathDecMapUint8Int32R)
  189. fn(map[uint8]int64(nil), (*Encoder).fastpathEncMapUint8Int64R, (*Decoder).fastpathDecMapUint8Int64R)
  190. fn(map[uint8]float32(nil), (*Encoder).fastpathEncMapUint8Float32R, (*Decoder).fastpathDecMapUint8Float32R)
  191. fn(map[uint8]float64(nil), (*Encoder).fastpathEncMapUint8Float64R, (*Decoder).fastpathDecMapUint8Float64R)
  192. fn(map[uint8]bool(nil), (*Encoder).fastpathEncMapUint8BoolR, (*Decoder).fastpathDecMapUint8BoolR)
  193. fn(map[uint16]interface{}(nil), (*Encoder).fastpathEncMapUint16IntfR, (*Decoder).fastpathDecMapUint16IntfR)
  194. fn(map[uint16]string(nil), (*Encoder).fastpathEncMapUint16StringR, (*Decoder).fastpathDecMapUint16StringR)
  195. fn(map[uint16]uint(nil), (*Encoder).fastpathEncMapUint16UintR, (*Decoder).fastpathDecMapUint16UintR)
  196. fn(map[uint16]uint8(nil), (*Encoder).fastpathEncMapUint16Uint8R, (*Decoder).fastpathDecMapUint16Uint8R)
  197. fn(map[uint16]uint16(nil), (*Encoder).fastpathEncMapUint16Uint16R, (*Decoder).fastpathDecMapUint16Uint16R)
  198. fn(map[uint16]uint32(nil), (*Encoder).fastpathEncMapUint16Uint32R, (*Decoder).fastpathDecMapUint16Uint32R)
  199. fn(map[uint16]uint64(nil), (*Encoder).fastpathEncMapUint16Uint64R, (*Decoder).fastpathDecMapUint16Uint64R)
  200. fn(map[uint16]uintptr(nil), (*Encoder).fastpathEncMapUint16UintptrR, (*Decoder).fastpathDecMapUint16UintptrR)
  201. fn(map[uint16]int(nil), (*Encoder).fastpathEncMapUint16IntR, (*Decoder).fastpathDecMapUint16IntR)
  202. fn(map[uint16]int8(nil), (*Encoder).fastpathEncMapUint16Int8R, (*Decoder).fastpathDecMapUint16Int8R)
  203. fn(map[uint16]int16(nil), (*Encoder).fastpathEncMapUint16Int16R, (*Decoder).fastpathDecMapUint16Int16R)
  204. fn(map[uint16]int32(nil), (*Encoder).fastpathEncMapUint16Int32R, (*Decoder).fastpathDecMapUint16Int32R)
  205. fn(map[uint16]int64(nil), (*Encoder).fastpathEncMapUint16Int64R, (*Decoder).fastpathDecMapUint16Int64R)
  206. fn(map[uint16]float32(nil), (*Encoder).fastpathEncMapUint16Float32R, (*Decoder).fastpathDecMapUint16Float32R)
  207. fn(map[uint16]float64(nil), (*Encoder).fastpathEncMapUint16Float64R, (*Decoder).fastpathDecMapUint16Float64R)
  208. fn(map[uint16]bool(nil), (*Encoder).fastpathEncMapUint16BoolR, (*Decoder).fastpathDecMapUint16BoolR)
  209. fn(map[uint32]interface{}(nil), (*Encoder).fastpathEncMapUint32IntfR, (*Decoder).fastpathDecMapUint32IntfR)
  210. fn(map[uint32]string(nil), (*Encoder).fastpathEncMapUint32StringR, (*Decoder).fastpathDecMapUint32StringR)
  211. fn(map[uint32]uint(nil), (*Encoder).fastpathEncMapUint32UintR, (*Decoder).fastpathDecMapUint32UintR)
  212. fn(map[uint32]uint8(nil), (*Encoder).fastpathEncMapUint32Uint8R, (*Decoder).fastpathDecMapUint32Uint8R)
  213. fn(map[uint32]uint16(nil), (*Encoder).fastpathEncMapUint32Uint16R, (*Decoder).fastpathDecMapUint32Uint16R)
  214. fn(map[uint32]uint32(nil), (*Encoder).fastpathEncMapUint32Uint32R, (*Decoder).fastpathDecMapUint32Uint32R)
  215. fn(map[uint32]uint64(nil), (*Encoder).fastpathEncMapUint32Uint64R, (*Decoder).fastpathDecMapUint32Uint64R)
  216. fn(map[uint32]uintptr(nil), (*Encoder).fastpathEncMapUint32UintptrR, (*Decoder).fastpathDecMapUint32UintptrR)
  217. fn(map[uint32]int(nil), (*Encoder).fastpathEncMapUint32IntR, (*Decoder).fastpathDecMapUint32IntR)
  218. fn(map[uint32]int8(nil), (*Encoder).fastpathEncMapUint32Int8R, (*Decoder).fastpathDecMapUint32Int8R)
  219. fn(map[uint32]int16(nil), (*Encoder).fastpathEncMapUint32Int16R, (*Decoder).fastpathDecMapUint32Int16R)
  220. fn(map[uint32]int32(nil), (*Encoder).fastpathEncMapUint32Int32R, (*Decoder).fastpathDecMapUint32Int32R)
  221. fn(map[uint32]int64(nil), (*Encoder).fastpathEncMapUint32Int64R, (*Decoder).fastpathDecMapUint32Int64R)
  222. fn(map[uint32]float32(nil), (*Encoder).fastpathEncMapUint32Float32R, (*Decoder).fastpathDecMapUint32Float32R)
  223. fn(map[uint32]float64(nil), (*Encoder).fastpathEncMapUint32Float64R, (*Decoder).fastpathDecMapUint32Float64R)
  224. fn(map[uint32]bool(nil), (*Encoder).fastpathEncMapUint32BoolR, (*Decoder).fastpathDecMapUint32BoolR)
  225. fn(map[uint64]interface{}(nil), (*Encoder).fastpathEncMapUint64IntfR, (*Decoder).fastpathDecMapUint64IntfR)
  226. fn(map[uint64]string(nil), (*Encoder).fastpathEncMapUint64StringR, (*Decoder).fastpathDecMapUint64StringR)
  227. fn(map[uint64]uint(nil), (*Encoder).fastpathEncMapUint64UintR, (*Decoder).fastpathDecMapUint64UintR)
  228. fn(map[uint64]uint8(nil), (*Encoder).fastpathEncMapUint64Uint8R, (*Decoder).fastpathDecMapUint64Uint8R)
  229. fn(map[uint64]uint16(nil), (*Encoder).fastpathEncMapUint64Uint16R, (*Decoder).fastpathDecMapUint64Uint16R)
  230. fn(map[uint64]uint32(nil), (*Encoder).fastpathEncMapUint64Uint32R, (*Decoder).fastpathDecMapUint64Uint32R)
  231. fn(map[uint64]uint64(nil), (*Encoder).fastpathEncMapUint64Uint64R, (*Decoder).fastpathDecMapUint64Uint64R)
  232. fn(map[uint64]uintptr(nil), (*Encoder).fastpathEncMapUint64UintptrR, (*Decoder).fastpathDecMapUint64UintptrR)
  233. fn(map[uint64]int(nil), (*Encoder).fastpathEncMapUint64IntR, (*Decoder).fastpathDecMapUint64IntR)
  234. fn(map[uint64]int8(nil), (*Encoder).fastpathEncMapUint64Int8R, (*Decoder).fastpathDecMapUint64Int8R)
  235. fn(map[uint64]int16(nil), (*Encoder).fastpathEncMapUint64Int16R, (*Decoder).fastpathDecMapUint64Int16R)
  236. fn(map[uint64]int32(nil), (*Encoder).fastpathEncMapUint64Int32R, (*Decoder).fastpathDecMapUint64Int32R)
  237. fn(map[uint64]int64(nil), (*Encoder).fastpathEncMapUint64Int64R, (*Decoder).fastpathDecMapUint64Int64R)
  238. fn(map[uint64]float32(nil), (*Encoder).fastpathEncMapUint64Float32R, (*Decoder).fastpathDecMapUint64Float32R)
  239. fn(map[uint64]float64(nil), (*Encoder).fastpathEncMapUint64Float64R, (*Decoder).fastpathDecMapUint64Float64R)
  240. fn(map[uint64]bool(nil), (*Encoder).fastpathEncMapUint64BoolR, (*Decoder).fastpathDecMapUint64BoolR)
  241. fn(map[uintptr]interface{}(nil), (*Encoder).fastpathEncMapUintptrIntfR, (*Decoder).fastpathDecMapUintptrIntfR)
  242. fn(map[uintptr]string(nil), (*Encoder).fastpathEncMapUintptrStringR, (*Decoder).fastpathDecMapUintptrStringR)
  243. fn(map[uintptr]uint(nil), (*Encoder).fastpathEncMapUintptrUintR, (*Decoder).fastpathDecMapUintptrUintR)
  244. fn(map[uintptr]uint8(nil), (*Encoder).fastpathEncMapUintptrUint8R, (*Decoder).fastpathDecMapUintptrUint8R)
  245. fn(map[uintptr]uint16(nil), (*Encoder).fastpathEncMapUintptrUint16R, (*Decoder).fastpathDecMapUintptrUint16R)
  246. fn(map[uintptr]uint32(nil), (*Encoder).fastpathEncMapUintptrUint32R, (*Decoder).fastpathDecMapUintptrUint32R)
  247. fn(map[uintptr]uint64(nil), (*Encoder).fastpathEncMapUintptrUint64R, (*Decoder).fastpathDecMapUintptrUint64R)
  248. fn(map[uintptr]uintptr(nil), (*Encoder).fastpathEncMapUintptrUintptrR, (*Decoder).fastpathDecMapUintptrUintptrR)
  249. fn(map[uintptr]int(nil), (*Encoder).fastpathEncMapUintptrIntR, (*Decoder).fastpathDecMapUintptrIntR)
  250. fn(map[uintptr]int8(nil), (*Encoder).fastpathEncMapUintptrInt8R, (*Decoder).fastpathDecMapUintptrInt8R)
  251. fn(map[uintptr]int16(nil), (*Encoder).fastpathEncMapUintptrInt16R, (*Decoder).fastpathDecMapUintptrInt16R)
  252. fn(map[uintptr]int32(nil), (*Encoder).fastpathEncMapUintptrInt32R, (*Decoder).fastpathDecMapUintptrInt32R)
  253. fn(map[uintptr]int64(nil), (*Encoder).fastpathEncMapUintptrInt64R, (*Decoder).fastpathDecMapUintptrInt64R)
  254. fn(map[uintptr]float32(nil), (*Encoder).fastpathEncMapUintptrFloat32R, (*Decoder).fastpathDecMapUintptrFloat32R)
  255. fn(map[uintptr]float64(nil), (*Encoder).fastpathEncMapUintptrFloat64R, (*Decoder).fastpathDecMapUintptrFloat64R)
  256. fn(map[uintptr]bool(nil), (*Encoder).fastpathEncMapUintptrBoolR, (*Decoder).fastpathDecMapUintptrBoolR)
  257. fn(map[int]interface{}(nil), (*Encoder).fastpathEncMapIntIntfR, (*Decoder).fastpathDecMapIntIntfR)
  258. fn(map[int]string(nil), (*Encoder).fastpathEncMapIntStringR, (*Decoder).fastpathDecMapIntStringR)
  259. fn(map[int]uint(nil), (*Encoder).fastpathEncMapIntUintR, (*Decoder).fastpathDecMapIntUintR)
  260. fn(map[int]uint8(nil), (*Encoder).fastpathEncMapIntUint8R, (*Decoder).fastpathDecMapIntUint8R)
  261. fn(map[int]uint16(nil), (*Encoder).fastpathEncMapIntUint16R, (*Decoder).fastpathDecMapIntUint16R)
  262. fn(map[int]uint32(nil), (*Encoder).fastpathEncMapIntUint32R, (*Decoder).fastpathDecMapIntUint32R)
  263. fn(map[int]uint64(nil), (*Encoder).fastpathEncMapIntUint64R, (*Decoder).fastpathDecMapIntUint64R)
  264. fn(map[int]uintptr(nil), (*Encoder).fastpathEncMapIntUintptrR, (*Decoder).fastpathDecMapIntUintptrR)
  265. fn(map[int]int(nil), (*Encoder).fastpathEncMapIntIntR, (*Decoder).fastpathDecMapIntIntR)
  266. fn(map[int]int8(nil), (*Encoder).fastpathEncMapIntInt8R, (*Decoder).fastpathDecMapIntInt8R)
  267. fn(map[int]int16(nil), (*Encoder).fastpathEncMapIntInt16R, (*Decoder).fastpathDecMapIntInt16R)
  268. fn(map[int]int32(nil), (*Encoder).fastpathEncMapIntInt32R, (*Decoder).fastpathDecMapIntInt32R)
  269. fn(map[int]int64(nil), (*Encoder).fastpathEncMapIntInt64R, (*Decoder).fastpathDecMapIntInt64R)
  270. fn(map[int]float32(nil), (*Encoder).fastpathEncMapIntFloat32R, (*Decoder).fastpathDecMapIntFloat32R)
  271. fn(map[int]float64(nil), (*Encoder).fastpathEncMapIntFloat64R, (*Decoder).fastpathDecMapIntFloat64R)
  272. fn(map[int]bool(nil), (*Encoder).fastpathEncMapIntBoolR, (*Decoder).fastpathDecMapIntBoolR)
  273. fn(map[int8]interface{}(nil), (*Encoder).fastpathEncMapInt8IntfR, (*Decoder).fastpathDecMapInt8IntfR)
  274. fn(map[int8]string(nil), (*Encoder).fastpathEncMapInt8StringR, (*Decoder).fastpathDecMapInt8StringR)
  275. fn(map[int8]uint(nil), (*Encoder).fastpathEncMapInt8UintR, (*Decoder).fastpathDecMapInt8UintR)
  276. fn(map[int8]uint8(nil), (*Encoder).fastpathEncMapInt8Uint8R, (*Decoder).fastpathDecMapInt8Uint8R)
  277. fn(map[int8]uint16(nil), (*Encoder).fastpathEncMapInt8Uint16R, (*Decoder).fastpathDecMapInt8Uint16R)
  278. fn(map[int8]uint32(nil), (*Encoder).fastpathEncMapInt8Uint32R, (*Decoder).fastpathDecMapInt8Uint32R)
  279. fn(map[int8]uint64(nil), (*Encoder).fastpathEncMapInt8Uint64R, (*Decoder).fastpathDecMapInt8Uint64R)
  280. fn(map[int8]uintptr(nil), (*Encoder).fastpathEncMapInt8UintptrR, (*Decoder).fastpathDecMapInt8UintptrR)
  281. fn(map[int8]int(nil), (*Encoder).fastpathEncMapInt8IntR, (*Decoder).fastpathDecMapInt8IntR)
  282. fn(map[int8]int8(nil), (*Encoder).fastpathEncMapInt8Int8R, (*Decoder).fastpathDecMapInt8Int8R)
  283. fn(map[int8]int16(nil), (*Encoder).fastpathEncMapInt8Int16R, (*Decoder).fastpathDecMapInt8Int16R)
  284. fn(map[int8]int32(nil), (*Encoder).fastpathEncMapInt8Int32R, (*Decoder).fastpathDecMapInt8Int32R)
  285. fn(map[int8]int64(nil), (*Encoder).fastpathEncMapInt8Int64R, (*Decoder).fastpathDecMapInt8Int64R)
  286. fn(map[int8]float32(nil), (*Encoder).fastpathEncMapInt8Float32R, (*Decoder).fastpathDecMapInt8Float32R)
  287. fn(map[int8]float64(nil), (*Encoder).fastpathEncMapInt8Float64R, (*Decoder).fastpathDecMapInt8Float64R)
  288. fn(map[int8]bool(nil), (*Encoder).fastpathEncMapInt8BoolR, (*Decoder).fastpathDecMapInt8BoolR)
  289. fn(map[int16]interface{}(nil), (*Encoder).fastpathEncMapInt16IntfR, (*Decoder).fastpathDecMapInt16IntfR)
  290. fn(map[int16]string(nil), (*Encoder).fastpathEncMapInt16StringR, (*Decoder).fastpathDecMapInt16StringR)
  291. fn(map[int16]uint(nil), (*Encoder).fastpathEncMapInt16UintR, (*Decoder).fastpathDecMapInt16UintR)
  292. fn(map[int16]uint8(nil), (*Encoder).fastpathEncMapInt16Uint8R, (*Decoder).fastpathDecMapInt16Uint8R)
  293. fn(map[int16]uint16(nil), (*Encoder).fastpathEncMapInt16Uint16R, (*Decoder).fastpathDecMapInt16Uint16R)
  294. fn(map[int16]uint32(nil), (*Encoder).fastpathEncMapInt16Uint32R, (*Decoder).fastpathDecMapInt16Uint32R)
  295. fn(map[int16]uint64(nil), (*Encoder).fastpathEncMapInt16Uint64R, (*Decoder).fastpathDecMapInt16Uint64R)
  296. fn(map[int16]uintptr(nil), (*Encoder).fastpathEncMapInt16UintptrR, (*Decoder).fastpathDecMapInt16UintptrR)
  297. fn(map[int16]int(nil), (*Encoder).fastpathEncMapInt16IntR, (*Decoder).fastpathDecMapInt16IntR)
  298. fn(map[int16]int8(nil), (*Encoder).fastpathEncMapInt16Int8R, (*Decoder).fastpathDecMapInt16Int8R)
  299. fn(map[int16]int16(nil), (*Encoder).fastpathEncMapInt16Int16R, (*Decoder).fastpathDecMapInt16Int16R)
  300. fn(map[int16]int32(nil), (*Encoder).fastpathEncMapInt16Int32R, (*Decoder).fastpathDecMapInt16Int32R)
  301. fn(map[int16]int64(nil), (*Encoder).fastpathEncMapInt16Int64R, (*Decoder).fastpathDecMapInt16Int64R)
  302. fn(map[int16]float32(nil), (*Encoder).fastpathEncMapInt16Float32R, (*Decoder).fastpathDecMapInt16Float32R)
  303. fn(map[int16]float64(nil), (*Encoder).fastpathEncMapInt16Float64R, (*Decoder).fastpathDecMapInt16Float64R)
  304. fn(map[int16]bool(nil), (*Encoder).fastpathEncMapInt16BoolR, (*Decoder).fastpathDecMapInt16BoolR)
  305. fn(map[int32]interface{}(nil), (*Encoder).fastpathEncMapInt32IntfR, (*Decoder).fastpathDecMapInt32IntfR)
  306. fn(map[int32]string(nil), (*Encoder).fastpathEncMapInt32StringR, (*Decoder).fastpathDecMapInt32StringR)
  307. fn(map[int32]uint(nil), (*Encoder).fastpathEncMapInt32UintR, (*Decoder).fastpathDecMapInt32UintR)
  308. fn(map[int32]uint8(nil), (*Encoder).fastpathEncMapInt32Uint8R, (*Decoder).fastpathDecMapInt32Uint8R)
  309. fn(map[int32]uint16(nil), (*Encoder).fastpathEncMapInt32Uint16R, (*Decoder).fastpathDecMapInt32Uint16R)
  310. fn(map[int32]uint32(nil), (*Encoder).fastpathEncMapInt32Uint32R, (*Decoder).fastpathDecMapInt32Uint32R)
  311. fn(map[int32]uint64(nil), (*Encoder).fastpathEncMapInt32Uint64R, (*Decoder).fastpathDecMapInt32Uint64R)
  312. fn(map[int32]uintptr(nil), (*Encoder).fastpathEncMapInt32UintptrR, (*Decoder).fastpathDecMapInt32UintptrR)
  313. fn(map[int32]int(nil), (*Encoder).fastpathEncMapInt32IntR, (*Decoder).fastpathDecMapInt32IntR)
  314. fn(map[int32]int8(nil), (*Encoder).fastpathEncMapInt32Int8R, (*Decoder).fastpathDecMapInt32Int8R)
  315. fn(map[int32]int16(nil), (*Encoder).fastpathEncMapInt32Int16R, (*Decoder).fastpathDecMapInt32Int16R)
  316. fn(map[int32]int32(nil), (*Encoder).fastpathEncMapInt32Int32R, (*Decoder).fastpathDecMapInt32Int32R)
  317. fn(map[int32]int64(nil), (*Encoder).fastpathEncMapInt32Int64R, (*Decoder).fastpathDecMapInt32Int64R)
  318. fn(map[int32]float32(nil), (*Encoder).fastpathEncMapInt32Float32R, (*Decoder).fastpathDecMapInt32Float32R)
  319. fn(map[int32]float64(nil), (*Encoder).fastpathEncMapInt32Float64R, (*Decoder).fastpathDecMapInt32Float64R)
  320. fn(map[int32]bool(nil), (*Encoder).fastpathEncMapInt32BoolR, (*Decoder).fastpathDecMapInt32BoolR)
  321. fn(map[int64]interface{}(nil), (*Encoder).fastpathEncMapInt64IntfR, (*Decoder).fastpathDecMapInt64IntfR)
  322. fn(map[int64]string(nil), (*Encoder).fastpathEncMapInt64StringR, (*Decoder).fastpathDecMapInt64StringR)
  323. fn(map[int64]uint(nil), (*Encoder).fastpathEncMapInt64UintR, (*Decoder).fastpathDecMapInt64UintR)
  324. fn(map[int64]uint8(nil), (*Encoder).fastpathEncMapInt64Uint8R, (*Decoder).fastpathDecMapInt64Uint8R)
  325. fn(map[int64]uint16(nil), (*Encoder).fastpathEncMapInt64Uint16R, (*Decoder).fastpathDecMapInt64Uint16R)
  326. fn(map[int64]uint32(nil), (*Encoder).fastpathEncMapInt64Uint32R, (*Decoder).fastpathDecMapInt64Uint32R)
  327. fn(map[int64]uint64(nil), (*Encoder).fastpathEncMapInt64Uint64R, (*Decoder).fastpathDecMapInt64Uint64R)
  328. fn(map[int64]uintptr(nil), (*Encoder).fastpathEncMapInt64UintptrR, (*Decoder).fastpathDecMapInt64UintptrR)
  329. fn(map[int64]int(nil), (*Encoder).fastpathEncMapInt64IntR, (*Decoder).fastpathDecMapInt64IntR)
  330. fn(map[int64]int8(nil), (*Encoder).fastpathEncMapInt64Int8R, (*Decoder).fastpathDecMapInt64Int8R)
  331. fn(map[int64]int16(nil), (*Encoder).fastpathEncMapInt64Int16R, (*Decoder).fastpathDecMapInt64Int16R)
  332. fn(map[int64]int32(nil), (*Encoder).fastpathEncMapInt64Int32R, (*Decoder).fastpathDecMapInt64Int32R)
  333. fn(map[int64]int64(nil), (*Encoder).fastpathEncMapInt64Int64R, (*Decoder).fastpathDecMapInt64Int64R)
  334. fn(map[int64]float32(nil), (*Encoder).fastpathEncMapInt64Float32R, (*Decoder).fastpathDecMapInt64Float32R)
  335. fn(map[int64]float64(nil), (*Encoder).fastpathEncMapInt64Float64R, (*Decoder).fastpathDecMapInt64Float64R)
  336. fn(map[int64]bool(nil), (*Encoder).fastpathEncMapInt64BoolR, (*Decoder).fastpathDecMapInt64BoolR)
  337. fn(map[bool]interface{}(nil), (*Encoder).fastpathEncMapBoolIntfR, (*Decoder).fastpathDecMapBoolIntfR)
  338. fn(map[bool]string(nil), (*Encoder).fastpathEncMapBoolStringR, (*Decoder).fastpathDecMapBoolStringR)
  339. fn(map[bool]uint(nil), (*Encoder).fastpathEncMapBoolUintR, (*Decoder).fastpathDecMapBoolUintR)
  340. fn(map[bool]uint8(nil), (*Encoder).fastpathEncMapBoolUint8R, (*Decoder).fastpathDecMapBoolUint8R)
  341. fn(map[bool]uint16(nil), (*Encoder).fastpathEncMapBoolUint16R, (*Decoder).fastpathDecMapBoolUint16R)
  342. fn(map[bool]uint32(nil), (*Encoder).fastpathEncMapBoolUint32R, (*Decoder).fastpathDecMapBoolUint32R)
  343. fn(map[bool]uint64(nil), (*Encoder).fastpathEncMapBoolUint64R, (*Decoder).fastpathDecMapBoolUint64R)
  344. fn(map[bool]uintptr(nil), (*Encoder).fastpathEncMapBoolUintptrR, (*Decoder).fastpathDecMapBoolUintptrR)
  345. fn(map[bool]int(nil), (*Encoder).fastpathEncMapBoolIntR, (*Decoder).fastpathDecMapBoolIntR)
  346. fn(map[bool]int8(nil), (*Encoder).fastpathEncMapBoolInt8R, (*Decoder).fastpathDecMapBoolInt8R)
  347. fn(map[bool]int16(nil), (*Encoder).fastpathEncMapBoolInt16R, (*Decoder).fastpathDecMapBoolInt16R)
  348. fn(map[bool]int32(nil), (*Encoder).fastpathEncMapBoolInt32R, (*Decoder).fastpathDecMapBoolInt32R)
  349. fn(map[bool]int64(nil), (*Encoder).fastpathEncMapBoolInt64R, (*Decoder).fastpathDecMapBoolInt64R)
  350. fn(map[bool]float32(nil), (*Encoder).fastpathEncMapBoolFloat32R, (*Decoder).fastpathDecMapBoolFloat32R)
  351. fn(map[bool]float64(nil), (*Encoder).fastpathEncMapBoolFloat64R, (*Decoder).fastpathDecMapBoolFloat64R)
  352. fn(map[bool]bool(nil), (*Encoder).fastpathEncMapBoolBoolR, (*Decoder).fastpathDecMapBoolBoolR)
  353. sort.Sort(fastpathAslice(fastpathAV[:]))
  354. }
  355. // -- encode
  356. // -- -- fast path type switch
  357. func fastpathEncodeTypeSwitch(iv interface{}, e *Encoder) bool {
  358. switch v := iv.(type) {
  359. case []interface{}:
  360. fastpathTV.EncSliceIntfV(v, e)
  361. case *[]interface{}:
  362. fastpathTV.EncSliceIntfV(*v, e)
  363. case map[interface{}]interface{}:
  364. fastpathTV.EncMapIntfIntfV(v, e)
  365. case *map[interface{}]interface{}:
  366. fastpathTV.EncMapIntfIntfV(*v, e)
  367. case map[interface{}]string:
  368. fastpathTV.EncMapIntfStringV(v, e)
  369. case *map[interface{}]string:
  370. fastpathTV.EncMapIntfStringV(*v, e)
  371. case map[interface{}]uint:
  372. fastpathTV.EncMapIntfUintV(v, e)
  373. case *map[interface{}]uint:
  374. fastpathTV.EncMapIntfUintV(*v, e)
  375. case map[interface{}]uint8:
  376. fastpathTV.EncMapIntfUint8V(v, e)
  377. case *map[interface{}]uint8:
  378. fastpathTV.EncMapIntfUint8V(*v, e)
  379. case map[interface{}]uint16:
  380. fastpathTV.EncMapIntfUint16V(v, e)
  381. case *map[interface{}]uint16:
  382. fastpathTV.EncMapIntfUint16V(*v, e)
  383. case map[interface{}]uint32:
  384. fastpathTV.EncMapIntfUint32V(v, e)
  385. case *map[interface{}]uint32:
  386. fastpathTV.EncMapIntfUint32V(*v, e)
  387. case map[interface{}]uint64:
  388. fastpathTV.EncMapIntfUint64V(v, e)
  389. case *map[interface{}]uint64:
  390. fastpathTV.EncMapIntfUint64V(*v, e)
  391. case map[interface{}]uintptr:
  392. fastpathTV.EncMapIntfUintptrV(v, e)
  393. case *map[interface{}]uintptr:
  394. fastpathTV.EncMapIntfUintptrV(*v, e)
  395. case map[interface{}]int:
  396. fastpathTV.EncMapIntfIntV(v, e)
  397. case *map[interface{}]int:
  398. fastpathTV.EncMapIntfIntV(*v, e)
  399. case map[interface{}]int8:
  400. fastpathTV.EncMapIntfInt8V(v, e)
  401. case *map[interface{}]int8:
  402. fastpathTV.EncMapIntfInt8V(*v, e)
  403. case map[interface{}]int16:
  404. fastpathTV.EncMapIntfInt16V(v, e)
  405. case *map[interface{}]int16:
  406. fastpathTV.EncMapIntfInt16V(*v, e)
  407. case map[interface{}]int32:
  408. fastpathTV.EncMapIntfInt32V(v, e)
  409. case *map[interface{}]int32:
  410. fastpathTV.EncMapIntfInt32V(*v, e)
  411. case map[interface{}]int64:
  412. fastpathTV.EncMapIntfInt64V(v, e)
  413. case *map[interface{}]int64:
  414. fastpathTV.EncMapIntfInt64V(*v, e)
  415. case map[interface{}]float32:
  416. fastpathTV.EncMapIntfFloat32V(v, e)
  417. case *map[interface{}]float32:
  418. fastpathTV.EncMapIntfFloat32V(*v, e)
  419. case map[interface{}]float64:
  420. fastpathTV.EncMapIntfFloat64V(v, e)
  421. case *map[interface{}]float64:
  422. fastpathTV.EncMapIntfFloat64V(*v, e)
  423. case map[interface{}]bool:
  424. fastpathTV.EncMapIntfBoolV(v, e)
  425. case *map[interface{}]bool:
  426. fastpathTV.EncMapIntfBoolV(*v, e)
  427. case []string:
  428. fastpathTV.EncSliceStringV(v, e)
  429. case *[]string:
  430. fastpathTV.EncSliceStringV(*v, e)
  431. case map[string]interface{}:
  432. fastpathTV.EncMapStringIntfV(v, e)
  433. case *map[string]interface{}:
  434. fastpathTV.EncMapStringIntfV(*v, e)
  435. case map[string]string:
  436. fastpathTV.EncMapStringStringV(v, e)
  437. case *map[string]string:
  438. fastpathTV.EncMapStringStringV(*v, e)
  439. case map[string]uint:
  440. fastpathTV.EncMapStringUintV(v, e)
  441. case *map[string]uint:
  442. fastpathTV.EncMapStringUintV(*v, e)
  443. case map[string]uint8:
  444. fastpathTV.EncMapStringUint8V(v, e)
  445. case *map[string]uint8:
  446. fastpathTV.EncMapStringUint8V(*v, e)
  447. case map[string]uint16:
  448. fastpathTV.EncMapStringUint16V(v, e)
  449. case *map[string]uint16:
  450. fastpathTV.EncMapStringUint16V(*v, e)
  451. case map[string]uint32:
  452. fastpathTV.EncMapStringUint32V(v, e)
  453. case *map[string]uint32:
  454. fastpathTV.EncMapStringUint32V(*v, e)
  455. case map[string]uint64:
  456. fastpathTV.EncMapStringUint64V(v, e)
  457. case *map[string]uint64:
  458. fastpathTV.EncMapStringUint64V(*v, e)
  459. case map[string]uintptr:
  460. fastpathTV.EncMapStringUintptrV(v, e)
  461. case *map[string]uintptr:
  462. fastpathTV.EncMapStringUintptrV(*v, e)
  463. case map[string]int:
  464. fastpathTV.EncMapStringIntV(v, e)
  465. case *map[string]int:
  466. fastpathTV.EncMapStringIntV(*v, e)
  467. case map[string]int8:
  468. fastpathTV.EncMapStringInt8V(v, e)
  469. case *map[string]int8:
  470. fastpathTV.EncMapStringInt8V(*v, e)
  471. case map[string]int16:
  472. fastpathTV.EncMapStringInt16V(v, e)
  473. case *map[string]int16:
  474. fastpathTV.EncMapStringInt16V(*v, e)
  475. case map[string]int32:
  476. fastpathTV.EncMapStringInt32V(v, e)
  477. case *map[string]int32:
  478. fastpathTV.EncMapStringInt32V(*v, e)
  479. case map[string]int64:
  480. fastpathTV.EncMapStringInt64V(v, e)
  481. case *map[string]int64:
  482. fastpathTV.EncMapStringInt64V(*v, e)
  483. case map[string]float32:
  484. fastpathTV.EncMapStringFloat32V(v, e)
  485. case *map[string]float32:
  486. fastpathTV.EncMapStringFloat32V(*v, e)
  487. case map[string]float64:
  488. fastpathTV.EncMapStringFloat64V(v, e)
  489. case *map[string]float64:
  490. fastpathTV.EncMapStringFloat64V(*v, e)
  491. case map[string]bool:
  492. fastpathTV.EncMapStringBoolV(v, e)
  493. case *map[string]bool:
  494. fastpathTV.EncMapStringBoolV(*v, e)
  495. case []float32:
  496. fastpathTV.EncSliceFloat32V(v, e)
  497. case *[]float32:
  498. fastpathTV.EncSliceFloat32V(*v, e)
  499. case map[float32]interface{}:
  500. fastpathTV.EncMapFloat32IntfV(v, e)
  501. case *map[float32]interface{}:
  502. fastpathTV.EncMapFloat32IntfV(*v, e)
  503. case map[float32]string:
  504. fastpathTV.EncMapFloat32StringV(v, e)
  505. case *map[float32]string:
  506. fastpathTV.EncMapFloat32StringV(*v, e)
  507. case map[float32]uint:
  508. fastpathTV.EncMapFloat32UintV(v, e)
  509. case *map[float32]uint:
  510. fastpathTV.EncMapFloat32UintV(*v, e)
  511. case map[float32]uint8:
  512. fastpathTV.EncMapFloat32Uint8V(v, e)
  513. case *map[float32]uint8:
  514. fastpathTV.EncMapFloat32Uint8V(*v, e)
  515. case map[float32]uint16:
  516. fastpathTV.EncMapFloat32Uint16V(v, e)
  517. case *map[float32]uint16:
  518. fastpathTV.EncMapFloat32Uint16V(*v, e)
  519. case map[float32]uint32:
  520. fastpathTV.EncMapFloat32Uint32V(v, e)
  521. case *map[float32]uint32:
  522. fastpathTV.EncMapFloat32Uint32V(*v, e)
  523. case map[float32]uint64:
  524. fastpathTV.EncMapFloat32Uint64V(v, e)
  525. case *map[float32]uint64:
  526. fastpathTV.EncMapFloat32Uint64V(*v, e)
  527. case map[float32]uintptr:
  528. fastpathTV.EncMapFloat32UintptrV(v, e)
  529. case *map[float32]uintptr:
  530. fastpathTV.EncMapFloat32UintptrV(*v, e)
  531. case map[float32]int:
  532. fastpathTV.EncMapFloat32IntV(v, e)
  533. case *map[float32]int:
  534. fastpathTV.EncMapFloat32IntV(*v, e)
  535. case map[float32]int8:
  536. fastpathTV.EncMapFloat32Int8V(v, e)
  537. case *map[float32]int8:
  538. fastpathTV.EncMapFloat32Int8V(*v, e)
  539. case map[float32]int16:
  540. fastpathTV.EncMapFloat32Int16V(v, e)
  541. case *map[float32]int16:
  542. fastpathTV.EncMapFloat32Int16V(*v, e)
  543. case map[float32]int32:
  544. fastpathTV.EncMapFloat32Int32V(v, e)
  545. case *map[float32]int32:
  546. fastpathTV.EncMapFloat32Int32V(*v, e)
  547. case map[float32]int64:
  548. fastpathTV.EncMapFloat32Int64V(v, e)
  549. case *map[float32]int64:
  550. fastpathTV.EncMapFloat32Int64V(*v, e)
  551. case map[float32]float32:
  552. fastpathTV.EncMapFloat32Float32V(v, e)
  553. case *map[float32]float32:
  554. fastpathTV.EncMapFloat32Float32V(*v, e)
  555. case map[float32]float64:
  556. fastpathTV.EncMapFloat32Float64V(v, e)
  557. case *map[float32]float64:
  558. fastpathTV.EncMapFloat32Float64V(*v, e)
  559. case map[float32]bool:
  560. fastpathTV.EncMapFloat32BoolV(v, e)
  561. case *map[float32]bool:
  562. fastpathTV.EncMapFloat32BoolV(*v, e)
  563. case []float64:
  564. fastpathTV.EncSliceFloat64V(v, e)
  565. case *[]float64:
  566. fastpathTV.EncSliceFloat64V(*v, e)
  567. case map[float64]interface{}:
  568. fastpathTV.EncMapFloat64IntfV(v, e)
  569. case *map[float64]interface{}:
  570. fastpathTV.EncMapFloat64IntfV(*v, e)
  571. case map[float64]string:
  572. fastpathTV.EncMapFloat64StringV(v, e)
  573. case *map[float64]string:
  574. fastpathTV.EncMapFloat64StringV(*v, e)
  575. case map[float64]uint:
  576. fastpathTV.EncMapFloat64UintV(v, e)
  577. case *map[float64]uint:
  578. fastpathTV.EncMapFloat64UintV(*v, e)
  579. case map[float64]uint8:
  580. fastpathTV.EncMapFloat64Uint8V(v, e)
  581. case *map[float64]uint8:
  582. fastpathTV.EncMapFloat64Uint8V(*v, e)
  583. case map[float64]uint16:
  584. fastpathTV.EncMapFloat64Uint16V(v, e)
  585. case *map[float64]uint16:
  586. fastpathTV.EncMapFloat64Uint16V(*v, e)
  587. case map[float64]uint32:
  588. fastpathTV.EncMapFloat64Uint32V(v, e)
  589. case *map[float64]uint32:
  590. fastpathTV.EncMapFloat64Uint32V(*v, e)
  591. case map[float64]uint64:
  592. fastpathTV.EncMapFloat64Uint64V(v, e)
  593. case *map[float64]uint64:
  594. fastpathTV.EncMapFloat64Uint64V(*v, e)
  595. case map[float64]uintptr:
  596. fastpathTV.EncMapFloat64UintptrV(v, e)
  597. case *map[float64]uintptr:
  598. fastpathTV.EncMapFloat64UintptrV(*v, e)
  599. case map[float64]int:
  600. fastpathTV.EncMapFloat64IntV(v, e)
  601. case *map[float64]int:
  602. fastpathTV.EncMapFloat64IntV(*v, e)
  603. case map[float64]int8:
  604. fastpathTV.EncMapFloat64Int8V(v, e)
  605. case *map[float64]int8:
  606. fastpathTV.EncMapFloat64Int8V(*v, e)
  607. case map[float64]int16:
  608. fastpathTV.EncMapFloat64Int16V(v, e)
  609. case *map[float64]int16:
  610. fastpathTV.EncMapFloat64Int16V(*v, e)
  611. case map[float64]int32:
  612. fastpathTV.EncMapFloat64Int32V(v, e)
  613. case *map[float64]int32:
  614. fastpathTV.EncMapFloat64Int32V(*v, e)
  615. case map[float64]int64:
  616. fastpathTV.EncMapFloat64Int64V(v, e)
  617. case *map[float64]int64:
  618. fastpathTV.EncMapFloat64Int64V(*v, e)
  619. case map[float64]float32:
  620. fastpathTV.EncMapFloat64Float32V(v, e)
  621. case *map[float64]float32:
  622. fastpathTV.EncMapFloat64Float32V(*v, e)
  623. case map[float64]float64:
  624. fastpathTV.EncMapFloat64Float64V(v, e)
  625. case *map[float64]float64:
  626. fastpathTV.EncMapFloat64Float64V(*v, e)
  627. case map[float64]bool:
  628. fastpathTV.EncMapFloat64BoolV(v, e)
  629. case *map[float64]bool:
  630. fastpathTV.EncMapFloat64BoolV(*v, e)
  631. case []uint:
  632. fastpathTV.EncSliceUintV(v, e)
  633. case *[]uint:
  634. fastpathTV.EncSliceUintV(*v, e)
  635. case map[uint]interface{}:
  636. fastpathTV.EncMapUintIntfV(v, e)
  637. case *map[uint]interface{}:
  638. fastpathTV.EncMapUintIntfV(*v, e)
  639. case map[uint]string:
  640. fastpathTV.EncMapUintStringV(v, e)
  641. case *map[uint]string:
  642. fastpathTV.EncMapUintStringV(*v, e)
  643. case map[uint]uint:
  644. fastpathTV.EncMapUintUintV(v, e)
  645. case *map[uint]uint:
  646. fastpathTV.EncMapUintUintV(*v, e)
  647. case map[uint]uint8:
  648. fastpathTV.EncMapUintUint8V(v, e)
  649. case *map[uint]uint8:
  650. fastpathTV.EncMapUintUint8V(*v, e)
  651. case map[uint]uint16:
  652. fastpathTV.EncMapUintUint16V(v, e)
  653. case *map[uint]uint16:
  654. fastpathTV.EncMapUintUint16V(*v, e)
  655. case map[uint]uint32:
  656. fastpathTV.EncMapUintUint32V(v, e)
  657. case *map[uint]uint32:
  658. fastpathTV.EncMapUintUint32V(*v, e)
  659. case map[uint]uint64:
  660. fastpathTV.EncMapUintUint64V(v, e)
  661. case *map[uint]uint64:
  662. fastpathTV.EncMapUintUint64V(*v, e)
  663. case map[uint]uintptr:
  664. fastpathTV.EncMapUintUintptrV(v, e)
  665. case *map[uint]uintptr:
  666. fastpathTV.EncMapUintUintptrV(*v, e)
  667. case map[uint]int:
  668. fastpathTV.EncMapUintIntV(v, e)
  669. case *map[uint]int:
  670. fastpathTV.EncMapUintIntV(*v, e)
  671. case map[uint]int8:
  672. fastpathTV.EncMapUintInt8V(v, e)
  673. case *map[uint]int8:
  674. fastpathTV.EncMapUintInt8V(*v, e)
  675. case map[uint]int16:
  676. fastpathTV.EncMapUintInt16V(v, e)
  677. case *map[uint]int16:
  678. fastpathTV.EncMapUintInt16V(*v, e)
  679. case map[uint]int32:
  680. fastpathTV.EncMapUintInt32V(v, e)
  681. case *map[uint]int32:
  682. fastpathTV.EncMapUintInt32V(*v, e)
  683. case map[uint]int64:
  684. fastpathTV.EncMapUintInt64V(v, e)
  685. case *map[uint]int64:
  686. fastpathTV.EncMapUintInt64V(*v, e)
  687. case map[uint]float32:
  688. fastpathTV.EncMapUintFloat32V(v, e)
  689. case *map[uint]float32:
  690. fastpathTV.EncMapUintFloat32V(*v, e)
  691. case map[uint]float64:
  692. fastpathTV.EncMapUintFloat64V(v, e)
  693. case *map[uint]float64:
  694. fastpathTV.EncMapUintFloat64V(*v, e)
  695. case map[uint]bool:
  696. fastpathTV.EncMapUintBoolV(v, e)
  697. case *map[uint]bool:
  698. fastpathTV.EncMapUintBoolV(*v, e)
  699. case map[uint8]interface{}:
  700. fastpathTV.EncMapUint8IntfV(v, e)
  701. case *map[uint8]interface{}:
  702. fastpathTV.EncMapUint8IntfV(*v, e)
  703. case map[uint8]string:
  704. fastpathTV.EncMapUint8StringV(v, e)
  705. case *map[uint8]string:
  706. fastpathTV.EncMapUint8StringV(*v, e)
  707. case map[uint8]uint:
  708. fastpathTV.EncMapUint8UintV(v, e)
  709. case *map[uint8]uint:
  710. fastpathTV.EncMapUint8UintV(*v, e)
  711. case map[uint8]uint8:
  712. fastpathTV.EncMapUint8Uint8V(v, e)
  713. case *map[uint8]uint8:
  714. fastpathTV.EncMapUint8Uint8V(*v, e)
  715. case map[uint8]uint16:
  716. fastpathTV.EncMapUint8Uint16V(v, e)
  717. case *map[uint8]uint16:
  718. fastpathTV.EncMapUint8Uint16V(*v, e)
  719. case map[uint8]uint32:
  720. fastpathTV.EncMapUint8Uint32V(v, e)
  721. case *map[uint8]uint32:
  722. fastpathTV.EncMapUint8Uint32V(*v, e)
  723. case map[uint8]uint64:
  724. fastpathTV.EncMapUint8Uint64V(v, e)
  725. case *map[uint8]uint64:
  726. fastpathTV.EncMapUint8Uint64V(*v, e)
  727. case map[uint8]uintptr:
  728. fastpathTV.EncMapUint8UintptrV(v, e)
  729. case *map[uint8]uintptr:
  730. fastpathTV.EncMapUint8UintptrV(*v, e)
  731. case map[uint8]int:
  732. fastpathTV.EncMapUint8IntV(v, e)
  733. case *map[uint8]int:
  734. fastpathTV.EncMapUint8IntV(*v, e)
  735. case map[uint8]int8:
  736. fastpathTV.EncMapUint8Int8V(v, e)
  737. case *map[uint8]int8:
  738. fastpathTV.EncMapUint8Int8V(*v, e)
  739. case map[uint8]int16:
  740. fastpathTV.EncMapUint8Int16V(v, e)
  741. case *map[uint8]int16:
  742. fastpathTV.EncMapUint8Int16V(*v, e)
  743. case map[uint8]int32:
  744. fastpathTV.EncMapUint8Int32V(v, e)
  745. case *map[uint8]int32:
  746. fastpathTV.EncMapUint8Int32V(*v, e)
  747. case map[uint8]int64:
  748. fastpathTV.EncMapUint8Int64V(v, e)
  749. case *map[uint8]int64:
  750. fastpathTV.EncMapUint8Int64V(*v, e)
  751. case map[uint8]float32:
  752. fastpathTV.EncMapUint8Float32V(v, e)
  753. case *map[uint8]float32:
  754. fastpathTV.EncMapUint8Float32V(*v, e)
  755. case map[uint8]float64:
  756. fastpathTV.EncMapUint8Float64V(v, e)
  757. case *map[uint8]float64:
  758. fastpathTV.EncMapUint8Float64V(*v, e)
  759. case map[uint8]bool:
  760. fastpathTV.EncMapUint8BoolV(v, e)
  761. case *map[uint8]bool:
  762. fastpathTV.EncMapUint8BoolV(*v, e)
  763. case []uint16:
  764. fastpathTV.EncSliceUint16V(v, e)
  765. case *[]uint16:
  766. fastpathTV.EncSliceUint16V(*v, e)
  767. case map[uint16]interface{}:
  768. fastpathTV.EncMapUint16IntfV(v, e)
  769. case *map[uint16]interface{}:
  770. fastpathTV.EncMapUint16IntfV(*v, e)
  771. case map[uint16]string:
  772. fastpathTV.EncMapUint16StringV(v, e)
  773. case *map[uint16]string:
  774. fastpathTV.EncMapUint16StringV(*v, e)
  775. case map[uint16]uint:
  776. fastpathTV.EncMapUint16UintV(v, e)
  777. case *map[uint16]uint:
  778. fastpathTV.EncMapUint16UintV(*v, e)
  779. case map[uint16]uint8:
  780. fastpathTV.EncMapUint16Uint8V(v, e)
  781. case *map[uint16]uint8:
  782. fastpathTV.EncMapUint16Uint8V(*v, e)
  783. case map[uint16]uint16:
  784. fastpathTV.EncMapUint16Uint16V(v, e)
  785. case *map[uint16]uint16:
  786. fastpathTV.EncMapUint16Uint16V(*v, e)
  787. case map[uint16]uint32:
  788. fastpathTV.EncMapUint16Uint32V(v, e)
  789. case *map[uint16]uint32:
  790. fastpathTV.EncMapUint16Uint32V(*v, e)
  791. case map[uint16]uint64:
  792. fastpathTV.EncMapUint16Uint64V(v, e)
  793. case *map[uint16]uint64:
  794. fastpathTV.EncMapUint16Uint64V(*v, e)
  795. case map[uint16]uintptr:
  796. fastpathTV.EncMapUint16UintptrV(v, e)
  797. case *map[uint16]uintptr:
  798. fastpathTV.EncMapUint16UintptrV(*v, e)
  799. case map[uint16]int:
  800. fastpathTV.EncMapUint16IntV(v, e)
  801. case *map[uint16]int:
  802. fastpathTV.EncMapUint16IntV(*v, e)
  803. case map[uint16]int8:
  804. fastpathTV.EncMapUint16Int8V(v, e)
  805. case *map[uint16]int8:
  806. fastpathTV.EncMapUint16Int8V(*v, e)
  807. case map[uint16]int16:
  808. fastpathTV.EncMapUint16Int16V(v, e)
  809. case *map[uint16]int16:
  810. fastpathTV.EncMapUint16Int16V(*v, e)
  811. case map[uint16]int32:
  812. fastpathTV.EncMapUint16Int32V(v, e)
  813. case *map[uint16]int32:
  814. fastpathTV.EncMapUint16Int32V(*v, e)
  815. case map[uint16]int64:
  816. fastpathTV.EncMapUint16Int64V(v, e)
  817. case *map[uint16]int64:
  818. fastpathTV.EncMapUint16Int64V(*v, e)
  819. case map[uint16]float32:
  820. fastpathTV.EncMapUint16Float32V(v, e)
  821. case *map[uint16]float32:
  822. fastpathTV.EncMapUint16Float32V(*v, e)
  823. case map[uint16]float64:
  824. fastpathTV.EncMapUint16Float64V(v, e)
  825. case *map[uint16]float64:
  826. fastpathTV.EncMapUint16Float64V(*v, e)
  827. case map[uint16]bool:
  828. fastpathTV.EncMapUint16BoolV(v, e)
  829. case *map[uint16]bool:
  830. fastpathTV.EncMapUint16BoolV(*v, e)
  831. case []uint32:
  832. fastpathTV.EncSliceUint32V(v, e)
  833. case *[]uint32:
  834. fastpathTV.EncSliceUint32V(*v, e)
  835. case map[uint32]interface{}:
  836. fastpathTV.EncMapUint32IntfV(v, e)
  837. case *map[uint32]interface{}:
  838. fastpathTV.EncMapUint32IntfV(*v, e)
  839. case map[uint32]string:
  840. fastpathTV.EncMapUint32StringV(v, e)
  841. case *map[uint32]string:
  842. fastpathTV.EncMapUint32StringV(*v, e)
  843. case map[uint32]uint:
  844. fastpathTV.EncMapUint32UintV(v, e)
  845. case *map[uint32]uint:
  846. fastpathTV.EncMapUint32UintV(*v, e)
  847. case map[uint32]uint8:
  848. fastpathTV.EncMapUint32Uint8V(v, e)
  849. case *map[uint32]uint8:
  850. fastpathTV.EncMapUint32Uint8V(*v, e)
  851. case map[uint32]uint16:
  852. fastpathTV.EncMapUint32Uint16V(v, e)
  853. case *map[uint32]uint16:
  854. fastpathTV.EncMapUint32Uint16V(*v, e)
  855. case map[uint32]uint32:
  856. fastpathTV.EncMapUint32Uint32V(v, e)
  857. case *map[uint32]uint32:
  858. fastpathTV.EncMapUint32Uint32V(*v, e)
  859. case map[uint32]uint64:
  860. fastpathTV.EncMapUint32Uint64V(v, e)
  861. case *map[uint32]uint64:
  862. fastpathTV.EncMapUint32Uint64V(*v, e)
  863. case map[uint32]uintptr:
  864. fastpathTV.EncMapUint32UintptrV(v, e)
  865. case *map[uint32]uintptr:
  866. fastpathTV.EncMapUint32UintptrV(*v, e)
  867. case map[uint32]int:
  868. fastpathTV.EncMapUint32IntV(v, e)
  869. case *map[uint32]int:
  870. fastpathTV.EncMapUint32IntV(*v, e)
  871. case map[uint32]int8:
  872. fastpathTV.EncMapUint32Int8V(v, e)
  873. case *map[uint32]int8:
  874. fastpathTV.EncMapUint32Int8V(*v, e)
  875. case map[uint32]int16:
  876. fastpathTV.EncMapUint32Int16V(v, e)
  877. case *map[uint32]int16:
  878. fastpathTV.EncMapUint32Int16V(*v, e)
  879. case map[uint32]int32:
  880. fastpathTV.EncMapUint32Int32V(v, e)
  881. case *map[uint32]int32:
  882. fastpathTV.EncMapUint32Int32V(*v, e)
  883. case map[uint32]int64:
  884. fastpathTV.EncMapUint32Int64V(v, e)
  885. case *map[uint32]int64:
  886. fastpathTV.EncMapUint32Int64V(*v, e)
  887. case map[uint32]float32:
  888. fastpathTV.EncMapUint32Float32V(v, e)
  889. case *map[uint32]float32:
  890. fastpathTV.EncMapUint32Float32V(*v, e)
  891. case map[uint32]float64:
  892. fastpathTV.EncMapUint32Float64V(v, e)
  893. case *map[uint32]float64:
  894. fastpathTV.EncMapUint32Float64V(*v, e)
  895. case map[uint32]bool:
  896. fastpathTV.EncMapUint32BoolV(v, e)
  897. case *map[uint32]bool:
  898. fastpathTV.EncMapUint32BoolV(*v, e)
  899. case []uint64:
  900. fastpathTV.EncSliceUint64V(v, e)
  901. case *[]uint64:
  902. fastpathTV.EncSliceUint64V(*v, e)
  903. case map[uint64]interface{}:
  904. fastpathTV.EncMapUint64IntfV(v, e)
  905. case *map[uint64]interface{}:
  906. fastpathTV.EncMapUint64IntfV(*v, e)
  907. case map[uint64]string:
  908. fastpathTV.EncMapUint64StringV(v, e)
  909. case *map[uint64]string:
  910. fastpathTV.EncMapUint64StringV(*v, e)
  911. case map[uint64]uint:
  912. fastpathTV.EncMapUint64UintV(v, e)
  913. case *map[uint64]uint:
  914. fastpathTV.EncMapUint64UintV(*v, e)
  915. case map[uint64]uint8:
  916. fastpathTV.EncMapUint64Uint8V(v, e)
  917. case *map[uint64]uint8:
  918. fastpathTV.EncMapUint64Uint8V(*v, e)
  919. case map[uint64]uint16:
  920. fastpathTV.EncMapUint64Uint16V(v, e)
  921. case *map[uint64]uint16:
  922. fastpathTV.EncMapUint64Uint16V(*v, e)
  923. case map[uint64]uint32:
  924. fastpathTV.EncMapUint64Uint32V(v, e)
  925. case *map[uint64]uint32:
  926. fastpathTV.EncMapUint64Uint32V(*v, e)
  927. case map[uint64]uint64:
  928. fastpathTV.EncMapUint64Uint64V(v, e)
  929. case *map[uint64]uint64:
  930. fastpathTV.EncMapUint64Uint64V(*v, e)
  931. case map[uint64]uintptr:
  932. fastpathTV.EncMapUint64UintptrV(v, e)
  933. case *map[uint64]uintptr:
  934. fastpathTV.EncMapUint64UintptrV(*v, e)
  935. case map[uint64]int:
  936. fastpathTV.EncMapUint64IntV(v, e)
  937. case *map[uint64]int:
  938. fastpathTV.EncMapUint64IntV(*v, e)
  939. case map[uint64]int8:
  940. fastpathTV.EncMapUint64Int8V(v, e)
  941. case *map[uint64]int8:
  942. fastpathTV.EncMapUint64Int8V(*v, e)
  943. case map[uint64]int16:
  944. fastpathTV.EncMapUint64Int16V(v, e)
  945. case *map[uint64]int16:
  946. fastpathTV.EncMapUint64Int16V(*v, e)
  947. case map[uint64]int32:
  948. fastpathTV.EncMapUint64Int32V(v, e)
  949. case *map[uint64]int32:
  950. fastpathTV.EncMapUint64Int32V(*v, e)
  951. case map[uint64]int64:
  952. fastpathTV.EncMapUint64Int64V(v, e)
  953. case *map[uint64]int64:
  954. fastpathTV.EncMapUint64Int64V(*v, e)
  955. case map[uint64]float32:
  956. fastpathTV.EncMapUint64Float32V(v, e)
  957. case *map[uint64]float32:
  958. fastpathTV.EncMapUint64Float32V(*v, e)
  959. case map[uint64]float64:
  960. fastpathTV.EncMapUint64Float64V(v, e)
  961. case *map[uint64]float64:
  962. fastpathTV.EncMapUint64Float64V(*v, e)
  963. case map[uint64]bool:
  964. fastpathTV.EncMapUint64BoolV(v, e)
  965. case *map[uint64]bool:
  966. fastpathTV.EncMapUint64BoolV(*v, e)
  967. case []uintptr:
  968. fastpathTV.EncSliceUintptrV(v, e)
  969. case *[]uintptr:
  970. fastpathTV.EncSliceUintptrV(*v, e)
  971. case map[uintptr]interface{}:
  972. fastpathTV.EncMapUintptrIntfV(v, e)
  973. case *map[uintptr]interface{}:
  974. fastpathTV.EncMapUintptrIntfV(*v, e)
  975. case map[uintptr]string:
  976. fastpathTV.EncMapUintptrStringV(v, e)
  977. case *map[uintptr]string:
  978. fastpathTV.EncMapUintptrStringV(*v, e)
  979. case map[uintptr]uint:
  980. fastpathTV.EncMapUintptrUintV(v, e)
  981. case *map[uintptr]uint:
  982. fastpathTV.EncMapUintptrUintV(*v, e)
  983. case map[uintptr]uint8:
  984. fastpathTV.EncMapUintptrUint8V(v, e)
  985. case *map[uintptr]uint8:
  986. fastpathTV.EncMapUintptrUint8V(*v, e)
  987. case map[uintptr]uint16:
  988. fastpathTV.EncMapUintptrUint16V(v, e)
  989. case *map[uintptr]uint16:
  990. fastpathTV.EncMapUintptrUint16V(*v, e)
  991. case map[uintptr]uint32:
  992. fastpathTV.EncMapUintptrUint32V(v, e)
  993. case *map[uintptr]uint32:
  994. fastpathTV.EncMapUintptrUint32V(*v, e)
  995. case map[uintptr]uint64:
  996. fastpathTV.EncMapUintptrUint64V(v, e)
  997. case *map[uintptr]uint64:
  998. fastpathTV.EncMapUintptrUint64V(*v, e)
  999. case map[uintptr]uintptr:
  1000. fastpathTV.EncMapUintptrUintptrV(v, e)
  1001. case *map[uintptr]uintptr:
  1002. fastpathTV.EncMapUintptrUintptrV(*v, e)
  1003. case map[uintptr]int:
  1004. fastpathTV.EncMapUintptrIntV(v, e)
  1005. case *map[uintptr]int:
  1006. fastpathTV.EncMapUintptrIntV(*v, e)
  1007. case map[uintptr]int8:
  1008. fastpathTV.EncMapUintptrInt8V(v, e)
  1009. case *map[uintptr]int8:
  1010. fastpathTV.EncMapUintptrInt8V(*v, e)
  1011. case map[uintptr]int16:
  1012. fastpathTV.EncMapUintptrInt16V(v, e)
  1013. case *map[uintptr]int16:
  1014. fastpathTV.EncMapUintptrInt16V(*v, e)
  1015. case map[uintptr]int32:
  1016. fastpathTV.EncMapUintptrInt32V(v, e)
  1017. case *map[uintptr]int32:
  1018. fastpathTV.EncMapUintptrInt32V(*v, e)
  1019. case map[uintptr]int64:
  1020. fastpathTV.EncMapUintptrInt64V(v, e)
  1021. case *map[uintptr]int64:
  1022. fastpathTV.EncMapUintptrInt64V(*v, e)
  1023. case map[uintptr]float32:
  1024. fastpathTV.EncMapUintptrFloat32V(v, e)
  1025. case *map[uintptr]float32:
  1026. fastpathTV.EncMapUintptrFloat32V(*v, e)
  1027. case map[uintptr]float64:
  1028. fastpathTV.EncMapUintptrFloat64V(v, e)
  1029. case *map[uintptr]float64:
  1030. fastpathTV.EncMapUintptrFloat64V(*v, e)
  1031. case map[uintptr]bool:
  1032. fastpathTV.EncMapUintptrBoolV(v, e)
  1033. case *map[uintptr]bool:
  1034. fastpathTV.EncMapUintptrBoolV(*v, e)
  1035. case []int:
  1036. fastpathTV.EncSliceIntV(v, e)
  1037. case *[]int:
  1038. fastpathTV.EncSliceIntV(*v, e)
  1039. case map[int]interface{}:
  1040. fastpathTV.EncMapIntIntfV(v, e)
  1041. case *map[int]interface{}:
  1042. fastpathTV.EncMapIntIntfV(*v, e)
  1043. case map[int]string:
  1044. fastpathTV.EncMapIntStringV(v, e)
  1045. case *map[int]string:
  1046. fastpathTV.EncMapIntStringV(*v, e)
  1047. case map[int]uint:
  1048. fastpathTV.EncMapIntUintV(v, e)
  1049. case *map[int]uint:
  1050. fastpathTV.EncMapIntUintV(*v, e)
  1051. case map[int]uint8:
  1052. fastpathTV.EncMapIntUint8V(v, e)
  1053. case *map[int]uint8:
  1054. fastpathTV.EncMapIntUint8V(*v, e)
  1055. case map[int]uint16:
  1056. fastpathTV.EncMapIntUint16V(v, e)
  1057. case *map[int]uint16:
  1058. fastpathTV.EncMapIntUint16V(*v, e)
  1059. case map[int]uint32:
  1060. fastpathTV.EncMapIntUint32V(v, e)
  1061. case *map[int]uint32:
  1062. fastpathTV.EncMapIntUint32V(*v, e)
  1063. case map[int]uint64:
  1064. fastpathTV.EncMapIntUint64V(v, e)
  1065. case *map[int]uint64:
  1066. fastpathTV.EncMapIntUint64V(*v, e)
  1067. case map[int]uintptr:
  1068. fastpathTV.EncMapIntUintptrV(v, e)
  1069. case *map[int]uintptr:
  1070. fastpathTV.EncMapIntUintptrV(*v, e)
  1071. case map[int]int:
  1072. fastpathTV.EncMapIntIntV(v, e)
  1073. case *map[int]int:
  1074. fastpathTV.EncMapIntIntV(*v, e)
  1075. case map[int]int8:
  1076. fastpathTV.EncMapIntInt8V(v, e)
  1077. case *map[int]int8:
  1078. fastpathTV.EncMapIntInt8V(*v, e)
  1079. case map[int]int16:
  1080. fastpathTV.EncMapIntInt16V(v, e)
  1081. case *map[int]int16:
  1082. fastpathTV.EncMapIntInt16V(*v, e)
  1083. case map[int]int32:
  1084. fastpathTV.EncMapIntInt32V(v, e)
  1085. case *map[int]int32:
  1086. fastpathTV.EncMapIntInt32V(*v, e)
  1087. case map[int]int64:
  1088. fastpathTV.EncMapIntInt64V(v, e)
  1089. case *map[int]int64:
  1090. fastpathTV.EncMapIntInt64V(*v, e)
  1091. case map[int]float32:
  1092. fastpathTV.EncMapIntFloat32V(v, e)
  1093. case *map[int]float32:
  1094. fastpathTV.EncMapIntFloat32V(*v, e)
  1095. case map[int]float64:
  1096. fastpathTV.EncMapIntFloat64V(v, e)
  1097. case *map[int]float64:
  1098. fastpathTV.EncMapIntFloat64V(*v, e)
  1099. case map[int]bool:
  1100. fastpathTV.EncMapIntBoolV(v, e)
  1101. case *map[int]bool:
  1102. fastpathTV.EncMapIntBoolV(*v, e)
  1103. case []int8:
  1104. fastpathTV.EncSliceInt8V(v, e)
  1105. case *[]int8:
  1106. fastpathTV.EncSliceInt8V(*v, e)
  1107. case map[int8]interface{}:
  1108. fastpathTV.EncMapInt8IntfV(v, e)
  1109. case *map[int8]interface{}:
  1110. fastpathTV.EncMapInt8IntfV(*v, e)
  1111. case map[int8]string:
  1112. fastpathTV.EncMapInt8StringV(v, e)
  1113. case *map[int8]string:
  1114. fastpathTV.EncMapInt8StringV(*v, e)
  1115. case map[int8]uint:
  1116. fastpathTV.EncMapInt8UintV(v, e)
  1117. case *map[int8]uint:
  1118. fastpathTV.EncMapInt8UintV(*v, e)
  1119. case map[int8]uint8:
  1120. fastpathTV.EncMapInt8Uint8V(v, e)
  1121. case *map[int8]uint8:
  1122. fastpathTV.EncMapInt8Uint8V(*v, e)
  1123. case map[int8]uint16:
  1124. fastpathTV.EncMapInt8Uint16V(v, e)
  1125. case *map[int8]uint16:
  1126. fastpathTV.EncMapInt8Uint16V(*v, e)
  1127. case map[int8]uint32:
  1128. fastpathTV.EncMapInt8Uint32V(v, e)
  1129. case *map[int8]uint32:
  1130. fastpathTV.EncMapInt8Uint32V(*v, e)
  1131. case map[int8]uint64:
  1132. fastpathTV.EncMapInt8Uint64V(v, e)
  1133. case *map[int8]uint64:
  1134. fastpathTV.EncMapInt8Uint64V(*v, e)
  1135. case map[int8]uintptr:
  1136. fastpathTV.EncMapInt8UintptrV(v, e)
  1137. case *map[int8]uintptr:
  1138. fastpathTV.EncMapInt8UintptrV(*v, e)
  1139. case map[int8]int:
  1140. fastpathTV.EncMapInt8IntV(v, e)
  1141. case *map[int8]int:
  1142. fastpathTV.EncMapInt8IntV(*v, e)
  1143. case map[int8]int8:
  1144. fastpathTV.EncMapInt8Int8V(v, e)
  1145. case *map[int8]int8:
  1146. fastpathTV.EncMapInt8Int8V(*v, e)
  1147. case map[int8]int16:
  1148. fastpathTV.EncMapInt8Int16V(v, e)
  1149. case *map[int8]int16:
  1150. fastpathTV.EncMapInt8Int16V(*v, e)
  1151. case map[int8]int32:
  1152. fastpathTV.EncMapInt8Int32V(v, e)
  1153. case *map[int8]int32:
  1154. fastpathTV.EncMapInt8Int32V(*v, e)
  1155. case map[int8]int64:
  1156. fastpathTV.EncMapInt8Int64V(v, e)
  1157. case *map[int8]int64:
  1158. fastpathTV.EncMapInt8Int64V(*v, e)
  1159. case map[int8]float32:
  1160. fastpathTV.EncMapInt8Float32V(v, e)
  1161. case *map[int8]float32:
  1162. fastpathTV.EncMapInt8Float32V(*v, e)
  1163. case map[int8]float64:
  1164. fastpathTV.EncMapInt8Float64V(v, e)
  1165. case *map[int8]float64:
  1166. fastpathTV.EncMapInt8Float64V(*v, e)
  1167. case map[int8]bool:
  1168. fastpathTV.EncMapInt8BoolV(v, e)
  1169. case *map[int8]bool:
  1170. fastpathTV.EncMapInt8BoolV(*v, e)
  1171. case []int16:
  1172. fastpathTV.EncSliceInt16V(v, e)
  1173. case *[]int16:
  1174. fastpathTV.EncSliceInt16V(*v, e)
  1175. case map[int16]interface{}:
  1176. fastpathTV.EncMapInt16IntfV(v, e)
  1177. case *map[int16]interface{}:
  1178. fastpathTV.EncMapInt16IntfV(*v, e)
  1179. case map[int16]string:
  1180. fastpathTV.EncMapInt16StringV(v, e)
  1181. case *map[int16]string:
  1182. fastpathTV.EncMapInt16StringV(*v, e)
  1183. case map[int16]uint:
  1184. fastpathTV.EncMapInt16UintV(v, e)
  1185. case *map[int16]uint:
  1186. fastpathTV.EncMapInt16UintV(*v, e)
  1187. case map[int16]uint8:
  1188. fastpathTV.EncMapInt16Uint8V(v, e)
  1189. case *map[int16]uint8:
  1190. fastpathTV.EncMapInt16Uint8V(*v, e)
  1191. case map[int16]uint16:
  1192. fastpathTV.EncMapInt16Uint16V(v, e)
  1193. case *map[int16]uint16:
  1194. fastpathTV.EncMapInt16Uint16V(*v, e)
  1195. case map[int16]uint32:
  1196. fastpathTV.EncMapInt16Uint32V(v, e)
  1197. case *map[int16]uint32:
  1198. fastpathTV.EncMapInt16Uint32V(*v, e)
  1199. case map[int16]uint64:
  1200. fastpathTV.EncMapInt16Uint64V(v, e)
  1201. case *map[int16]uint64:
  1202. fastpathTV.EncMapInt16Uint64V(*v, e)
  1203. case map[int16]uintptr:
  1204. fastpathTV.EncMapInt16UintptrV(v, e)
  1205. case *map[int16]uintptr:
  1206. fastpathTV.EncMapInt16UintptrV(*v, e)
  1207. case map[int16]int:
  1208. fastpathTV.EncMapInt16IntV(v, e)
  1209. case *map[int16]int:
  1210. fastpathTV.EncMapInt16IntV(*v, e)
  1211. case map[int16]int8:
  1212. fastpathTV.EncMapInt16Int8V(v, e)
  1213. case *map[int16]int8:
  1214. fastpathTV.EncMapInt16Int8V(*v, e)
  1215. case map[int16]int16:
  1216. fastpathTV.EncMapInt16Int16V(v, e)
  1217. case *map[int16]int16:
  1218. fastpathTV.EncMapInt16Int16V(*v, e)
  1219. case map[int16]int32:
  1220. fastpathTV.EncMapInt16Int32V(v, e)
  1221. case *map[int16]int32:
  1222. fastpathTV.EncMapInt16Int32V(*v, e)
  1223. case map[int16]int64:
  1224. fastpathTV.EncMapInt16Int64V(v, e)
  1225. case *map[int16]int64:
  1226. fastpathTV.EncMapInt16Int64V(*v, e)
  1227. case map[int16]float32:
  1228. fastpathTV.EncMapInt16Float32V(v, e)
  1229. case *map[int16]float32:
  1230. fastpathTV.EncMapInt16Float32V(*v, e)
  1231. case map[int16]float64:
  1232. fastpathTV.EncMapInt16Float64V(v, e)
  1233. case *map[int16]float64:
  1234. fastpathTV.EncMapInt16Float64V(*v, e)
  1235. case map[int16]bool:
  1236. fastpathTV.EncMapInt16BoolV(v, e)
  1237. case *map[int16]bool:
  1238. fastpathTV.EncMapInt16BoolV(*v, e)
  1239. case []int32:
  1240. fastpathTV.EncSliceInt32V(v, e)
  1241. case *[]int32:
  1242. fastpathTV.EncSliceInt32V(*v, e)
  1243. case map[int32]interface{}:
  1244. fastpathTV.EncMapInt32IntfV(v, e)
  1245. case *map[int32]interface{}:
  1246. fastpathTV.EncMapInt32IntfV(*v, e)
  1247. case map[int32]string:
  1248. fastpathTV.EncMapInt32StringV(v, e)
  1249. case *map[int32]string:
  1250. fastpathTV.EncMapInt32StringV(*v, e)
  1251. case map[int32]uint:
  1252. fastpathTV.EncMapInt32UintV(v, e)
  1253. case *map[int32]uint:
  1254. fastpathTV.EncMapInt32UintV(*v, e)
  1255. case map[int32]uint8:
  1256. fastpathTV.EncMapInt32Uint8V(v, e)
  1257. case *map[int32]uint8:
  1258. fastpathTV.EncMapInt32Uint8V(*v, e)
  1259. case map[int32]uint16:
  1260. fastpathTV.EncMapInt32Uint16V(v, e)
  1261. case *map[int32]uint16:
  1262. fastpathTV.EncMapInt32Uint16V(*v, e)
  1263. case map[int32]uint32:
  1264. fastpathTV.EncMapInt32Uint32V(v, e)
  1265. case *map[int32]uint32:
  1266. fastpathTV.EncMapInt32Uint32V(*v, e)
  1267. case map[int32]uint64:
  1268. fastpathTV.EncMapInt32Uint64V(v, e)
  1269. case *map[int32]uint64:
  1270. fastpathTV.EncMapInt32Uint64V(*v, e)
  1271. case map[int32]uintptr:
  1272. fastpathTV.EncMapInt32UintptrV(v, e)
  1273. case *map[int32]uintptr:
  1274. fastpathTV.EncMapInt32UintptrV(*v, e)
  1275. case map[int32]int:
  1276. fastpathTV.EncMapInt32IntV(v, e)
  1277. case *map[int32]int:
  1278. fastpathTV.EncMapInt32IntV(*v, e)
  1279. case map[int32]int8:
  1280. fastpathTV.EncMapInt32Int8V(v, e)
  1281. case *map[int32]int8:
  1282. fastpathTV.EncMapInt32Int8V(*v, e)
  1283. case map[int32]int16:
  1284. fastpathTV.EncMapInt32Int16V(v, e)
  1285. case *map[int32]int16:
  1286. fastpathTV.EncMapInt32Int16V(*v, e)
  1287. case map[int32]int32:
  1288. fastpathTV.EncMapInt32Int32V(v, e)
  1289. case *map[int32]int32:
  1290. fastpathTV.EncMapInt32Int32V(*v, e)
  1291. case map[int32]int64:
  1292. fastpathTV.EncMapInt32Int64V(v, e)
  1293. case *map[int32]int64:
  1294. fastpathTV.EncMapInt32Int64V(*v, e)
  1295. case map[int32]float32:
  1296. fastpathTV.EncMapInt32Float32V(v, e)
  1297. case *map[int32]float32:
  1298. fastpathTV.EncMapInt32Float32V(*v, e)
  1299. case map[int32]float64:
  1300. fastpathTV.EncMapInt32Float64V(v, e)
  1301. case *map[int32]float64:
  1302. fastpathTV.EncMapInt32Float64V(*v, e)
  1303. case map[int32]bool:
  1304. fastpathTV.EncMapInt32BoolV(v, e)
  1305. case *map[int32]bool:
  1306. fastpathTV.EncMapInt32BoolV(*v, e)
  1307. case []int64:
  1308. fastpathTV.EncSliceInt64V(v, e)
  1309. case *[]int64:
  1310. fastpathTV.EncSliceInt64V(*v, e)
  1311. case map[int64]interface{}:
  1312. fastpathTV.EncMapInt64IntfV(v, e)
  1313. case *map[int64]interface{}:
  1314. fastpathTV.EncMapInt64IntfV(*v, e)
  1315. case map[int64]string:
  1316. fastpathTV.EncMapInt64StringV(v, e)
  1317. case *map[int64]string:
  1318. fastpathTV.EncMapInt64StringV(*v, e)
  1319. case map[int64]uint:
  1320. fastpathTV.EncMapInt64UintV(v, e)
  1321. case *map[int64]uint:
  1322. fastpathTV.EncMapInt64UintV(*v, e)
  1323. case map[int64]uint8:
  1324. fastpathTV.EncMapInt64Uint8V(v, e)
  1325. case *map[int64]uint8:
  1326. fastpathTV.EncMapInt64Uint8V(*v, e)
  1327. case map[int64]uint16:
  1328. fastpathTV.EncMapInt64Uint16V(v, e)
  1329. case *map[int64]uint16:
  1330. fastpathTV.EncMapInt64Uint16V(*v, e)
  1331. case map[int64]uint32:
  1332. fastpathTV.EncMapInt64Uint32V(v, e)
  1333. case *map[int64]uint32:
  1334. fastpathTV.EncMapInt64Uint32V(*v, e)
  1335. case map[int64]uint64:
  1336. fastpathTV.EncMapInt64Uint64V(v, e)
  1337. case *map[int64]uint64:
  1338. fastpathTV.EncMapInt64Uint64V(*v, e)
  1339. case map[int64]uintptr:
  1340. fastpathTV.EncMapInt64UintptrV(v, e)
  1341. case *map[int64]uintptr:
  1342. fastpathTV.EncMapInt64UintptrV(*v, e)
  1343. case map[int64]int:
  1344. fastpathTV.EncMapInt64IntV(v, e)
  1345. case *map[int64]int:
  1346. fastpathTV.EncMapInt64IntV(*v, e)
  1347. case map[int64]int8:
  1348. fastpathTV.EncMapInt64Int8V(v, e)
  1349. case *map[int64]int8:
  1350. fastpathTV.EncMapInt64Int8V(*v, e)
  1351. case map[int64]int16:
  1352. fastpathTV.EncMapInt64Int16V(v, e)
  1353. case *map[int64]int16:
  1354. fastpathTV.EncMapInt64Int16V(*v, e)
  1355. case map[int64]int32:
  1356. fastpathTV.EncMapInt64Int32V(v, e)
  1357. case *map[int64]int32:
  1358. fastpathTV.EncMapInt64Int32V(*v, e)
  1359. case map[int64]int64:
  1360. fastpathTV.EncMapInt64Int64V(v, e)
  1361. case *map[int64]int64:
  1362. fastpathTV.EncMapInt64Int64V(*v, e)
  1363. case map[int64]float32:
  1364. fastpathTV.EncMapInt64Float32V(v, e)
  1365. case *map[int64]float32:
  1366. fastpathTV.EncMapInt64Float32V(*v, e)
  1367. case map[int64]float64:
  1368. fastpathTV.EncMapInt64Float64V(v, e)
  1369. case *map[int64]float64:
  1370. fastpathTV.EncMapInt64Float64V(*v, e)
  1371. case map[int64]bool:
  1372. fastpathTV.EncMapInt64BoolV(v, e)
  1373. case *map[int64]bool:
  1374. fastpathTV.EncMapInt64BoolV(*v, e)
  1375. case []bool:
  1376. fastpathTV.EncSliceBoolV(v, e)
  1377. case *[]bool:
  1378. fastpathTV.EncSliceBoolV(*v, e)
  1379. case map[bool]interface{}:
  1380. fastpathTV.EncMapBoolIntfV(v, e)
  1381. case *map[bool]interface{}:
  1382. fastpathTV.EncMapBoolIntfV(*v, e)
  1383. case map[bool]string:
  1384. fastpathTV.EncMapBoolStringV(v, e)
  1385. case *map[bool]string:
  1386. fastpathTV.EncMapBoolStringV(*v, e)
  1387. case map[bool]uint:
  1388. fastpathTV.EncMapBoolUintV(v, e)
  1389. case *map[bool]uint:
  1390. fastpathTV.EncMapBoolUintV(*v, e)
  1391. case map[bool]uint8:
  1392. fastpathTV.EncMapBoolUint8V(v, e)
  1393. case *map[bool]uint8:
  1394. fastpathTV.EncMapBoolUint8V(*v, e)
  1395. case map[bool]uint16:
  1396. fastpathTV.EncMapBoolUint16V(v, e)
  1397. case *map[bool]uint16:
  1398. fastpathTV.EncMapBoolUint16V(*v, e)
  1399. case map[bool]uint32:
  1400. fastpathTV.EncMapBoolUint32V(v, e)
  1401. case *map[bool]uint32:
  1402. fastpathTV.EncMapBoolUint32V(*v, e)
  1403. case map[bool]uint64:
  1404. fastpathTV.EncMapBoolUint64V(v, e)
  1405. case *map[bool]uint64:
  1406. fastpathTV.EncMapBoolUint64V(*v, e)
  1407. case map[bool]uintptr:
  1408. fastpathTV.EncMapBoolUintptrV(v, e)
  1409. case *map[bool]uintptr:
  1410. fastpathTV.EncMapBoolUintptrV(*v, e)
  1411. case map[bool]int:
  1412. fastpathTV.EncMapBoolIntV(v, e)
  1413. case *map[bool]int:
  1414. fastpathTV.EncMapBoolIntV(*v, e)
  1415. case map[bool]int8:
  1416. fastpathTV.EncMapBoolInt8V(v, e)
  1417. case *map[bool]int8:
  1418. fastpathTV.EncMapBoolInt8V(*v, e)
  1419. case map[bool]int16:
  1420. fastpathTV.EncMapBoolInt16V(v, e)
  1421. case *map[bool]int16:
  1422. fastpathTV.EncMapBoolInt16V(*v, e)
  1423. case map[bool]int32:
  1424. fastpathTV.EncMapBoolInt32V(v, e)
  1425. case *map[bool]int32:
  1426. fastpathTV.EncMapBoolInt32V(*v, e)
  1427. case map[bool]int64:
  1428. fastpathTV.EncMapBoolInt64V(v, e)
  1429. case *map[bool]int64:
  1430. fastpathTV.EncMapBoolInt64V(*v, e)
  1431. case map[bool]float32:
  1432. fastpathTV.EncMapBoolFloat32V(v, e)
  1433. case *map[bool]float32:
  1434. fastpathTV.EncMapBoolFloat32V(*v, e)
  1435. case map[bool]float64:
  1436. fastpathTV.EncMapBoolFloat64V(v, e)
  1437. case *map[bool]float64:
  1438. fastpathTV.EncMapBoolFloat64V(*v, e)
  1439. case map[bool]bool:
  1440. fastpathTV.EncMapBoolBoolV(v, e)
  1441. case *map[bool]bool:
  1442. fastpathTV.EncMapBoolBoolV(*v, e)
  1443. default:
  1444. _ = v // TODO: workaround https://github.com/golang/go/issues/12927 (remove after go 1.6 release)
  1445. return false
  1446. }
  1447. return true
  1448. }
  1449. func fastpathEncodeTypeSwitchSlice(iv interface{}, e *Encoder) bool {
  1450. switch v := iv.(type) {
  1451. case []interface{}:
  1452. fastpathTV.EncSliceIntfV(v, e)
  1453. case *[]interface{}:
  1454. fastpathTV.EncSliceIntfV(*v, e)
  1455. case []string:
  1456. fastpathTV.EncSliceStringV(v, e)
  1457. case *[]string:
  1458. fastpathTV.EncSliceStringV(*v, e)
  1459. case []float32:
  1460. fastpathTV.EncSliceFloat32V(v, e)
  1461. case *[]float32:
  1462. fastpathTV.EncSliceFloat32V(*v, e)
  1463. case []float64:
  1464. fastpathTV.EncSliceFloat64V(v, e)
  1465. case *[]float64:
  1466. fastpathTV.EncSliceFloat64V(*v, e)
  1467. case []uint:
  1468. fastpathTV.EncSliceUintV(v, e)
  1469. case *[]uint:
  1470. fastpathTV.EncSliceUintV(*v, e)
  1471. case []uint16:
  1472. fastpathTV.EncSliceUint16V(v, e)
  1473. case *[]uint16:
  1474. fastpathTV.EncSliceUint16V(*v, e)
  1475. case []uint32:
  1476. fastpathTV.EncSliceUint32V(v, e)
  1477. case *[]uint32:
  1478. fastpathTV.EncSliceUint32V(*v, e)
  1479. case []uint64:
  1480. fastpathTV.EncSliceUint64V(v, e)
  1481. case *[]uint64:
  1482. fastpathTV.EncSliceUint64V(*v, e)
  1483. case []uintptr:
  1484. fastpathTV.EncSliceUintptrV(v, e)
  1485. case *[]uintptr:
  1486. fastpathTV.EncSliceUintptrV(*v, e)
  1487. case []int:
  1488. fastpathTV.EncSliceIntV(v, e)
  1489. case *[]int:
  1490. fastpathTV.EncSliceIntV(*v, e)
  1491. case []int8:
  1492. fastpathTV.EncSliceInt8V(v, e)
  1493. case *[]int8:
  1494. fastpathTV.EncSliceInt8V(*v, e)
  1495. case []int16:
  1496. fastpathTV.EncSliceInt16V(v, e)
  1497. case *[]int16:
  1498. fastpathTV.EncSliceInt16V(*v, e)
  1499. case []int32:
  1500. fastpathTV.EncSliceInt32V(v, e)
  1501. case *[]int32:
  1502. fastpathTV.EncSliceInt32V(*v, e)
  1503. case []int64:
  1504. fastpathTV.EncSliceInt64V(v, e)
  1505. case *[]int64:
  1506. fastpathTV.EncSliceInt64V(*v, e)
  1507. case []bool:
  1508. fastpathTV.EncSliceBoolV(v, e)
  1509. case *[]bool:
  1510. fastpathTV.EncSliceBoolV(*v, e)
  1511. default:
  1512. _ = v // TODO: workaround https://github.com/golang/go/issues/12927 (remove after go 1.6 release)
  1513. return false
  1514. }
  1515. return true
  1516. }
  1517. func fastpathEncodeTypeSwitchMap(iv interface{}, e *Encoder) bool {
  1518. switch v := iv.(type) {
  1519. case map[interface{}]interface{}:
  1520. fastpathTV.EncMapIntfIntfV(v, e)
  1521. case *map[interface{}]interface{}:
  1522. fastpathTV.EncMapIntfIntfV(*v, e)
  1523. case map[interface{}]string:
  1524. fastpathTV.EncMapIntfStringV(v, e)
  1525. case *map[interface{}]string:
  1526. fastpathTV.EncMapIntfStringV(*v, e)
  1527. case map[interface{}]uint:
  1528. fastpathTV.EncMapIntfUintV(v, e)
  1529. case *map[interface{}]uint:
  1530. fastpathTV.EncMapIntfUintV(*v, e)
  1531. case map[interface{}]uint8:
  1532. fastpathTV.EncMapIntfUint8V(v, e)
  1533. case *map[interface{}]uint8:
  1534. fastpathTV.EncMapIntfUint8V(*v, e)
  1535. case map[interface{}]uint16:
  1536. fastpathTV.EncMapIntfUint16V(v, e)
  1537. case *map[interface{}]uint16:
  1538. fastpathTV.EncMapIntfUint16V(*v, e)
  1539. case map[interface{}]uint32:
  1540. fastpathTV.EncMapIntfUint32V(v, e)
  1541. case *map[interface{}]uint32:
  1542. fastpathTV.EncMapIntfUint32V(*v, e)
  1543. case map[interface{}]uint64:
  1544. fastpathTV.EncMapIntfUint64V(v, e)
  1545. case *map[interface{}]uint64:
  1546. fastpathTV.EncMapIntfUint64V(*v, e)
  1547. case map[interface{}]uintptr:
  1548. fastpathTV.EncMapIntfUintptrV(v, e)
  1549. case *map[interface{}]uintptr:
  1550. fastpathTV.EncMapIntfUintptrV(*v, e)
  1551. case map[interface{}]int:
  1552. fastpathTV.EncMapIntfIntV(v, e)
  1553. case *map[interface{}]int:
  1554. fastpathTV.EncMapIntfIntV(*v, e)
  1555. case map[interface{}]int8:
  1556. fastpathTV.EncMapIntfInt8V(v, e)
  1557. case *map[interface{}]int8:
  1558. fastpathTV.EncMapIntfInt8V(*v, e)
  1559. case map[interface{}]int16:
  1560. fastpathTV.EncMapIntfInt16V(v, e)
  1561. case *map[interface{}]int16:
  1562. fastpathTV.EncMapIntfInt16V(*v, e)
  1563. case map[interface{}]int32:
  1564. fastpathTV.EncMapIntfInt32V(v, e)
  1565. case *map[interface{}]int32:
  1566. fastpathTV.EncMapIntfInt32V(*v, e)
  1567. case map[interface{}]int64:
  1568. fastpathTV.EncMapIntfInt64V(v, e)
  1569. case *map[interface{}]int64:
  1570. fastpathTV.EncMapIntfInt64V(*v, e)
  1571. case map[interface{}]float32:
  1572. fastpathTV.EncMapIntfFloat32V(v, e)
  1573. case *map[interface{}]float32:
  1574. fastpathTV.EncMapIntfFloat32V(*v, e)
  1575. case map[interface{}]float64:
  1576. fastpathTV.EncMapIntfFloat64V(v, e)
  1577. case *map[interface{}]float64:
  1578. fastpathTV.EncMapIntfFloat64V(*v, e)
  1579. case map[interface{}]bool:
  1580. fastpathTV.EncMapIntfBoolV(v, e)
  1581. case *map[interface{}]bool:
  1582. fastpathTV.EncMapIntfBoolV(*v, e)
  1583. case map[string]interface{}:
  1584. fastpathTV.EncMapStringIntfV(v, e)
  1585. case *map[string]interface{}:
  1586. fastpathTV.EncMapStringIntfV(*v, e)
  1587. case map[string]string:
  1588. fastpathTV.EncMapStringStringV(v, e)
  1589. case *map[string]string:
  1590. fastpathTV.EncMapStringStringV(*v, e)
  1591. case map[string]uint:
  1592. fastpathTV.EncMapStringUintV(v, e)
  1593. case *map[string]uint:
  1594. fastpathTV.EncMapStringUintV(*v, e)
  1595. case map[string]uint8:
  1596. fastpathTV.EncMapStringUint8V(v, e)
  1597. case *map[string]uint8:
  1598. fastpathTV.EncMapStringUint8V(*v, e)
  1599. case map[string]uint16:
  1600. fastpathTV.EncMapStringUint16V(v, e)
  1601. case *map[string]uint16:
  1602. fastpathTV.EncMapStringUint16V(*v, e)
  1603. case map[string]uint32:
  1604. fastpathTV.EncMapStringUint32V(v, e)
  1605. case *map[string]uint32:
  1606. fastpathTV.EncMapStringUint32V(*v, e)
  1607. case map[string]uint64:
  1608. fastpathTV.EncMapStringUint64V(v, e)
  1609. case *map[string]uint64:
  1610. fastpathTV.EncMapStringUint64V(*v, e)
  1611. case map[string]uintptr:
  1612. fastpathTV.EncMapStringUintptrV(v, e)
  1613. case *map[string]uintptr:
  1614. fastpathTV.EncMapStringUintptrV(*v, e)
  1615. case map[string]int:
  1616. fastpathTV.EncMapStringIntV(v, e)
  1617. case *map[string]int:
  1618. fastpathTV.EncMapStringIntV(*v, e)
  1619. case map[string]int8:
  1620. fastpathTV.EncMapStringInt8V(v, e)
  1621. case *map[string]int8:
  1622. fastpathTV.EncMapStringInt8V(*v, e)
  1623. case map[string]int16:
  1624. fastpathTV.EncMapStringInt16V(v, e)
  1625. case *map[string]int16:
  1626. fastpathTV.EncMapStringInt16V(*v, e)
  1627. case map[string]int32:
  1628. fastpathTV.EncMapStringInt32V(v, e)
  1629. case *map[string]int32:
  1630. fastpathTV.EncMapStringInt32V(*v, e)
  1631. case map[string]int64:
  1632. fastpathTV.EncMapStringInt64V(v, e)
  1633. case *map[string]int64:
  1634. fastpathTV.EncMapStringInt64V(*v, e)
  1635. case map[string]float32:
  1636. fastpathTV.EncMapStringFloat32V(v, e)
  1637. case *map[string]float32:
  1638. fastpathTV.EncMapStringFloat32V(*v, e)
  1639. case map[string]float64:
  1640. fastpathTV.EncMapStringFloat64V(v, e)
  1641. case *map[string]float64:
  1642. fastpathTV.EncMapStringFloat64V(*v, e)
  1643. case map[string]bool:
  1644. fastpathTV.EncMapStringBoolV(v, e)
  1645. case *map[string]bool:
  1646. fastpathTV.EncMapStringBoolV(*v, e)
  1647. case map[float32]interface{}:
  1648. fastpathTV.EncMapFloat32IntfV(v, e)
  1649. case *map[float32]interface{}:
  1650. fastpathTV.EncMapFloat32IntfV(*v, e)
  1651. case map[float32]string:
  1652. fastpathTV.EncMapFloat32StringV(v, e)
  1653. case *map[float32]string:
  1654. fastpathTV.EncMapFloat32StringV(*v, e)
  1655. case map[float32]uint:
  1656. fastpathTV.EncMapFloat32UintV(v, e)
  1657. case *map[float32]uint:
  1658. fastpathTV.EncMapFloat32UintV(*v, e)
  1659. case map[float32]uint8:
  1660. fastpathTV.EncMapFloat32Uint8V(v, e)
  1661. case *map[float32]uint8:
  1662. fastpathTV.EncMapFloat32Uint8V(*v, e)
  1663. case map[float32]uint16:
  1664. fastpathTV.EncMapFloat32Uint16V(v, e)
  1665. case *map[float32]uint16:
  1666. fastpathTV.EncMapFloat32Uint16V(*v, e)
  1667. case map[float32]uint32:
  1668. fastpathTV.EncMapFloat32Uint32V(v, e)
  1669. case *map[float32]uint32:
  1670. fastpathTV.EncMapFloat32Uint32V(*v, e)
  1671. case map[float32]uint64:
  1672. fastpathTV.EncMapFloat32Uint64V(v, e)
  1673. case *map[float32]uint64:
  1674. fastpathTV.EncMapFloat32Uint64V(*v, e)
  1675. case map[float32]uintptr:
  1676. fastpathTV.EncMapFloat32UintptrV(v, e)
  1677. case *map[float32]uintptr:
  1678. fastpathTV.EncMapFloat32UintptrV(*v, e)
  1679. case map[float32]int:
  1680. fastpathTV.EncMapFloat32IntV(v, e)
  1681. case *map[float32]int:
  1682. fastpathTV.EncMapFloat32IntV(*v, e)
  1683. case map[float32]int8:
  1684. fastpathTV.EncMapFloat32Int8V(v, e)
  1685. case *map[float32]int8:
  1686. fastpathTV.EncMapFloat32Int8V(*v, e)
  1687. case map[float32]int16:
  1688. fastpathTV.EncMapFloat32Int16V(v, e)
  1689. case *map[float32]int16:
  1690. fastpathTV.EncMapFloat32Int16V(*v, e)
  1691. case map[float32]int32:
  1692. fastpathTV.EncMapFloat32Int32V(v, e)
  1693. case *map[float32]int32:
  1694. fastpathTV.EncMapFloat32Int32V(*v, e)
  1695. case map[float32]int64:
  1696. fastpathTV.EncMapFloat32Int64V(v, e)
  1697. case *map[float32]int64:
  1698. fastpathTV.EncMapFloat32Int64V(*v, e)
  1699. case map[float32]float32:
  1700. fastpathTV.EncMapFloat32Float32V(v, e)
  1701. case *map[float32]float32:
  1702. fastpathTV.EncMapFloat32Float32V(*v, e)
  1703. case map[float32]float64:
  1704. fastpathTV.EncMapFloat32Float64V(v, e)
  1705. case *map[float32]float64:
  1706. fastpathTV.EncMapFloat32Float64V(*v, e)
  1707. case map[float32]bool:
  1708. fastpathTV.EncMapFloat32BoolV(v, e)
  1709. case *map[float32]bool:
  1710. fastpathTV.EncMapFloat32BoolV(*v, e)
  1711. case map[float64]interface{}:
  1712. fastpathTV.EncMapFloat64IntfV(v, e)
  1713. case *map[float64]interface{}:
  1714. fastpathTV.EncMapFloat64IntfV(*v, e)
  1715. case map[float64]string:
  1716. fastpathTV.EncMapFloat64StringV(v, e)
  1717. case *map[float64]string:
  1718. fastpathTV.EncMapFloat64StringV(*v, e)
  1719. case map[float64]uint:
  1720. fastpathTV.EncMapFloat64UintV(v, e)
  1721. case *map[float64]uint:
  1722. fastpathTV.EncMapFloat64UintV(*v, e)
  1723. case map[float64]uint8:
  1724. fastpathTV.EncMapFloat64Uint8V(v, e)
  1725. case *map[float64]uint8:
  1726. fastpathTV.EncMapFloat64Uint8V(*v, e)
  1727. case map[float64]uint16:
  1728. fastpathTV.EncMapFloat64Uint16V(v, e)
  1729. case *map[float64]uint16:
  1730. fastpathTV.EncMapFloat64Uint16V(*v, e)
  1731. case map[float64]uint32:
  1732. fastpathTV.EncMapFloat64Uint32V(v, e)
  1733. case *map[float64]uint32:
  1734. fastpathTV.EncMapFloat64Uint32V(*v, e)
  1735. case map[float64]uint64:
  1736. fastpathTV.EncMapFloat64Uint64V(v, e)
  1737. case *map[float64]uint64:
  1738. fastpathTV.EncMapFloat64Uint64V(*v, e)
  1739. case map[float64]uintptr:
  1740. fastpathTV.EncMapFloat64UintptrV(v, e)
  1741. case *map[float64]uintptr:
  1742. fastpathTV.EncMapFloat64UintptrV(*v, e)
  1743. case map[float64]int:
  1744. fastpathTV.EncMapFloat64IntV(v, e)
  1745. case *map[float64]int:
  1746. fastpathTV.EncMapFloat64IntV(*v, e)
  1747. case map[float64]int8:
  1748. fastpathTV.EncMapFloat64Int8V(v, e)
  1749. case *map[float64]int8:
  1750. fastpathTV.EncMapFloat64Int8V(*v, e)
  1751. case map[float64]int16:
  1752. fastpathTV.EncMapFloat64Int16V(v, e)
  1753. case *map[float64]int16:
  1754. fastpathTV.EncMapFloat64Int16V(*v, e)
  1755. case map[float64]int32:
  1756. fastpathTV.EncMapFloat64Int32V(v, e)
  1757. case *map[float64]int32:
  1758. fastpathTV.EncMapFloat64Int32V(*v, e)
  1759. case map[float64]int64:
  1760. fastpathTV.EncMapFloat64Int64V(v, e)
  1761. case *map[float64]int64:
  1762. fastpathTV.EncMapFloat64Int64V(*v, e)
  1763. case map[float64]float32:
  1764. fastpathTV.EncMapFloat64Float32V(v, e)
  1765. case *map[float64]float32:
  1766. fastpathTV.EncMapFloat64Float32V(*v, e)
  1767. case map[float64]float64:
  1768. fastpathTV.EncMapFloat64Float64V(v, e)
  1769. case *map[float64]float64:
  1770. fastpathTV.EncMapFloat64Float64V(*v, e)
  1771. case map[float64]bool:
  1772. fastpathTV.EncMapFloat64BoolV(v, e)
  1773. case *map[float64]bool:
  1774. fastpathTV.EncMapFloat64BoolV(*v, e)
  1775. case map[uint]interface{}:
  1776. fastpathTV.EncMapUintIntfV(v, e)
  1777. case *map[uint]interface{}:
  1778. fastpathTV.EncMapUintIntfV(*v, e)
  1779. case map[uint]string:
  1780. fastpathTV.EncMapUintStringV(v, e)
  1781. case *map[uint]string:
  1782. fastpathTV.EncMapUintStringV(*v, e)
  1783. case map[uint]uint:
  1784. fastpathTV.EncMapUintUintV(v, e)
  1785. case *map[uint]uint:
  1786. fastpathTV.EncMapUintUintV(*v, e)
  1787. case map[uint]uint8:
  1788. fastpathTV.EncMapUintUint8V(v, e)
  1789. case *map[uint]uint8:
  1790. fastpathTV.EncMapUintUint8V(*v, e)
  1791. case map[uint]uint16:
  1792. fastpathTV.EncMapUintUint16V(v, e)
  1793. case *map[uint]uint16:
  1794. fastpathTV.EncMapUintUint16V(*v, e)
  1795. case map[uint]uint32:
  1796. fastpathTV.EncMapUintUint32V(v, e)
  1797. case *map[uint]uint32:
  1798. fastpathTV.EncMapUintUint32V(*v, e)
  1799. case map[uint]uint64:
  1800. fastpathTV.EncMapUintUint64V(v, e)
  1801. case *map[uint]uint64:
  1802. fastpathTV.EncMapUintUint64V(*v, e)
  1803. case map[uint]uintptr:
  1804. fastpathTV.EncMapUintUintptrV(v, e)
  1805. case *map[uint]uintptr:
  1806. fastpathTV.EncMapUintUintptrV(*v, e)
  1807. case map[uint]int:
  1808. fastpathTV.EncMapUintIntV(v, e)
  1809. case *map[uint]int:
  1810. fastpathTV.EncMapUintIntV(*v, e)
  1811. case map[uint]int8:
  1812. fastpathTV.EncMapUintInt8V(v, e)
  1813. case *map[uint]int8:
  1814. fastpathTV.EncMapUintInt8V(*v, e)
  1815. case map[uint]int16:
  1816. fastpathTV.EncMapUintInt16V(v, e)
  1817. case *map[uint]int16:
  1818. fastpathTV.EncMapUintInt16V(*v, e)
  1819. case map[uint]int32:
  1820. fastpathTV.EncMapUintInt32V(v, e)
  1821. case *map[uint]int32:
  1822. fastpathTV.EncMapUintInt32V(*v, e)
  1823. case map[uint]int64:
  1824. fastpathTV.EncMapUintInt64V(v, e)
  1825. case *map[uint]int64:
  1826. fastpathTV.EncMapUintInt64V(*v, e)
  1827. case map[uint]float32:
  1828. fastpathTV.EncMapUintFloat32V(v, e)
  1829. case *map[uint]float32:
  1830. fastpathTV.EncMapUintFloat32V(*v, e)
  1831. case map[uint]float64:
  1832. fastpathTV.EncMapUintFloat64V(v, e)
  1833. case *map[uint]float64:
  1834. fastpathTV.EncMapUintFloat64V(*v, e)
  1835. case map[uint]bool:
  1836. fastpathTV.EncMapUintBoolV(v, e)
  1837. case *map[uint]bool:
  1838. fastpathTV.EncMapUintBoolV(*v, e)
  1839. case map[uint8]interface{}:
  1840. fastpathTV.EncMapUint8IntfV(v, e)
  1841. case *map[uint8]interface{}:
  1842. fastpathTV.EncMapUint8IntfV(*v, e)
  1843. case map[uint8]string:
  1844. fastpathTV.EncMapUint8StringV(v, e)
  1845. case *map[uint8]string:
  1846. fastpathTV.EncMapUint8StringV(*v, e)
  1847. case map[uint8]uint:
  1848. fastpathTV.EncMapUint8UintV(v, e)
  1849. case *map[uint8]uint:
  1850. fastpathTV.EncMapUint8UintV(*v, e)
  1851. case map[uint8]uint8:
  1852. fastpathTV.EncMapUint8Uint8V(v, e)
  1853. case *map[uint8]uint8:
  1854. fastpathTV.EncMapUint8Uint8V(*v, e)
  1855. case map[uint8]uint16:
  1856. fastpathTV.EncMapUint8Uint16V(v, e)
  1857. case *map[uint8]uint16:
  1858. fastpathTV.EncMapUint8Uint16V(*v, e)
  1859. case map[uint8]uint32:
  1860. fastpathTV.EncMapUint8Uint32V(v, e)
  1861. case *map[uint8]uint32:
  1862. fastpathTV.EncMapUint8Uint32V(*v, e)
  1863. case map[uint8]uint64:
  1864. fastpathTV.EncMapUint8Uint64V(v, e)
  1865. case *map[uint8]uint64:
  1866. fastpathTV.EncMapUint8Uint64V(*v, e)
  1867. case map[uint8]uintptr:
  1868. fastpathTV.EncMapUint8UintptrV(v, e)
  1869. case *map[uint8]uintptr:
  1870. fastpathTV.EncMapUint8UintptrV(*v, e)
  1871. case map[uint8]int:
  1872. fastpathTV.EncMapUint8IntV(v, e)
  1873. case *map[uint8]int:
  1874. fastpathTV.EncMapUint8IntV(*v, e)
  1875. case map[uint8]int8:
  1876. fastpathTV.EncMapUint8Int8V(v, e)
  1877. case *map[uint8]int8:
  1878. fastpathTV.EncMapUint8Int8V(*v, e)
  1879. case map[uint8]int16:
  1880. fastpathTV.EncMapUint8Int16V(v, e)
  1881. case *map[uint8]int16:
  1882. fastpathTV.EncMapUint8Int16V(*v, e)
  1883. case map[uint8]int32:
  1884. fastpathTV.EncMapUint8Int32V(v, e)
  1885. case *map[uint8]int32:
  1886. fastpathTV.EncMapUint8Int32V(*v, e)
  1887. case map[uint8]int64:
  1888. fastpathTV.EncMapUint8Int64V(v, e)
  1889. case *map[uint8]int64:
  1890. fastpathTV.EncMapUint8Int64V(*v, e)
  1891. case map[uint8]float32:
  1892. fastpathTV.EncMapUint8Float32V(v, e)
  1893. case *map[uint8]float32:
  1894. fastpathTV.EncMapUint8Float32V(*v, e)
  1895. case map[uint8]float64:
  1896. fastpathTV.EncMapUint8Float64V(v, e)
  1897. case *map[uint8]float64:
  1898. fastpathTV.EncMapUint8Float64V(*v, e)
  1899. case map[uint8]bool:
  1900. fastpathTV.EncMapUint8BoolV(v, e)
  1901. case *map[uint8]bool:
  1902. fastpathTV.EncMapUint8BoolV(*v, e)
  1903. case map[uint16]interface{}:
  1904. fastpathTV.EncMapUint16IntfV(v, e)
  1905. case *map[uint16]interface{}:
  1906. fastpathTV.EncMapUint16IntfV(*v, e)
  1907. case map[uint16]string:
  1908. fastpathTV.EncMapUint16StringV(v, e)
  1909. case *map[uint16]string:
  1910. fastpathTV.EncMapUint16StringV(*v, e)
  1911. case map[uint16]uint:
  1912. fastpathTV.EncMapUint16UintV(v, e)
  1913. case *map[uint16]uint:
  1914. fastpathTV.EncMapUint16UintV(*v, e)
  1915. case map[uint16]uint8:
  1916. fastpathTV.EncMapUint16Uint8V(v, e)
  1917. case *map[uint16]uint8:
  1918. fastpathTV.EncMapUint16Uint8V(*v, e)
  1919. case map[uint16]uint16:
  1920. fastpathTV.EncMapUint16Uint16V(v, e)
  1921. case *map[uint16]uint16:
  1922. fastpathTV.EncMapUint16Uint16V(*v, e)
  1923. case map[uint16]uint32:
  1924. fastpathTV.EncMapUint16Uint32V(v, e)
  1925. case *map[uint16]uint32:
  1926. fastpathTV.EncMapUint16Uint32V(*v, e)
  1927. case map[uint16]uint64:
  1928. fastpathTV.EncMapUint16Uint64V(v, e)
  1929. case *map[uint16]uint64:
  1930. fastpathTV.EncMapUint16Uint64V(*v, e)
  1931. case map[uint16]uintptr:
  1932. fastpathTV.EncMapUint16UintptrV(v, e)
  1933. case *map[uint16]uintptr:
  1934. fastpathTV.EncMapUint16UintptrV(*v, e)
  1935. case map[uint16]int:
  1936. fastpathTV.EncMapUint16IntV(v, e)
  1937. case *map[uint16]int:
  1938. fastpathTV.EncMapUint16IntV(*v, e)
  1939. case map[uint16]int8:
  1940. fastpathTV.EncMapUint16Int8V(v, e)
  1941. case *map[uint16]int8:
  1942. fastpathTV.EncMapUint16Int8V(*v, e)
  1943. case map[uint16]int16:
  1944. fastpathTV.EncMapUint16Int16V(v, e)
  1945. case *map[uint16]int16:
  1946. fastpathTV.EncMapUint16Int16V(*v, e)
  1947. case map[uint16]int32:
  1948. fastpathTV.EncMapUint16Int32V(v, e)
  1949. case *map[uint16]int32:
  1950. fastpathTV.EncMapUint16Int32V(*v, e)
  1951. case map[uint16]int64:
  1952. fastpathTV.EncMapUint16Int64V(v, e)
  1953. case *map[uint16]int64:
  1954. fastpathTV.EncMapUint16Int64V(*v, e)
  1955. case map[uint16]float32:
  1956. fastpathTV.EncMapUint16Float32V(v, e)
  1957. case *map[uint16]float32:
  1958. fastpathTV.EncMapUint16Float32V(*v, e)
  1959. case map[uint16]float64:
  1960. fastpathTV.EncMapUint16Float64V(v, e)
  1961. case *map[uint16]float64:
  1962. fastpathTV.EncMapUint16Float64V(*v, e)
  1963. case map[uint16]bool:
  1964. fastpathTV.EncMapUint16BoolV(v, e)
  1965. case *map[uint16]bool:
  1966. fastpathTV.EncMapUint16BoolV(*v, e)
  1967. case map[uint32]interface{}:
  1968. fastpathTV.EncMapUint32IntfV(v, e)
  1969. case *map[uint32]interface{}:
  1970. fastpathTV.EncMapUint32IntfV(*v, e)
  1971. case map[uint32]string:
  1972. fastpathTV.EncMapUint32StringV(v, e)
  1973. case *map[uint32]string:
  1974. fastpathTV.EncMapUint32StringV(*v, e)
  1975. case map[uint32]uint:
  1976. fastpathTV.EncMapUint32UintV(v, e)
  1977. case *map[uint32]uint:
  1978. fastpathTV.EncMapUint32UintV(*v, e)
  1979. case map[uint32]uint8:
  1980. fastpathTV.EncMapUint32Uint8V(v, e)
  1981. case *map[uint32]uint8:
  1982. fastpathTV.EncMapUint32Uint8V(*v, e)
  1983. case map[uint32]uint16:
  1984. fastpathTV.EncMapUint32Uint16V(v, e)
  1985. case *map[uint32]uint16:
  1986. fastpathTV.EncMapUint32Uint16V(*v, e)
  1987. case map[uint32]uint32:
  1988. fastpathTV.EncMapUint32Uint32V(v, e)
  1989. case *map[uint32]uint32:
  1990. fastpathTV.EncMapUint32Uint32V(*v, e)
  1991. case map[uint32]uint64:
  1992. fastpathTV.EncMapUint32Uint64V(v, e)
  1993. case *map[uint32]uint64:
  1994. fastpathTV.EncMapUint32Uint64V(*v, e)
  1995. case map[uint32]uintptr:
  1996. fastpathTV.EncMapUint32UintptrV(v, e)
  1997. case *map[uint32]uintptr:
  1998. fastpathTV.EncMapUint32UintptrV(*v, e)
  1999. case map[uint32]int:
  2000. fastpathTV.EncMapUint32IntV(v, e)
  2001. case *map[uint32]int:
  2002. fastpathTV.EncMapUint32IntV(*v, e)
  2003. case map[uint32]int8:
  2004. fastpathTV.EncMapUint32Int8V(v, e)
  2005. case *map[uint32]int8:
  2006. fastpathTV.EncMapUint32Int8V(*v, e)
  2007. case map[uint32]int16:
  2008. fastpathTV.EncMapUint32Int16V(v, e)
  2009. case *map[uint32]int16:
  2010. fastpathTV.EncMapUint32Int16V(*v, e)
  2011. case map[uint32]int32:
  2012. fastpathTV.EncMapUint32Int32V(v, e)
  2013. case *map[uint32]int32:
  2014. fastpathTV.EncMapUint32Int32V(*v, e)
  2015. case map[uint32]int64:
  2016. fastpathTV.EncMapUint32Int64V(v, e)
  2017. case *map[uint32]int64:
  2018. fastpathTV.EncMapUint32Int64V(*v, e)
  2019. case map[uint32]float32:
  2020. fastpathTV.EncMapUint32Float32V(v, e)
  2021. case *map[uint32]float32:
  2022. fastpathTV.EncMapUint32Float32V(*v, e)
  2023. case map[uint32]float64:
  2024. fastpathTV.EncMapUint32Float64V(v, e)
  2025. case *map[uint32]float64:
  2026. fastpathTV.EncMapUint32Float64V(*v, e)
  2027. case map[uint32]bool:
  2028. fastpathTV.EncMapUint32BoolV(v, e)
  2029. case *map[uint32]bool:
  2030. fastpathTV.EncMapUint32BoolV(*v, e)
  2031. case map[uint64]interface{}:
  2032. fastpathTV.EncMapUint64IntfV(v, e)
  2033. case *map[uint64]interface{}:
  2034. fastpathTV.EncMapUint64IntfV(*v, e)
  2035. case map[uint64]string:
  2036. fastpathTV.EncMapUint64StringV(v, e)
  2037. case *map[uint64]string:
  2038. fastpathTV.EncMapUint64StringV(*v, e)
  2039. case map[uint64]uint:
  2040. fastpathTV.EncMapUint64UintV(v, e)
  2041. case *map[uint64]uint:
  2042. fastpathTV.EncMapUint64UintV(*v, e)
  2043. case map[uint64]uint8:
  2044. fastpathTV.EncMapUint64Uint8V(v, e)
  2045. case *map[uint64]uint8:
  2046. fastpathTV.EncMapUint64Uint8V(*v, e)
  2047. case map[uint64]uint16:
  2048. fastpathTV.EncMapUint64Uint16V(v, e)
  2049. case *map[uint64]uint16:
  2050. fastpathTV.EncMapUint64Uint16V(*v, e)
  2051. case map[uint64]uint32:
  2052. fastpathTV.EncMapUint64Uint32V(v, e)
  2053. case *map[uint64]uint32:
  2054. fastpathTV.EncMapUint64Uint32V(*v, e)
  2055. case map[uint64]uint64:
  2056. fastpathTV.EncMapUint64Uint64V(v, e)
  2057. case *map[uint64]uint64:
  2058. fastpathTV.EncMapUint64Uint64V(*v, e)
  2059. case map[uint64]uintptr:
  2060. fastpathTV.EncMapUint64UintptrV(v, e)
  2061. case *map[uint64]uintptr:
  2062. fastpathTV.EncMapUint64UintptrV(*v, e)
  2063. case map[uint64]int:
  2064. fastpathTV.EncMapUint64IntV(v, e)
  2065. case *map[uint64]int:
  2066. fastpathTV.EncMapUint64IntV(*v, e)
  2067. case map[uint64]int8:
  2068. fastpathTV.EncMapUint64Int8V(v, e)
  2069. case *map[uint64]int8:
  2070. fastpathTV.EncMapUint64Int8V(*v, e)
  2071. case map[uint64]int16:
  2072. fastpathTV.EncMapUint64Int16V(v, e)
  2073. case *map[uint64]int16:
  2074. fastpathTV.EncMapUint64Int16V(*v, e)
  2075. case map[uint64]int32:
  2076. fastpathTV.EncMapUint64Int32V(v, e)
  2077. case *map[uint64]int32:
  2078. fastpathTV.EncMapUint64Int32V(*v, e)
  2079. case map[uint64]int64:
  2080. fastpathTV.EncMapUint64Int64V(v, e)
  2081. case *map[uint64]int64:
  2082. fastpathTV.EncMapUint64Int64V(*v, e)
  2083. case map[uint64]float32:
  2084. fastpathTV.EncMapUint64Float32V(v, e)
  2085. case *map[uint64]float32:
  2086. fastpathTV.EncMapUint64Float32V(*v, e)
  2087. case map[uint64]float64:
  2088. fastpathTV.EncMapUint64Float64V(v, e)
  2089. case *map[uint64]float64:
  2090. fastpathTV.EncMapUint64Float64V(*v, e)
  2091. case map[uint64]bool:
  2092. fastpathTV.EncMapUint64BoolV(v, e)
  2093. case *map[uint64]bool:
  2094. fastpathTV.EncMapUint64BoolV(*v, e)
  2095. case map[uintptr]interface{}:
  2096. fastpathTV.EncMapUintptrIntfV(v, e)
  2097. case *map[uintptr]interface{}:
  2098. fastpathTV.EncMapUintptrIntfV(*v, e)
  2099. case map[uintptr]string:
  2100. fastpathTV.EncMapUintptrStringV(v, e)
  2101. case *map[uintptr]string:
  2102. fastpathTV.EncMapUintptrStringV(*v, e)
  2103. case map[uintptr]uint:
  2104. fastpathTV.EncMapUintptrUintV(v, e)
  2105. case *map[uintptr]uint:
  2106. fastpathTV.EncMapUintptrUintV(*v, e)
  2107. case map[uintptr]uint8:
  2108. fastpathTV.EncMapUintptrUint8V(v, e)
  2109. case *map[uintptr]uint8:
  2110. fastpathTV.EncMapUintptrUint8V(*v, e)
  2111. case map[uintptr]uint16:
  2112. fastpathTV.EncMapUintptrUint16V(v, e)
  2113. case *map[uintptr]uint16:
  2114. fastpathTV.EncMapUintptrUint16V(*v, e)
  2115. case map[uintptr]uint32:
  2116. fastpathTV.EncMapUintptrUint32V(v, e)
  2117. case *map[uintptr]uint32:
  2118. fastpathTV.EncMapUintptrUint32V(*v, e)
  2119. case map[uintptr]uint64:
  2120. fastpathTV.EncMapUintptrUint64V(v, e)
  2121. case *map[uintptr]uint64:
  2122. fastpathTV.EncMapUintptrUint64V(*v, e)
  2123. case map[uintptr]uintptr:
  2124. fastpathTV.EncMapUintptrUintptrV(v, e)
  2125. case *map[uintptr]uintptr:
  2126. fastpathTV.EncMapUintptrUintptrV(*v, e)
  2127. case map[uintptr]int:
  2128. fastpathTV.EncMapUintptrIntV(v, e)
  2129. case *map[uintptr]int:
  2130. fastpathTV.EncMapUintptrIntV(*v, e)
  2131. case map[uintptr]int8:
  2132. fastpathTV.EncMapUintptrInt8V(v, e)
  2133. case *map[uintptr]int8:
  2134. fastpathTV.EncMapUintptrInt8V(*v, e)
  2135. case map[uintptr]int16:
  2136. fastpathTV.EncMapUintptrInt16V(v, e)
  2137. case *map[uintptr]int16:
  2138. fastpathTV.EncMapUintptrInt16V(*v, e)
  2139. case map[uintptr]int32:
  2140. fastpathTV.EncMapUintptrInt32V(v, e)
  2141. case *map[uintptr]int32:
  2142. fastpathTV.EncMapUintptrInt32V(*v, e)
  2143. case map[uintptr]int64:
  2144. fastpathTV.EncMapUintptrInt64V(v, e)
  2145. case *map[uintptr]int64:
  2146. fastpathTV.EncMapUintptrInt64V(*v, e)
  2147. case map[uintptr]float32:
  2148. fastpathTV.EncMapUintptrFloat32V(v, e)
  2149. case *map[uintptr]float32:
  2150. fastpathTV.EncMapUintptrFloat32V(*v, e)
  2151. case map[uintptr]float64:
  2152. fastpathTV.EncMapUintptrFloat64V(v, e)
  2153. case *map[uintptr]float64:
  2154. fastpathTV.EncMapUintptrFloat64V(*v, e)
  2155. case map[uintptr]bool:
  2156. fastpathTV.EncMapUintptrBoolV(v, e)
  2157. case *map[uintptr]bool:
  2158. fastpathTV.EncMapUintptrBoolV(*v, e)
  2159. case map[int]interface{}:
  2160. fastpathTV.EncMapIntIntfV(v, e)
  2161. case *map[int]interface{}:
  2162. fastpathTV.EncMapIntIntfV(*v, e)
  2163. case map[int]string:
  2164. fastpathTV.EncMapIntStringV(v, e)
  2165. case *map[int]string:
  2166. fastpathTV.EncMapIntStringV(*v, e)
  2167. case map[int]uint:
  2168. fastpathTV.EncMapIntUintV(v, e)
  2169. case *map[int]uint:
  2170. fastpathTV.EncMapIntUintV(*v, e)
  2171. case map[int]uint8:
  2172. fastpathTV.EncMapIntUint8V(v, e)
  2173. case *map[int]uint8:
  2174. fastpathTV.EncMapIntUint8V(*v, e)
  2175. case map[int]uint16:
  2176. fastpathTV.EncMapIntUint16V(v, e)
  2177. case *map[int]uint16:
  2178. fastpathTV.EncMapIntUint16V(*v, e)
  2179. case map[int]uint32:
  2180. fastpathTV.EncMapIntUint32V(v, e)
  2181. case *map[int]uint32:
  2182. fastpathTV.EncMapIntUint32V(*v, e)
  2183. case map[int]uint64:
  2184. fastpathTV.EncMapIntUint64V(v, e)
  2185. case *map[int]uint64:
  2186. fastpathTV.EncMapIntUint64V(*v, e)
  2187. case map[int]uintptr:
  2188. fastpathTV.EncMapIntUintptrV(v, e)
  2189. case *map[int]uintptr:
  2190. fastpathTV.EncMapIntUintptrV(*v, e)
  2191. case map[int]int:
  2192. fastpathTV.EncMapIntIntV(v, e)
  2193. case *map[int]int:
  2194. fastpathTV.EncMapIntIntV(*v, e)
  2195. case map[int]int8:
  2196. fastpathTV.EncMapIntInt8V(v, e)
  2197. case *map[int]int8:
  2198. fastpathTV.EncMapIntInt8V(*v, e)
  2199. case map[int]int16:
  2200. fastpathTV.EncMapIntInt16V(v, e)
  2201. case *map[int]int16:
  2202. fastpathTV.EncMapIntInt16V(*v, e)
  2203. case map[int]int32:
  2204. fastpathTV.EncMapIntInt32V(v, e)
  2205. case *map[int]int32:
  2206. fastpathTV.EncMapIntInt32V(*v, e)
  2207. case map[int]int64:
  2208. fastpathTV.EncMapIntInt64V(v, e)
  2209. case *map[int]int64:
  2210. fastpathTV.EncMapIntInt64V(*v, e)
  2211. case map[int]float32:
  2212. fastpathTV.EncMapIntFloat32V(v, e)
  2213. case *map[int]float32:
  2214. fastpathTV.EncMapIntFloat32V(*v, e)
  2215. case map[int]float64:
  2216. fastpathTV.EncMapIntFloat64V(v, e)
  2217. case *map[int]float64:
  2218. fastpathTV.EncMapIntFloat64V(*v, e)
  2219. case map[int]bool:
  2220. fastpathTV.EncMapIntBoolV(v, e)
  2221. case *map[int]bool:
  2222. fastpathTV.EncMapIntBoolV(*v, e)
  2223. case map[int8]interface{}:
  2224. fastpathTV.EncMapInt8IntfV(v, e)
  2225. case *map[int8]interface{}:
  2226. fastpathTV.EncMapInt8IntfV(*v, e)
  2227. case map[int8]string:
  2228. fastpathTV.EncMapInt8StringV(v, e)
  2229. case *map[int8]string:
  2230. fastpathTV.EncMapInt8StringV(*v, e)
  2231. case map[int8]uint:
  2232. fastpathTV.EncMapInt8UintV(v, e)
  2233. case *map[int8]uint:
  2234. fastpathTV.EncMapInt8UintV(*v, e)
  2235. case map[int8]uint8:
  2236. fastpathTV.EncMapInt8Uint8V(v, e)
  2237. case *map[int8]uint8:
  2238. fastpathTV.EncMapInt8Uint8V(*v, e)
  2239. case map[int8]uint16:
  2240. fastpathTV.EncMapInt8Uint16V(v, e)
  2241. case *map[int8]uint16:
  2242. fastpathTV.EncMapInt8Uint16V(*v, e)
  2243. case map[int8]uint32:
  2244. fastpathTV.EncMapInt8Uint32V(v, e)
  2245. case *map[int8]uint32:
  2246. fastpathTV.EncMapInt8Uint32V(*v, e)
  2247. case map[int8]uint64:
  2248. fastpathTV.EncMapInt8Uint64V(v, e)
  2249. case *map[int8]uint64:
  2250. fastpathTV.EncMapInt8Uint64V(*v, e)
  2251. case map[int8]uintptr:
  2252. fastpathTV.EncMapInt8UintptrV(v, e)
  2253. case *map[int8]uintptr:
  2254. fastpathTV.EncMapInt8UintptrV(*v, e)
  2255. case map[int8]int:
  2256. fastpathTV.EncMapInt8IntV(v, e)
  2257. case *map[int8]int:
  2258. fastpathTV.EncMapInt8IntV(*v, e)
  2259. case map[int8]int8:
  2260. fastpathTV.EncMapInt8Int8V(v, e)
  2261. case *map[int8]int8:
  2262. fastpathTV.EncMapInt8Int8V(*v, e)
  2263. case map[int8]int16:
  2264. fastpathTV.EncMapInt8Int16V(v, e)
  2265. case *map[int8]int16:
  2266. fastpathTV.EncMapInt8Int16V(*v, e)
  2267. case map[int8]int32:
  2268. fastpathTV.EncMapInt8Int32V(v, e)
  2269. case *map[int8]int32:
  2270. fastpathTV.EncMapInt8Int32V(*v, e)
  2271. case map[int8]int64:
  2272. fastpathTV.EncMapInt8Int64V(v, e)
  2273. case *map[int8]int64:
  2274. fastpathTV.EncMapInt8Int64V(*v, e)
  2275. case map[int8]float32:
  2276. fastpathTV.EncMapInt8Float32V(v, e)
  2277. case *map[int8]float32:
  2278. fastpathTV.EncMapInt8Float32V(*v, e)
  2279. case map[int8]float64:
  2280. fastpathTV.EncMapInt8Float64V(v, e)
  2281. case *map[int8]float64:
  2282. fastpathTV.EncMapInt8Float64V(*v, e)
  2283. case map[int8]bool:
  2284. fastpathTV.EncMapInt8BoolV(v, e)
  2285. case *map[int8]bool:
  2286. fastpathTV.EncMapInt8BoolV(*v, e)
  2287. case map[int16]interface{}:
  2288. fastpathTV.EncMapInt16IntfV(v, e)
  2289. case *map[int16]interface{}:
  2290. fastpathTV.EncMapInt16IntfV(*v, e)
  2291. case map[int16]string:
  2292. fastpathTV.EncMapInt16StringV(v, e)
  2293. case *map[int16]string:
  2294. fastpathTV.EncMapInt16StringV(*v, e)
  2295. case map[int16]uint:
  2296. fastpathTV.EncMapInt16UintV(v, e)
  2297. case *map[int16]uint:
  2298. fastpathTV.EncMapInt16UintV(*v, e)
  2299. case map[int16]uint8:
  2300. fastpathTV.EncMapInt16Uint8V(v, e)
  2301. case *map[int16]uint8:
  2302. fastpathTV.EncMapInt16Uint8V(*v, e)
  2303. case map[int16]uint16:
  2304. fastpathTV.EncMapInt16Uint16V(v, e)
  2305. case *map[int16]uint16:
  2306. fastpathTV.EncMapInt16Uint16V(*v, e)
  2307. case map[int16]uint32:
  2308. fastpathTV.EncMapInt16Uint32V(v, e)
  2309. case *map[int16]uint32:
  2310. fastpathTV.EncMapInt16Uint32V(*v, e)
  2311. case map[int16]uint64:
  2312. fastpathTV.EncMapInt16Uint64V(v, e)
  2313. case *map[int16]uint64:
  2314. fastpathTV.EncMapInt16Uint64V(*v, e)
  2315. case map[int16]uintptr:
  2316. fastpathTV.EncMapInt16UintptrV(v, e)
  2317. case *map[int16]uintptr:
  2318. fastpathTV.EncMapInt16UintptrV(*v, e)
  2319. case map[int16]int:
  2320. fastpathTV.EncMapInt16IntV(v, e)
  2321. case *map[int16]int:
  2322. fastpathTV.EncMapInt16IntV(*v, e)
  2323. case map[int16]int8:
  2324. fastpathTV.EncMapInt16Int8V(v, e)
  2325. case *map[int16]int8:
  2326. fastpathTV.EncMapInt16Int8V(*v, e)
  2327. case map[int16]int16:
  2328. fastpathTV.EncMapInt16Int16V(v, e)
  2329. case *map[int16]int16:
  2330. fastpathTV.EncMapInt16Int16V(*v, e)
  2331. case map[int16]int32:
  2332. fastpathTV.EncMapInt16Int32V(v, e)
  2333. case *map[int16]int32:
  2334. fastpathTV.EncMapInt16Int32V(*v, e)
  2335. case map[int16]int64:
  2336. fastpathTV.EncMapInt16Int64V(v, e)
  2337. case *map[int16]int64:
  2338. fastpathTV.EncMapInt16Int64V(*v, e)
  2339. case map[int16]float32:
  2340. fastpathTV.EncMapInt16Float32V(v, e)
  2341. case *map[int16]float32:
  2342. fastpathTV.EncMapInt16Float32V(*v, e)
  2343. case map[int16]float64:
  2344. fastpathTV.EncMapInt16Float64V(v, e)
  2345. case *map[int16]float64:
  2346. fastpathTV.EncMapInt16Float64V(*v, e)
  2347. case map[int16]bool:
  2348. fastpathTV.EncMapInt16BoolV(v, e)
  2349. case *map[int16]bool:
  2350. fastpathTV.EncMapInt16BoolV(*v, e)
  2351. case map[int32]interface{}:
  2352. fastpathTV.EncMapInt32IntfV(v, e)
  2353. case *map[int32]interface{}:
  2354. fastpathTV.EncMapInt32IntfV(*v, e)
  2355. case map[int32]string:
  2356. fastpathTV.EncMapInt32StringV(v, e)
  2357. case *map[int32]string:
  2358. fastpathTV.EncMapInt32StringV(*v, e)
  2359. case map[int32]uint:
  2360. fastpathTV.EncMapInt32UintV(v, e)
  2361. case *map[int32]uint:
  2362. fastpathTV.EncMapInt32UintV(*v, e)
  2363. case map[int32]uint8:
  2364. fastpathTV.EncMapInt32Uint8V(v, e)
  2365. case *map[int32]uint8:
  2366. fastpathTV.EncMapInt32Uint8V(*v, e)
  2367. case map[int32]uint16:
  2368. fastpathTV.EncMapInt32Uint16V(v, e)
  2369. case *map[int32]uint16:
  2370. fastpathTV.EncMapInt32Uint16V(*v, e)
  2371. case map[int32]uint32:
  2372. fastpathTV.EncMapInt32Uint32V(v, e)
  2373. case *map[int32]uint32:
  2374. fastpathTV.EncMapInt32Uint32V(*v, e)
  2375. case map[int32]uint64:
  2376. fastpathTV.EncMapInt32Uint64V(v, e)
  2377. case *map[int32]uint64:
  2378. fastpathTV.EncMapInt32Uint64V(*v, e)
  2379. case map[int32]uintptr:
  2380. fastpathTV.EncMapInt32UintptrV(v, e)
  2381. case *map[int32]uintptr:
  2382. fastpathTV.EncMapInt32UintptrV(*v, e)
  2383. case map[int32]int:
  2384. fastpathTV.EncMapInt32IntV(v, e)
  2385. case *map[int32]int:
  2386. fastpathTV.EncMapInt32IntV(*v, e)
  2387. case map[int32]int8:
  2388. fastpathTV.EncMapInt32Int8V(v, e)
  2389. case *map[int32]int8:
  2390. fastpathTV.EncMapInt32Int8V(*v, e)
  2391. case map[int32]int16:
  2392. fastpathTV.EncMapInt32Int16V(v, e)
  2393. case *map[int32]int16:
  2394. fastpathTV.EncMapInt32Int16V(*v, e)
  2395. case map[int32]int32:
  2396. fastpathTV.EncMapInt32Int32V(v, e)
  2397. case *map[int32]int32:
  2398. fastpathTV.EncMapInt32Int32V(*v, e)
  2399. case map[int32]int64:
  2400. fastpathTV.EncMapInt32Int64V(v, e)
  2401. case *map[int32]int64:
  2402. fastpathTV.EncMapInt32Int64V(*v, e)
  2403. case map[int32]float32:
  2404. fastpathTV.EncMapInt32Float32V(v, e)
  2405. case *map[int32]float32:
  2406. fastpathTV.EncMapInt32Float32V(*v, e)
  2407. case map[int32]float64:
  2408. fastpathTV.EncMapInt32Float64V(v, e)
  2409. case *map[int32]float64:
  2410. fastpathTV.EncMapInt32Float64V(*v, e)
  2411. case map[int32]bool:
  2412. fastpathTV.EncMapInt32BoolV(v, e)
  2413. case *map[int32]bool:
  2414. fastpathTV.EncMapInt32BoolV(*v, e)
  2415. case map[int64]interface{}:
  2416. fastpathTV.EncMapInt64IntfV(v, e)
  2417. case *map[int64]interface{}:
  2418. fastpathTV.EncMapInt64IntfV(*v, e)
  2419. case map[int64]string:
  2420. fastpathTV.EncMapInt64StringV(v, e)
  2421. case *map[int64]string:
  2422. fastpathTV.EncMapInt64StringV(*v, e)
  2423. case map[int64]uint:
  2424. fastpathTV.EncMapInt64UintV(v, e)
  2425. case *map[int64]uint:
  2426. fastpathTV.EncMapInt64UintV(*v, e)
  2427. case map[int64]uint8:
  2428. fastpathTV.EncMapInt64Uint8V(v, e)
  2429. case *map[int64]uint8:
  2430. fastpathTV.EncMapInt64Uint8V(*v, e)
  2431. case map[int64]uint16:
  2432. fastpathTV.EncMapInt64Uint16V(v, e)
  2433. case *map[int64]uint16:
  2434. fastpathTV.EncMapInt64Uint16V(*v, e)
  2435. case map[int64]uint32:
  2436. fastpathTV.EncMapInt64Uint32V(v, e)
  2437. case *map[int64]uint32:
  2438. fastpathTV.EncMapInt64Uint32V(*v, e)
  2439. case map[int64]uint64:
  2440. fastpathTV.EncMapInt64Uint64V(v, e)
  2441. case *map[int64]uint64:
  2442. fastpathTV.EncMapInt64Uint64V(*v, e)
  2443. case map[int64]uintptr:
  2444. fastpathTV.EncMapInt64UintptrV(v, e)
  2445. case *map[int64]uintptr:
  2446. fastpathTV.EncMapInt64UintptrV(*v, e)
  2447. case map[int64]int:
  2448. fastpathTV.EncMapInt64IntV(v, e)
  2449. case *map[int64]int:
  2450. fastpathTV.EncMapInt64IntV(*v, e)
  2451. case map[int64]int8:
  2452. fastpathTV.EncMapInt64Int8V(v, e)
  2453. case *map[int64]int8:
  2454. fastpathTV.EncMapInt64Int8V(*v, e)
  2455. case map[int64]int16:
  2456. fastpathTV.EncMapInt64Int16V(v, e)
  2457. case *map[int64]int16:
  2458. fastpathTV.EncMapInt64Int16V(*v, e)
  2459. case map[int64]int32:
  2460. fastpathTV.EncMapInt64Int32V(v, e)
  2461. case *map[int64]int32:
  2462. fastpathTV.EncMapInt64Int32V(*v, e)
  2463. case map[int64]int64:
  2464. fastpathTV.EncMapInt64Int64V(v, e)
  2465. case *map[int64]int64:
  2466. fastpathTV.EncMapInt64Int64V(*v, e)
  2467. case map[int64]float32:
  2468. fastpathTV.EncMapInt64Float32V(v, e)
  2469. case *map[int64]float32:
  2470. fastpathTV.EncMapInt64Float32V(*v, e)
  2471. case map[int64]float64:
  2472. fastpathTV.EncMapInt64Float64V(v, e)
  2473. case *map[int64]float64:
  2474. fastpathTV.EncMapInt64Float64V(*v, e)
  2475. case map[int64]bool:
  2476. fastpathTV.EncMapInt64BoolV(v, e)
  2477. case *map[int64]bool:
  2478. fastpathTV.EncMapInt64BoolV(*v, e)
  2479. case map[bool]interface{}:
  2480. fastpathTV.EncMapBoolIntfV(v, e)
  2481. case *map[bool]interface{}:
  2482. fastpathTV.EncMapBoolIntfV(*v, e)
  2483. case map[bool]string:
  2484. fastpathTV.EncMapBoolStringV(v, e)
  2485. case *map[bool]string:
  2486. fastpathTV.EncMapBoolStringV(*v, e)
  2487. case map[bool]uint:
  2488. fastpathTV.EncMapBoolUintV(v, e)
  2489. case *map[bool]uint:
  2490. fastpathTV.EncMapBoolUintV(*v, e)
  2491. case map[bool]uint8:
  2492. fastpathTV.EncMapBoolUint8V(v, e)
  2493. case *map[bool]uint8:
  2494. fastpathTV.EncMapBoolUint8V(*v, e)
  2495. case map[bool]uint16:
  2496. fastpathTV.EncMapBoolUint16V(v, e)
  2497. case *map[bool]uint16:
  2498. fastpathTV.EncMapBoolUint16V(*v, e)
  2499. case map[bool]uint32:
  2500. fastpathTV.EncMapBoolUint32V(v, e)
  2501. case *map[bool]uint32:
  2502. fastpathTV.EncMapBoolUint32V(*v, e)
  2503. case map[bool]uint64:
  2504. fastpathTV.EncMapBoolUint64V(v, e)
  2505. case *map[bool]uint64:
  2506. fastpathTV.EncMapBoolUint64V(*v, e)
  2507. case map[bool]uintptr:
  2508. fastpathTV.EncMapBoolUintptrV(v, e)
  2509. case *map[bool]uintptr:
  2510. fastpathTV.EncMapBoolUintptrV(*v, e)
  2511. case map[bool]int:
  2512. fastpathTV.EncMapBoolIntV(v, e)
  2513. case *map[bool]int:
  2514. fastpathTV.EncMapBoolIntV(*v, e)
  2515. case map[bool]int8:
  2516. fastpathTV.EncMapBoolInt8V(v, e)
  2517. case *map[bool]int8:
  2518. fastpathTV.EncMapBoolInt8V(*v, e)
  2519. case map[bool]int16:
  2520. fastpathTV.EncMapBoolInt16V(v, e)
  2521. case *map[bool]int16:
  2522. fastpathTV.EncMapBoolInt16V(*v, e)
  2523. case map[bool]int32:
  2524. fastpathTV.EncMapBoolInt32V(v, e)
  2525. case *map[bool]int32:
  2526. fastpathTV.EncMapBoolInt32V(*v, e)
  2527. case map[bool]int64:
  2528. fastpathTV.EncMapBoolInt64V(v, e)
  2529. case *map[bool]int64:
  2530. fastpathTV.EncMapBoolInt64V(*v, e)
  2531. case map[bool]float32:
  2532. fastpathTV.EncMapBoolFloat32V(v, e)
  2533. case *map[bool]float32:
  2534. fastpathTV.EncMapBoolFloat32V(*v, e)
  2535. case map[bool]float64:
  2536. fastpathTV.EncMapBoolFloat64V(v, e)
  2537. case *map[bool]float64:
  2538. fastpathTV.EncMapBoolFloat64V(*v, e)
  2539. case map[bool]bool:
  2540. fastpathTV.EncMapBoolBoolV(v, e)
  2541. case *map[bool]bool:
  2542. fastpathTV.EncMapBoolBoolV(*v, e)
  2543. default:
  2544. _ = v // TODO: workaround https://github.com/golang/go/issues/12927 (remove after go 1.6 release)
  2545. return false
  2546. }
  2547. return true
  2548. }
  2549. // -- -- fast path functions
  2550. func (e *Encoder) fastpathEncSliceIntfR(f *codecFnInfo, rv reflect.Value) {
  2551. if f.ti.mbs {
  2552. fastpathTV.EncAsMapSliceIntfV(rv2i(rv).([]interface{}), e)
  2553. } else {
  2554. fastpathTV.EncSliceIntfV(rv2i(rv).([]interface{}), e)
  2555. }
  2556. }
  2557. func (_ fastpathT) EncSliceIntfV(v []interface{}, e *Encoder) {
  2558. ee, esep := e.e, e.hh.hasElemSeparators()
  2559. ee.WriteArrayStart(len(v))
  2560. for _, v2 := range v {
  2561. if esep {
  2562. ee.WriteArrayElem()
  2563. }
  2564. e.encode(v2)
  2565. }
  2566. ee.WriteArrayEnd()
  2567. }
  2568. func (_ fastpathT) EncAsMapSliceIntfV(v []interface{}, e *Encoder) {
  2569. ee, esep := e.e, e.hh.hasElemSeparators()
  2570. if len(v)%2 == 1 {
  2571. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2572. return
  2573. }
  2574. ee.WriteMapStart(len(v) / 2)
  2575. for j, v2 := range v {
  2576. if esep {
  2577. if j%2 == 0 {
  2578. ee.WriteMapElemKey()
  2579. } else {
  2580. ee.WriteMapElemValue()
  2581. }
  2582. }
  2583. e.encode(v2)
  2584. }
  2585. ee.WriteMapEnd()
  2586. }
  2587. func (e *Encoder) fastpathEncSliceStringR(f *codecFnInfo, rv reflect.Value) {
  2588. if f.ti.mbs {
  2589. fastpathTV.EncAsMapSliceStringV(rv2i(rv).([]string), e)
  2590. } else {
  2591. fastpathTV.EncSliceStringV(rv2i(rv).([]string), e)
  2592. }
  2593. }
  2594. func (_ fastpathT) EncSliceStringV(v []string, e *Encoder) {
  2595. ee, esep := e.e, e.hh.hasElemSeparators()
  2596. ee.WriteArrayStart(len(v))
  2597. for _, v2 := range v {
  2598. if esep {
  2599. ee.WriteArrayElem()
  2600. }
  2601. ee.EncodeString(c_UTF8, v2)
  2602. }
  2603. ee.WriteArrayEnd()
  2604. }
  2605. func (_ fastpathT) EncAsMapSliceStringV(v []string, e *Encoder) {
  2606. ee, esep := e.e, e.hh.hasElemSeparators()
  2607. if len(v)%2 == 1 {
  2608. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2609. return
  2610. }
  2611. ee.WriteMapStart(len(v) / 2)
  2612. for j, v2 := range v {
  2613. if esep {
  2614. if j%2 == 0 {
  2615. ee.WriteMapElemKey()
  2616. } else {
  2617. ee.WriteMapElemValue()
  2618. }
  2619. }
  2620. ee.EncodeString(c_UTF8, v2)
  2621. }
  2622. ee.WriteMapEnd()
  2623. }
  2624. func (e *Encoder) fastpathEncSliceFloat32R(f *codecFnInfo, rv reflect.Value) {
  2625. if f.ti.mbs {
  2626. fastpathTV.EncAsMapSliceFloat32V(rv2i(rv).([]float32), e)
  2627. } else {
  2628. fastpathTV.EncSliceFloat32V(rv2i(rv).([]float32), e)
  2629. }
  2630. }
  2631. func (_ fastpathT) EncSliceFloat32V(v []float32, e *Encoder) {
  2632. ee, esep := e.e, e.hh.hasElemSeparators()
  2633. ee.WriteArrayStart(len(v))
  2634. for _, v2 := range v {
  2635. if esep {
  2636. ee.WriteArrayElem()
  2637. }
  2638. ee.EncodeFloat32(v2)
  2639. }
  2640. ee.WriteArrayEnd()
  2641. }
  2642. func (_ fastpathT) EncAsMapSliceFloat32V(v []float32, e *Encoder) {
  2643. ee, esep := e.e, e.hh.hasElemSeparators()
  2644. if len(v)%2 == 1 {
  2645. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2646. return
  2647. }
  2648. ee.WriteMapStart(len(v) / 2)
  2649. for j, v2 := range v {
  2650. if esep {
  2651. if j%2 == 0 {
  2652. ee.WriteMapElemKey()
  2653. } else {
  2654. ee.WriteMapElemValue()
  2655. }
  2656. }
  2657. ee.EncodeFloat32(v2)
  2658. }
  2659. ee.WriteMapEnd()
  2660. }
  2661. func (e *Encoder) fastpathEncSliceFloat64R(f *codecFnInfo, rv reflect.Value) {
  2662. if f.ti.mbs {
  2663. fastpathTV.EncAsMapSliceFloat64V(rv2i(rv).([]float64), e)
  2664. } else {
  2665. fastpathTV.EncSliceFloat64V(rv2i(rv).([]float64), e)
  2666. }
  2667. }
  2668. func (_ fastpathT) EncSliceFloat64V(v []float64, e *Encoder) {
  2669. ee, esep := e.e, e.hh.hasElemSeparators()
  2670. ee.WriteArrayStart(len(v))
  2671. for _, v2 := range v {
  2672. if esep {
  2673. ee.WriteArrayElem()
  2674. }
  2675. ee.EncodeFloat64(v2)
  2676. }
  2677. ee.WriteArrayEnd()
  2678. }
  2679. func (_ fastpathT) EncAsMapSliceFloat64V(v []float64, e *Encoder) {
  2680. ee, esep := e.e, e.hh.hasElemSeparators()
  2681. if len(v)%2 == 1 {
  2682. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2683. return
  2684. }
  2685. ee.WriteMapStart(len(v) / 2)
  2686. for j, v2 := range v {
  2687. if esep {
  2688. if j%2 == 0 {
  2689. ee.WriteMapElemKey()
  2690. } else {
  2691. ee.WriteMapElemValue()
  2692. }
  2693. }
  2694. ee.EncodeFloat64(v2)
  2695. }
  2696. ee.WriteMapEnd()
  2697. }
  2698. func (e *Encoder) fastpathEncSliceUintR(f *codecFnInfo, rv reflect.Value) {
  2699. if f.ti.mbs {
  2700. fastpathTV.EncAsMapSliceUintV(rv2i(rv).([]uint), e)
  2701. } else {
  2702. fastpathTV.EncSliceUintV(rv2i(rv).([]uint), e)
  2703. }
  2704. }
  2705. func (_ fastpathT) EncSliceUintV(v []uint, e *Encoder) {
  2706. ee, esep := e.e, e.hh.hasElemSeparators()
  2707. ee.WriteArrayStart(len(v))
  2708. for _, v2 := range v {
  2709. if esep {
  2710. ee.WriteArrayElem()
  2711. }
  2712. ee.EncodeUint(uint64(v2))
  2713. }
  2714. ee.WriteArrayEnd()
  2715. }
  2716. func (_ fastpathT) EncAsMapSliceUintV(v []uint, e *Encoder) {
  2717. ee, esep := e.e, e.hh.hasElemSeparators()
  2718. if len(v)%2 == 1 {
  2719. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2720. return
  2721. }
  2722. ee.WriteMapStart(len(v) / 2)
  2723. for j, v2 := range v {
  2724. if esep {
  2725. if j%2 == 0 {
  2726. ee.WriteMapElemKey()
  2727. } else {
  2728. ee.WriteMapElemValue()
  2729. }
  2730. }
  2731. ee.EncodeUint(uint64(v2))
  2732. }
  2733. ee.WriteMapEnd()
  2734. }
  2735. func (e *Encoder) fastpathEncSliceUint16R(f *codecFnInfo, rv reflect.Value) {
  2736. if f.ti.mbs {
  2737. fastpathTV.EncAsMapSliceUint16V(rv2i(rv).([]uint16), e)
  2738. } else {
  2739. fastpathTV.EncSliceUint16V(rv2i(rv).([]uint16), e)
  2740. }
  2741. }
  2742. func (_ fastpathT) EncSliceUint16V(v []uint16, e *Encoder) {
  2743. ee, esep := e.e, e.hh.hasElemSeparators()
  2744. ee.WriteArrayStart(len(v))
  2745. for _, v2 := range v {
  2746. if esep {
  2747. ee.WriteArrayElem()
  2748. }
  2749. ee.EncodeUint(uint64(v2))
  2750. }
  2751. ee.WriteArrayEnd()
  2752. }
  2753. func (_ fastpathT) EncAsMapSliceUint16V(v []uint16, e *Encoder) {
  2754. ee, esep := e.e, e.hh.hasElemSeparators()
  2755. if len(v)%2 == 1 {
  2756. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2757. return
  2758. }
  2759. ee.WriteMapStart(len(v) / 2)
  2760. for j, v2 := range v {
  2761. if esep {
  2762. if j%2 == 0 {
  2763. ee.WriteMapElemKey()
  2764. } else {
  2765. ee.WriteMapElemValue()
  2766. }
  2767. }
  2768. ee.EncodeUint(uint64(v2))
  2769. }
  2770. ee.WriteMapEnd()
  2771. }
  2772. func (e *Encoder) fastpathEncSliceUint32R(f *codecFnInfo, rv reflect.Value) {
  2773. if f.ti.mbs {
  2774. fastpathTV.EncAsMapSliceUint32V(rv2i(rv).([]uint32), e)
  2775. } else {
  2776. fastpathTV.EncSliceUint32V(rv2i(rv).([]uint32), e)
  2777. }
  2778. }
  2779. func (_ fastpathT) EncSliceUint32V(v []uint32, e *Encoder) {
  2780. ee, esep := e.e, e.hh.hasElemSeparators()
  2781. ee.WriteArrayStart(len(v))
  2782. for _, v2 := range v {
  2783. if esep {
  2784. ee.WriteArrayElem()
  2785. }
  2786. ee.EncodeUint(uint64(v2))
  2787. }
  2788. ee.WriteArrayEnd()
  2789. }
  2790. func (_ fastpathT) EncAsMapSliceUint32V(v []uint32, e *Encoder) {
  2791. ee, esep := e.e, e.hh.hasElemSeparators()
  2792. if len(v)%2 == 1 {
  2793. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2794. return
  2795. }
  2796. ee.WriteMapStart(len(v) / 2)
  2797. for j, v2 := range v {
  2798. if esep {
  2799. if j%2 == 0 {
  2800. ee.WriteMapElemKey()
  2801. } else {
  2802. ee.WriteMapElemValue()
  2803. }
  2804. }
  2805. ee.EncodeUint(uint64(v2))
  2806. }
  2807. ee.WriteMapEnd()
  2808. }
  2809. func (e *Encoder) fastpathEncSliceUint64R(f *codecFnInfo, rv reflect.Value) {
  2810. if f.ti.mbs {
  2811. fastpathTV.EncAsMapSliceUint64V(rv2i(rv).([]uint64), e)
  2812. } else {
  2813. fastpathTV.EncSliceUint64V(rv2i(rv).([]uint64), e)
  2814. }
  2815. }
  2816. func (_ fastpathT) EncSliceUint64V(v []uint64, e *Encoder) {
  2817. ee, esep := e.e, e.hh.hasElemSeparators()
  2818. ee.WriteArrayStart(len(v))
  2819. for _, v2 := range v {
  2820. if esep {
  2821. ee.WriteArrayElem()
  2822. }
  2823. ee.EncodeUint(uint64(v2))
  2824. }
  2825. ee.WriteArrayEnd()
  2826. }
  2827. func (_ fastpathT) EncAsMapSliceUint64V(v []uint64, e *Encoder) {
  2828. ee, esep := e.e, e.hh.hasElemSeparators()
  2829. if len(v)%2 == 1 {
  2830. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2831. return
  2832. }
  2833. ee.WriteMapStart(len(v) / 2)
  2834. for j, v2 := range v {
  2835. if esep {
  2836. if j%2 == 0 {
  2837. ee.WriteMapElemKey()
  2838. } else {
  2839. ee.WriteMapElemValue()
  2840. }
  2841. }
  2842. ee.EncodeUint(uint64(v2))
  2843. }
  2844. ee.WriteMapEnd()
  2845. }
  2846. func (e *Encoder) fastpathEncSliceUintptrR(f *codecFnInfo, rv reflect.Value) {
  2847. if f.ti.mbs {
  2848. fastpathTV.EncAsMapSliceUintptrV(rv2i(rv).([]uintptr), e)
  2849. } else {
  2850. fastpathTV.EncSliceUintptrV(rv2i(rv).([]uintptr), e)
  2851. }
  2852. }
  2853. func (_ fastpathT) EncSliceUintptrV(v []uintptr, e *Encoder) {
  2854. ee, esep := e.e, e.hh.hasElemSeparators()
  2855. ee.WriteArrayStart(len(v))
  2856. for _, v2 := range v {
  2857. if esep {
  2858. ee.WriteArrayElem()
  2859. }
  2860. e.encode(v2)
  2861. }
  2862. ee.WriteArrayEnd()
  2863. }
  2864. func (_ fastpathT) EncAsMapSliceUintptrV(v []uintptr, e *Encoder) {
  2865. ee, esep := e.e, e.hh.hasElemSeparators()
  2866. if len(v)%2 == 1 {
  2867. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2868. return
  2869. }
  2870. ee.WriteMapStart(len(v) / 2)
  2871. for j, v2 := range v {
  2872. if esep {
  2873. if j%2 == 0 {
  2874. ee.WriteMapElemKey()
  2875. } else {
  2876. ee.WriteMapElemValue()
  2877. }
  2878. }
  2879. e.encode(v2)
  2880. }
  2881. ee.WriteMapEnd()
  2882. }
  2883. func (e *Encoder) fastpathEncSliceIntR(f *codecFnInfo, rv reflect.Value) {
  2884. if f.ti.mbs {
  2885. fastpathTV.EncAsMapSliceIntV(rv2i(rv).([]int), e)
  2886. } else {
  2887. fastpathTV.EncSliceIntV(rv2i(rv).([]int), e)
  2888. }
  2889. }
  2890. func (_ fastpathT) EncSliceIntV(v []int, e *Encoder) {
  2891. ee, esep := e.e, e.hh.hasElemSeparators()
  2892. ee.WriteArrayStart(len(v))
  2893. for _, v2 := range v {
  2894. if esep {
  2895. ee.WriteArrayElem()
  2896. }
  2897. ee.EncodeInt(int64(v2))
  2898. }
  2899. ee.WriteArrayEnd()
  2900. }
  2901. func (_ fastpathT) EncAsMapSliceIntV(v []int, e *Encoder) {
  2902. ee, esep := e.e, e.hh.hasElemSeparators()
  2903. if len(v)%2 == 1 {
  2904. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2905. return
  2906. }
  2907. ee.WriteMapStart(len(v) / 2)
  2908. for j, v2 := range v {
  2909. if esep {
  2910. if j%2 == 0 {
  2911. ee.WriteMapElemKey()
  2912. } else {
  2913. ee.WriteMapElemValue()
  2914. }
  2915. }
  2916. ee.EncodeInt(int64(v2))
  2917. }
  2918. ee.WriteMapEnd()
  2919. }
  2920. func (e *Encoder) fastpathEncSliceInt8R(f *codecFnInfo, rv reflect.Value) {
  2921. if f.ti.mbs {
  2922. fastpathTV.EncAsMapSliceInt8V(rv2i(rv).([]int8), e)
  2923. } else {
  2924. fastpathTV.EncSliceInt8V(rv2i(rv).([]int8), e)
  2925. }
  2926. }
  2927. func (_ fastpathT) EncSliceInt8V(v []int8, e *Encoder) {
  2928. ee, esep := e.e, e.hh.hasElemSeparators()
  2929. ee.WriteArrayStart(len(v))
  2930. for _, v2 := range v {
  2931. if esep {
  2932. ee.WriteArrayElem()
  2933. }
  2934. ee.EncodeInt(int64(v2))
  2935. }
  2936. ee.WriteArrayEnd()
  2937. }
  2938. func (_ fastpathT) EncAsMapSliceInt8V(v []int8, e *Encoder) {
  2939. ee, esep := e.e, e.hh.hasElemSeparators()
  2940. if len(v)%2 == 1 {
  2941. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2942. return
  2943. }
  2944. ee.WriteMapStart(len(v) / 2)
  2945. for j, v2 := range v {
  2946. if esep {
  2947. if j%2 == 0 {
  2948. ee.WriteMapElemKey()
  2949. } else {
  2950. ee.WriteMapElemValue()
  2951. }
  2952. }
  2953. ee.EncodeInt(int64(v2))
  2954. }
  2955. ee.WriteMapEnd()
  2956. }
  2957. func (e *Encoder) fastpathEncSliceInt16R(f *codecFnInfo, rv reflect.Value) {
  2958. if f.ti.mbs {
  2959. fastpathTV.EncAsMapSliceInt16V(rv2i(rv).([]int16), e)
  2960. } else {
  2961. fastpathTV.EncSliceInt16V(rv2i(rv).([]int16), e)
  2962. }
  2963. }
  2964. func (_ fastpathT) EncSliceInt16V(v []int16, e *Encoder) {
  2965. ee, esep := e.e, e.hh.hasElemSeparators()
  2966. ee.WriteArrayStart(len(v))
  2967. for _, v2 := range v {
  2968. if esep {
  2969. ee.WriteArrayElem()
  2970. }
  2971. ee.EncodeInt(int64(v2))
  2972. }
  2973. ee.WriteArrayEnd()
  2974. }
  2975. func (_ fastpathT) EncAsMapSliceInt16V(v []int16, e *Encoder) {
  2976. ee, esep := e.e, e.hh.hasElemSeparators()
  2977. if len(v)%2 == 1 {
  2978. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  2979. return
  2980. }
  2981. ee.WriteMapStart(len(v) / 2)
  2982. for j, v2 := range v {
  2983. if esep {
  2984. if j%2 == 0 {
  2985. ee.WriteMapElemKey()
  2986. } else {
  2987. ee.WriteMapElemValue()
  2988. }
  2989. }
  2990. ee.EncodeInt(int64(v2))
  2991. }
  2992. ee.WriteMapEnd()
  2993. }
  2994. func (e *Encoder) fastpathEncSliceInt32R(f *codecFnInfo, rv reflect.Value) {
  2995. if f.ti.mbs {
  2996. fastpathTV.EncAsMapSliceInt32V(rv2i(rv).([]int32), e)
  2997. } else {
  2998. fastpathTV.EncSliceInt32V(rv2i(rv).([]int32), e)
  2999. }
  3000. }
  3001. func (_ fastpathT) EncSliceInt32V(v []int32, e *Encoder) {
  3002. ee, esep := e.e, e.hh.hasElemSeparators()
  3003. ee.WriteArrayStart(len(v))
  3004. for _, v2 := range v {
  3005. if esep {
  3006. ee.WriteArrayElem()
  3007. }
  3008. ee.EncodeInt(int64(v2))
  3009. }
  3010. ee.WriteArrayEnd()
  3011. }
  3012. func (_ fastpathT) EncAsMapSliceInt32V(v []int32, e *Encoder) {
  3013. ee, esep := e.e, e.hh.hasElemSeparators()
  3014. if len(v)%2 == 1 {
  3015. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  3016. return
  3017. }
  3018. ee.WriteMapStart(len(v) / 2)
  3019. for j, v2 := range v {
  3020. if esep {
  3021. if j%2 == 0 {
  3022. ee.WriteMapElemKey()
  3023. } else {
  3024. ee.WriteMapElemValue()
  3025. }
  3026. }
  3027. ee.EncodeInt(int64(v2))
  3028. }
  3029. ee.WriteMapEnd()
  3030. }
  3031. func (e *Encoder) fastpathEncSliceInt64R(f *codecFnInfo, rv reflect.Value) {
  3032. if f.ti.mbs {
  3033. fastpathTV.EncAsMapSliceInt64V(rv2i(rv).([]int64), e)
  3034. } else {
  3035. fastpathTV.EncSliceInt64V(rv2i(rv).([]int64), e)
  3036. }
  3037. }
  3038. func (_ fastpathT) EncSliceInt64V(v []int64, e *Encoder) {
  3039. ee, esep := e.e, e.hh.hasElemSeparators()
  3040. ee.WriteArrayStart(len(v))
  3041. for _, v2 := range v {
  3042. if esep {
  3043. ee.WriteArrayElem()
  3044. }
  3045. ee.EncodeInt(int64(v2))
  3046. }
  3047. ee.WriteArrayEnd()
  3048. }
  3049. func (_ fastpathT) EncAsMapSliceInt64V(v []int64, e *Encoder) {
  3050. ee, esep := e.e, e.hh.hasElemSeparators()
  3051. if len(v)%2 == 1 {
  3052. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  3053. return
  3054. }
  3055. ee.WriteMapStart(len(v) / 2)
  3056. for j, v2 := range v {
  3057. if esep {
  3058. if j%2 == 0 {
  3059. ee.WriteMapElemKey()
  3060. } else {
  3061. ee.WriteMapElemValue()
  3062. }
  3063. }
  3064. ee.EncodeInt(int64(v2))
  3065. }
  3066. ee.WriteMapEnd()
  3067. }
  3068. func (e *Encoder) fastpathEncSliceBoolR(f *codecFnInfo, rv reflect.Value) {
  3069. if f.ti.mbs {
  3070. fastpathTV.EncAsMapSliceBoolV(rv2i(rv).([]bool), e)
  3071. } else {
  3072. fastpathTV.EncSliceBoolV(rv2i(rv).([]bool), e)
  3073. }
  3074. }
  3075. func (_ fastpathT) EncSliceBoolV(v []bool, e *Encoder) {
  3076. ee, esep := e.e, e.hh.hasElemSeparators()
  3077. ee.WriteArrayStart(len(v))
  3078. for _, v2 := range v {
  3079. if esep {
  3080. ee.WriteArrayElem()
  3081. }
  3082. ee.EncodeBool(v2)
  3083. }
  3084. ee.WriteArrayEnd()
  3085. }
  3086. func (_ fastpathT) EncAsMapSliceBoolV(v []bool, e *Encoder) {
  3087. ee, esep := e.e, e.hh.hasElemSeparators()
  3088. if len(v)%2 == 1 {
  3089. e.errorf("mapBySlice requires even slice length, but got %v", len(v))
  3090. return
  3091. }
  3092. ee.WriteMapStart(len(v) / 2)
  3093. for j, v2 := range v {
  3094. if esep {
  3095. if j%2 == 0 {
  3096. ee.WriteMapElemKey()
  3097. } else {
  3098. ee.WriteMapElemValue()
  3099. }
  3100. }
  3101. ee.EncodeBool(v2)
  3102. }
  3103. ee.WriteMapEnd()
  3104. }
  3105. func (e *Encoder) fastpathEncMapIntfIntfR(f *codecFnInfo, rv reflect.Value) {
  3106. fastpathTV.EncMapIntfIntfV(rv2i(rv).(map[interface{}]interface{}), e)
  3107. }
  3108. func (_ fastpathT) EncMapIntfIntfV(v map[interface{}]interface{}, e *Encoder) {
  3109. ee, esep := e.e, e.hh.hasElemSeparators()
  3110. ee.WriteMapStart(len(v))
  3111. if e.h.Canonical {
  3112. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3113. e2 := NewEncoderBytes(&mksv, e.hh)
  3114. v2 := make([]bytesI, len(v))
  3115. var i, l int
  3116. var vp *bytesI
  3117. for k2, _ := range v {
  3118. l = len(mksv)
  3119. e2.MustEncode(k2)
  3120. vp = &v2[i]
  3121. vp.v = mksv[l:]
  3122. vp.i = k2
  3123. i++
  3124. }
  3125. sort.Sort(bytesISlice(v2))
  3126. for j := range v2 {
  3127. if esep {
  3128. ee.WriteMapElemKey()
  3129. }
  3130. e.asis(v2[j].v)
  3131. if esep {
  3132. ee.WriteMapElemValue()
  3133. }
  3134. e.encode(v[v2[j].i])
  3135. }
  3136. } else {
  3137. for k2, v2 := range v {
  3138. if esep {
  3139. ee.WriteMapElemKey()
  3140. }
  3141. e.encode(k2)
  3142. if esep {
  3143. ee.WriteMapElemValue()
  3144. }
  3145. e.encode(v2)
  3146. }
  3147. }
  3148. ee.WriteMapEnd()
  3149. }
  3150. func (e *Encoder) fastpathEncMapIntfStringR(f *codecFnInfo, rv reflect.Value) {
  3151. fastpathTV.EncMapIntfStringV(rv2i(rv).(map[interface{}]string), e)
  3152. }
  3153. func (_ fastpathT) EncMapIntfStringV(v map[interface{}]string, e *Encoder) {
  3154. ee, esep := e.e, e.hh.hasElemSeparators()
  3155. ee.WriteMapStart(len(v))
  3156. if e.h.Canonical {
  3157. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3158. e2 := NewEncoderBytes(&mksv, e.hh)
  3159. v2 := make([]bytesI, len(v))
  3160. var i, l int
  3161. var vp *bytesI
  3162. for k2, _ := range v {
  3163. l = len(mksv)
  3164. e2.MustEncode(k2)
  3165. vp = &v2[i]
  3166. vp.v = mksv[l:]
  3167. vp.i = k2
  3168. i++
  3169. }
  3170. sort.Sort(bytesISlice(v2))
  3171. for j := range v2 {
  3172. if esep {
  3173. ee.WriteMapElemKey()
  3174. }
  3175. e.asis(v2[j].v)
  3176. if esep {
  3177. ee.WriteMapElemValue()
  3178. }
  3179. e.encode(v[v2[j].i])
  3180. }
  3181. } else {
  3182. for k2, v2 := range v {
  3183. if esep {
  3184. ee.WriteMapElemKey()
  3185. }
  3186. e.encode(k2)
  3187. if esep {
  3188. ee.WriteMapElemValue()
  3189. }
  3190. ee.EncodeString(c_UTF8, v2)
  3191. }
  3192. }
  3193. ee.WriteMapEnd()
  3194. }
  3195. func (e *Encoder) fastpathEncMapIntfUintR(f *codecFnInfo, rv reflect.Value) {
  3196. fastpathTV.EncMapIntfUintV(rv2i(rv).(map[interface{}]uint), e)
  3197. }
  3198. func (_ fastpathT) EncMapIntfUintV(v map[interface{}]uint, e *Encoder) {
  3199. ee, esep := e.e, e.hh.hasElemSeparators()
  3200. ee.WriteMapStart(len(v))
  3201. if e.h.Canonical {
  3202. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3203. e2 := NewEncoderBytes(&mksv, e.hh)
  3204. v2 := make([]bytesI, len(v))
  3205. var i, l int
  3206. var vp *bytesI
  3207. for k2, _ := range v {
  3208. l = len(mksv)
  3209. e2.MustEncode(k2)
  3210. vp = &v2[i]
  3211. vp.v = mksv[l:]
  3212. vp.i = k2
  3213. i++
  3214. }
  3215. sort.Sort(bytesISlice(v2))
  3216. for j := range v2 {
  3217. if esep {
  3218. ee.WriteMapElemKey()
  3219. }
  3220. e.asis(v2[j].v)
  3221. if esep {
  3222. ee.WriteMapElemValue()
  3223. }
  3224. e.encode(v[v2[j].i])
  3225. }
  3226. } else {
  3227. for k2, v2 := range v {
  3228. if esep {
  3229. ee.WriteMapElemKey()
  3230. }
  3231. e.encode(k2)
  3232. if esep {
  3233. ee.WriteMapElemValue()
  3234. }
  3235. ee.EncodeUint(uint64(v2))
  3236. }
  3237. }
  3238. ee.WriteMapEnd()
  3239. }
  3240. func (e *Encoder) fastpathEncMapIntfUint8R(f *codecFnInfo, rv reflect.Value) {
  3241. fastpathTV.EncMapIntfUint8V(rv2i(rv).(map[interface{}]uint8), e)
  3242. }
  3243. func (_ fastpathT) EncMapIntfUint8V(v map[interface{}]uint8, e *Encoder) {
  3244. ee, esep := e.e, e.hh.hasElemSeparators()
  3245. ee.WriteMapStart(len(v))
  3246. if e.h.Canonical {
  3247. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3248. e2 := NewEncoderBytes(&mksv, e.hh)
  3249. v2 := make([]bytesI, len(v))
  3250. var i, l int
  3251. var vp *bytesI
  3252. for k2, _ := range v {
  3253. l = len(mksv)
  3254. e2.MustEncode(k2)
  3255. vp = &v2[i]
  3256. vp.v = mksv[l:]
  3257. vp.i = k2
  3258. i++
  3259. }
  3260. sort.Sort(bytesISlice(v2))
  3261. for j := range v2 {
  3262. if esep {
  3263. ee.WriteMapElemKey()
  3264. }
  3265. e.asis(v2[j].v)
  3266. if esep {
  3267. ee.WriteMapElemValue()
  3268. }
  3269. e.encode(v[v2[j].i])
  3270. }
  3271. } else {
  3272. for k2, v2 := range v {
  3273. if esep {
  3274. ee.WriteMapElemKey()
  3275. }
  3276. e.encode(k2)
  3277. if esep {
  3278. ee.WriteMapElemValue()
  3279. }
  3280. ee.EncodeUint(uint64(v2))
  3281. }
  3282. }
  3283. ee.WriteMapEnd()
  3284. }
  3285. func (e *Encoder) fastpathEncMapIntfUint16R(f *codecFnInfo, rv reflect.Value) {
  3286. fastpathTV.EncMapIntfUint16V(rv2i(rv).(map[interface{}]uint16), e)
  3287. }
  3288. func (_ fastpathT) EncMapIntfUint16V(v map[interface{}]uint16, e *Encoder) {
  3289. ee, esep := e.e, e.hh.hasElemSeparators()
  3290. ee.WriteMapStart(len(v))
  3291. if e.h.Canonical {
  3292. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3293. e2 := NewEncoderBytes(&mksv, e.hh)
  3294. v2 := make([]bytesI, len(v))
  3295. var i, l int
  3296. var vp *bytesI
  3297. for k2, _ := range v {
  3298. l = len(mksv)
  3299. e2.MustEncode(k2)
  3300. vp = &v2[i]
  3301. vp.v = mksv[l:]
  3302. vp.i = k2
  3303. i++
  3304. }
  3305. sort.Sort(bytesISlice(v2))
  3306. for j := range v2 {
  3307. if esep {
  3308. ee.WriteMapElemKey()
  3309. }
  3310. e.asis(v2[j].v)
  3311. if esep {
  3312. ee.WriteMapElemValue()
  3313. }
  3314. e.encode(v[v2[j].i])
  3315. }
  3316. } else {
  3317. for k2, v2 := range v {
  3318. if esep {
  3319. ee.WriteMapElemKey()
  3320. }
  3321. e.encode(k2)
  3322. if esep {
  3323. ee.WriteMapElemValue()
  3324. }
  3325. ee.EncodeUint(uint64(v2))
  3326. }
  3327. }
  3328. ee.WriteMapEnd()
  3329. }
  3330. func (e *Encoder) fastpathEncMapIntfUint32R(f *codecFnInfo, rv reflect.Value) {
  3331. fastpathTV.EncMapIntfUint32V(rv2i(rv).(map[interface{}]uint32), e)
  3332. }
  3333. func (_ fastpathT) EncMapIntfUint32V(v map[interface{}]uint32, e *Encoder) {
  3334. ee, esep := e.e, e.hh.hasElemSeparators()
  3335. ee.WriteMapStart(len(v))
  3336. if e.h.Canonical {
  3337. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3338. e2 := NewEncoderBytes(&mksv, e.hh)
  3339. v2 := make([]bytesI, len(v))
  3340. var i, l int
  3341. var vp *bytesI
  3342. for k2, _ := range v {
  3343. l = len(mksv)
  3344. e2.MustEncode(k2)
  3345. vp = &v2[i]
  3346. vp.v = mksv[l:]
  3347. vp.i = k2
  3348. i++
  3349. }
  3350. sort.Sort(bytesISlice(v2))
  3351. for j := range v2 {
  3352. if esep {
  3353. ee.WriteMapElemKey()
  3354. }
  3355. e.asis(v2[j].v)
  3356. if esep {
  3357. ee.WriteMapElemValue()
  3358. }
  3359. e.encode(v[v2[j].i])
  3360. }
  3361. } else {
  3362. for k2, v2 := range v {
  3363. if esep {
  3364. ee.WriteMapElemKey()
  3365. }
  3366. e.encode(k2)
  3367. if esep {
  3368. ee.WriteMapElemValue()
  3369. }
  3370. ee.EncodeUint(uint64(v2))
  3371. }
  3372. }
  3373. ee.WriteMapEnd()
  3374. }
  3375. func (e *Encoder) fastpathEncMapIntfUint64R(f *codecFnInfo, rv reflect.Value) {
  3376. fastpathTV.EncMapIntfUint64V(rv2i(rv).(map[interface{}]uint64), e)
  3377. }
  3378. func (_ fastpathT) EncMapIntfUint64V(v map[interface{}]uint64, e *Encoder) {
  3379. ee, esep := e.e, e.hh.hasElemSeparators()
  3380. ee.WriteMapStart(len(v))
  3381. if e.h.Canonical {
  3382. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3383. e2 := NewEncoderBytes(&mksv, e.hh)
  3384. v2 := make([]bytesI, len(v))
  3385. var i, l int
  3386. var vp *bytesI
  3387. for k2, _ := range v {
  3388. l = len(mksv)
  3389. e2.MustEncode(k2)
  3390. vp = &v2[i]
  3391. vp.v = mksv[l:]
  3392. vp.i = k2
  3393. i++
  3394. }
  3395. sort.Sort(bytesISlice(v2))
  3396. for j := range v2 {
  3397. if esep {
  3398. ee.WriteMapElemKey()
  3399. }
  3400. e.asis(v2[j].v)
  3401. if esep {
  3402. ee.WriteMapElemValue()
  3403. }
  3404. e.encode(v[v2[j].i])
  3405. }
  3406. } else {
  3407. for k2, v2 := range v {
  3408. if esep {
  3409. ee.WriteMapElemKey()
  3410. }
  3411. e.encode(k2)
  3412. if esep {
  3413. ee.WriteMapElemValue()
  3414. }
  3415. ee.EncodeUint(uint64(v2))
  3416. }
  3417. }
  3418. ee.WriteMapEnd()
  3419. }
  3420. func (e *Encoder) fastpathEncMapIntfUintptrR(f *codecFnInfo, rv reflect.Value) {
  3421. fastpathTV.EncMapIntfUintptrV(rv2i(rv).(map[interface{}]uintptr), e)
  3422. }
  3423. func (_ fastpathT) EncMapIntfUintptrV(v map[interface{}]uintptr, e *Encoder) {
  3424. ee, esep := e.e, e.hh.hasElemSeparators()
  3425. ee.WriteMapStart(len(v))
  3426. if e.h.Canonical {
  3427. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3428. e2 := NewEncoderBytes(&mksv, e.hh)
  3429. v2 := make([]bytesI, len(v))
  3430. var i, l int
  3431. var vp *bytesI
  3432. for k2, _ := range v {
  3433. l = len(mksv)
  3434. e2.MustEncode(k2)
  3435. vp = &v2[i]
  3436. vp.v = mksv[l:]
  3437. vp.i = k2
  3438. i++
  3439. }
  3440. sort.Sort(bytesISlice(v2))
  3441. for j := range v2 {
  3442. if esep {
  3443. ee.WriteMapElemKey()
  3444. }
  3445. e.asis(v2[j].v)
  3446. if esep {
  3447. ee.WriteMapElemValue()
  3448. }
  3449. e.encode(v[v2[j].i])
  3450. }
  3451. } else {
  3452. for k2, v2 := range v {
  3453. if esep {
  3454. ee.WriteMapElemKey()
  3455. }
  3456. e.encode(k2)
  3457. if esep {
  3458. ee.WriteMapElemValue()
  3459. }
  3460. e.encode(v2)
  3461. }
  3462. }
  3463. ee.WriteMapEnd()
  3464. }
  3465. func (e *Encoder) fastpathEncMapIntfIntR(f *codecFnInfo, rv reflect.Value) {
  3466. fastpathTV.EncMapIntfIntV(rv2i(rv).(map[interface{}]int), e)
  3467. }
  3468. func (_ fastpathT) EncMapIntfIntV(v map[interface{}]int, e *Encoder) {
  3469. ee, esep := e.e, e.hh.hasElemSeparators()
  3470. ee.WriteMapStart(len(v))
  3471. if e.h.Canonical {
  3472. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3473. e2 := NewEncoderBytes(&mksv, e.hh)
  3474. v2 := make([]bytesI, len(v))
  3475. var i, l int
  3476. var vp *bytesI
  3477. for k2, _ := range v {
  3478. l = len(mksv)
  3479. e2.MustEncode(k2)
  3480. vp = &v2[i]
  3481. vp.v = mksv[l:]
  3482. vp.i = k2
  3483. i++
  3484. }
  3485. sort.Sort(bytesISlice(v2))
  3486. for j := range v2 {
  3487. if esep {
  3488. ee.WriteMapElemKey()
  3489. }
  3490. e.asis(v2[j].v)
  3491. if esep {
  3492. ee.WriteMapElemValue()
  3493. }
  3494. e.encode(v[v2[j].i])
  3495. }
  3496. } else {
  3497. for k2, v2 := range v {
  3498. if esep {
  3499. ee.WriteMapElemKey()
  3500. }
  3501. e.encode(k2)
  3502. if esep {
  3503. ee.WriteMapElemValue()
  3504. }
  3505. ee.EncodeInt(int64(v2))
  3506. }
  3507. }
  3508. ee.WriteMapEnd()
  3509. }
  3510. func (e *Encoder) fastpathEncMapIntfInt8R(f *codecFnInfo, rv reflect.Value) {
  3511. fastpathTV.EncMapIntfInt8V(rv2i(rv).(map[interface{}]int8), e)
  3512. }
  3513. func (_ fastpathT) EncMapIntfInt8V(v map[interface{}]int8, e *Encoder) {
  3514. ee, esep := e.e, e.hh.hasElemSeparators()
  3515. ee.WriteMapStart(len(v))
  3516. if e.h.Canonical {
  3517. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3518. e2 := NewEncoderBytes(&mksv, e.hh)
  3519. v2 := make([]bytesI, len(v))
  3520. var i, l int
  3521. var vp *bytesI
  3522. for k2, _ := range v {
  3523. l = len(mksv)
  3524. e2.MustEncode(k2)
  3525. vp = &v2[i]
  3526. vp.v = mksv[l:]
  3527. vp.i = k2
  3528. i++
  3529. }
  3530. sort.Sort(bytesISlice(v2))
  3531. for j := range v2 {
  3532. if esep {
  3533. ee.WriteMapElemKey()
  3534. }
  3535. e.asis(v2[j].v)
  3536. if esep {
  3537. ee.WriteMapElemValue()
  3538. }
  3539. e.encode(v[v2[j].i])
  3540. }
  3541. } else {
  3542. for k2, v2 := range v {
  3543. if esep {
  3544. ee.WriteMapElemKey()
  3545. }
  3546. e.encode(k2)
  3547. if esep {
  3548. ee.WriteMapElemValue()
  3549. }
  3550. ee.EncodeInt(int64(v2))
  3551. }
  3552. }
  3553. ee.WriteMapEnd()
  3554. }
  3555. func (e *Encoder) fastpathEncMapIntfInt16R(f *codecFnInfo, rv reflect.Value) {
  3556. fastpathTV.EncMapIntfInt16V(rv2i(rv).(map[interface{}]int16), e)
  3557. }
  3558. func (_ fastpathT) EncMapIntfInt16V(v map[interface{}]int16, e *Encoder) {
  3559. ee, esep := e.e, e.hh.hasElemSeparators()
  3560. ee.WriteMapStart(len(v))
  3561. if e.h.Canonical {
  3562. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3563. e2 := NewEncoderBytes(&mksv, e.hh)
  3564. v2 := make([]bytesI, len(v))
  3565. var i, l int
  3566. var vp *bytesI
  3567. for k2, _ := range v {
  3568. l = len(mksv)
  3569. e2.MustEncode(k2)
  3570. vp = &v2[i]
  3571. vp.v = mksv[l:]
  3572. vp.i = k2
  3573. i++
  3574. }
  3575. sort.Sort(bytesISlice(v2))
  3576. for j := range v2 {
  3577. if esep {
  3578. ee.WriteMapElemKey()
  3579. }
  3580. e.asis(v2[j].v)
  3581. if esep {
  3582. ee.WriteMapElemValue()
  3583. }
  3584. e.encode(v[v2[j].i])
  3585. }
  3586. } else {
  3587. for k2, v2 := range v {
  3588. if esep {
  3589. ee.WriteMapElemKey()
  3590. }
  3591. e.encode(k2)
  3592. if esep {
  3593. ee.WriteMapElemValue()
  3594. }
  3595. ee.EncodeInt(int64(v2))
  3596. }
  3597. }
  3598. ee.WriteMapEnd()
  3599. }
  3600. func (e *Encoder) fastpathEncMapIntfInt32R(f *codecFnInfo, rv reflect.Value) {
  3601. fastpathTV.EncMapIntfInt32V(rv2i(rv).(map[interface{}]int32), e)
  3602. }
  3603. func (_ fastpathT) EncMapIntfInt32V(v map[interface{}]int32, e *Encoder) {
  3604. ee, esep := e.e, e.hh.hasElemSeparators()
  3605. ee.WriteMapStart(len(v))
  3606. if e.h.Canonical {
  3607. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3608. e2 := NewEncoderBytes(&mksv, e.hh)
  3609. v2 := make([]bytesI, len(v))
  3610. var i, l int
  3611. var vp *bytesI
  3612. for k2, _ := range v {
  3613. l = len(mksv)
  3614. e2.MustEncode(k2)
  3615. vp = &v2[i]
  3616. vp.v = mksv[l:]
  3617. vp.i = k2
  3618. i++
  3619. }
  3620. sort.Sort(bytesISlice(v2))
  3621. for j := range v2 {
  3622. if esep {
  3623. ee.WriteMapElemKey()
  3624. }
  3625. e.asis(v2[j].v)
  3626. if esep {
  3627. ee.WriteMapElemValue()
  3628. }
  3629. e.encode(v[v2[j].i])
  3630. }
  3631. } else {
  3632. for k2, v2 := range v {
  3633. if esep {
  3634. ee.WriteMapElemKey()
  3635. }
  3636. e.encode(k2)
  3637. if esep {
  3638. ee.WriteMapElemValue()
  3639. }
  3640. ee.EncodeInt(int64(v2))
  3641. }
  3642. }
  3643. ee.WriteMapEnd()
  3644. }
  3645. func (e *Encoder) fastpathEncMapIntfInt64R(f *codecFnInfo, rv reflect.Value) {
  3646. fastpathTV.EncMapIntfInt64V(rv2i(rv).(map[interface{}]int64), e)
  3647. }
  3648. func (_ fastpathT) EncMapIntfInt64V(v map[interface{}]int64, e *Encoder) {
  3649. ee, esep := e.e, e.hh.hasElemSeparators()
  3650. ee.WriteMapStart(len(v))
  3651. if e.h.Canonical {
  3652. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3653. e2 := NewEncoderBytes(&mksv, e.hh)
  3654. v2 := make([]bytesI, len(v))
  3655. var i, l int
  3656. var vp *bytesI
  3657. for k2, _ := range v {
  3658. l = len(mksv)
  3659. e2.MustEncode(k2)
  3660. vp = &v2[i]
  3661. vp.v = mksv[l:]
  3662. vp.i = k2
  3663. i++
  3664. }
  3665. sort.Sort(bytesISlice(v2))
  3666. for j := range v2 {
  3667. if esep {
  3668. ee.WriteMapElemKey()
  3669. }
  3670. e.asis(v2[j].v)
  3671. if esep {
  3672. ee.WriteMapElemValue()
  3673. }
  3674. e.encode(v[v2[j].i])
  3675. }
  3676. } else {
  3677. for k2, v2 := range v {
  3678. if esep {
  3679. ee.WriteMapElemKey()
  3680. }
  3681. e.encode(k2)
  3682. if esep {
  3683. ee.WriteMapElemValue()
  3684. }
  3685. ee.EncodeInt(int64(v2))
  3686. }
  3687. }
  3688. ee.WriteMapEnd()
  3689. }
  3690. func (e *Encoder) fastpathEncMapIntfFloat32R(f *codecFnInfo, rv reflect.Value) {
  3691. fastpathTV.EncMapIntfFloat32V(rv2i(rv).(map[interface{}]float32), e)
  3692. }
  3693. func (_ fastpathT) EncMapIntfFloat32V(v map[interface{}]float32, e *Encoder) {
  3694. ee, esep := e.e, e.hh.hasElemSeparators()
  3695. ee.WriteMapStart(len(v))
  3696. if e.h.Canonical {
  3697. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3698. e2 := NewEncoderBytes(&mksv, e.hh)
  3699. v2 := make([]bytesI, len(v))
  3700. var i, l int
  3701. var vp *bytesI
  3702. for k2, _ := range v {
  3703. l = len(mksv)
  3704. e2.MustEncode(k2)
  3705. vp = &v2[i]
  3706. vp.v = mksv[l:]
  3707. vp.i = k2
  3708. i++
  3709. }
  3710. sort.Sort(bytesISlice(v2))
  3711. for j := range v2 {
  3712. if esep {
  3713. ee.WriteMapElemKey()
  3714. }
  3715. e.asis(v2[j].v)
  3716. if esep {
  3717. ee.WriteMapElemValue()
  3718. }
  3719. e.encode(v[v2[j].i])
  3720. }
  3721. } else {
  3722. for k2, v2 := range v {
  3723. if esep {
  3724. ee.WriteMapElemKey()
  3725. }
  3726. e.encode(k2)
  3727. if esep {
  3728. ee.WriteMapElemValue()
  3729. }
  3730. ee.EncodeFloat32(v2)
  3731. }
  3732. }
  3733. ee.WriteMapEnd()
  3734. }
  3735. func (e *Encoder) fastpathEncMapIntfFloat64R(f *codecFnInfo, rv reflect.Value) {
  3736. fastpathTV.EncMapIntfFloat64V(rv2i(rv).(map[interface{}]float64), e)
  3737. }
  3738. func (_ fastpathT) EncMapIntfFloat64V(v map[interface{}]float64, e *Encoder) {
  3739. ee, esep := e.e, e.hh.hasElemSeparators()
  3740. ee.WriteMapStart(len(v))
  3741. if e.h.Canonical {
  3742. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3743. e2 := NewEncoderBytes(&mksv, e.hh)
  3744. v2 := make([]bytesI, len(v))
  3745. var i, l int
  3746. var vp *bytesI
  3747. for k2, _ := range v {
  3748. l = len(mksv)
  3749. e2.MustEncode(k2)
  3750. vp = &v2[i]
  3751. vp.v = mksv[l:]
  3752. vp.i = k2
  3753. i++
  3754. }
  3755. sort.Sort(bytesISlice(v2))
  3756. for j := range v2 {
  3757. if esep {
  3758. ee.WriteMapElemKey()
  3759. }
  3760. e.asis(v2[j].v)
  3761. if esep {
  3762. ee.WriteMapElemValue()
  3763. }
  3764. e.encode(v[v2[j].i])
  3765. }
  3766. } else {
  3767. for k2, v2 := range v {
  3768. if esep {
  3769. ee.WriteMapElemKey()
  3770. }
  3771. e.encode(k2)
  3772. if esep {
  3773. ee.WriteMapElemValue()
  3774. }
  3775. ee.EncodeFloat64(v2)
  3776. }
  3777. }
  3778. ee.WriteMapEnd()
  3779. }
  3780. func (e *Encoder) fastpathEncMapIntfBoolR(f *codecFnInfo, rv reflect.Value) {
  3781. fastpathTV.EncMapIntfBoolV(rv2i(rv).(map[interface{}]bool), e)
  3782. }
  3783. func (_ fastpathT) EncMapIntfBoolV(v map[interface{}]bool, e *Encoder) {
  3784. ee, esep := e.e, e.hh.hasElemSeparators()
  3785. ee.WriteMapStart(len(v))
  3786. if e.h.Canonical {
  3787. var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
  3788. e2 := NewEncoderBytes(&mksv, e.hh)
  3789. v2 := make([]bytesI, len(v))
  3790. var i, l int
  3791. var vp *bytesI
  3792. for k2, _ := range v {
  3793. l = len(mksv)
  3794. e2.MustEncode(k2)
  3795. vp = &v2[i]
  3796. vp.v = mksv[l:]
  3797. vp.i = k2
  3798. i++
  3799. }
  3800. sort.Sort(bytesISlice(v2))
  3801. for j := range v2 {
  3802. if esep {
  3803. ee.WriteMapElemKey()
  3804. }
  3805. e.asis(v2[j].v)
  3806. if esep {
  3807. ee.WriteMapElemValue()
  3808. }
  3809. e.encode(v[v2[j].i])
  3810. }
  3811. } else {
  3812. for k2, v2 := range v {
  3813. if esep {
  3814. ee.WriteMapElemKey()
  3815. }
  3816. e.encode(k2)
  3817. if esep {
  3818. ee.WriteMapElemValue()
  3819. }
  3820. ee.EncodeBool(v2)
  3821. }
  3822. }
  3823. ee.WriteMapEnd()
  3824. }
  3825. func (e *Encoder) fastpathEncMapStringIntfR(f *codecFnInfo, rv reflect.Value) {
  3826. fastpathTV.EncMapStringIntfV(rv2i(rv).(map[string]interface{}), e)
  3827. }
  3828. func (_ fastpathT) EncMapStringIntfV(v map[string]interface{}, e *Encoder) {
  3829. ee, esep := e.e, e.hh.hasElemSeparators()
  3830. ee.WriteMapStart(len(v))
  3831. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  3832. if e.h.Canonical {
  3833. v2 := make([]string, len(v))
  3834. var i int
  3835. for k, _ := range v {
  3836. v2[i] = string(k)
  3837. i++
  3838. }
  3839. sort.Sort(stringSlice(v2))
  3840. for _, k2 := range v2 {
  3841. if esep {
  3842. ee.WriteMapElemKey()
  3843. }
  3844. if asSymbols {
  3845. ee.EncodeSymbol(k2)
  3846. } else {
  3847. ee.EncodeString(c_UTF8, k2)
  3848. }
  3849. if esep {
  3850. ee.WriteMapElemValue()
  3851. }
  3852. e.encode(v[string(k2)])
  3853. }
  3854. } else {
  3855. for k2, v2 := range v {
  3856. if esep {
  3857. ee.WriteMapElemKey()
  3858. }
  3859. if asSymbols {
  3860. ee.EncodeSymbol(k2)
  3861. } else {
  3862. ee.EncodeString(c_UTF8, k2)
  3863. }
  3864. if esep {
  3865. ee.WriteMapElemValue()
  3866. }
  3867. e.encode(v2)
  3868. }
  3869. }
  3870. ee.WriteMapEnd()
  3871. }
  3872. func (e *Encoder) fastpathEncMapStringStringR(f *codecFnInfo, rv reflect.Value) {
  3873. fastpathTV.EncMapStringStringV(rv2i(rv).(map[string]string), e)
  3874. }
  3875. func (_ fastpathT) EncMapStringStringV(v map[string]string, e *Encoder) {
  3876. ee, esep := e.e, e.hh.hasElemSeparators()
  3877. ee.WriteMapStart(len(v))
  3878. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  3879. if e.h.Canonical {
  3880. v2 := make([]string, len(v))
  3881. var i int
  3882. for k, _ := range v {
  3883. v2[i] = string(k)
  3884. i++
  3885. }
  3886. sort.Sort(stringSlice(v2))
  3887. for _, k2 := range v2 {
  3888. if esep {
  3889. ee.WriteMapElemKey()
  3890. }
  3891. if asSymbols {
  3892. ee.EncodeSymbol(k2)
  3893. } else {
  3894. ee.EncodeString(c_UTF8, k2)
  3895. }
  3896. if esep {
  3897. ee.WriteMapElemValue()
  3898. }
  3899. ee.EncodeString(c_UTF8, v[string(k2)])
  3900. }
  3901. } else {
  3902. for k2, v2 := range v {
  3903. if esep {
  3904. ee.WriteMapElemKey()
  3905. }
  3906. if asSymbols {
  3907. ee.EncodeSymbol(k2)
  3908. } else {
  3909. ee.EncodeString(c_UTF8, k2)
  3910. }
  3911. if esep {
  3912. ee.WriteMapElemValue()
  3913. }
  3914. ee.EncodeString(c_UTF8, v2)
  3915. }
  3916. }
  3917. ee.WriteMapEnd()
  3918. }
  3919. func (e *Encoder) fastpathEncMapStringUintR(f *codecFnInfo, rv reflect.Value) {
  3920. fastpathTV.EncMapStringUintV(rv2i(rv).(map[string]uint), e)
  3921. }
  3922. func (_ fastpathT) EncMapStringUintV(v map[string]uint, e *Encoder) {
  3923. ee, esep := e.e, e.hh.hasElemSeparators()
  3924. ee.WriteMapStart(len(v))
  3925. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  3926. if e.h.Canonical {
  3927. v2 := make([]string, len(v))
  3928. var i int
  3929. for k, _ := range v {
  3930. v2[i] = string(k)
  3931. i++
  3932. }
  3933. sort.Sort(stringSlice(v2))
  3934. for _, k2 := range v2 {
  3935. if esep {
  3936. ee.WriteMapElemKey()
  3937. }
  3938. if asSymbols {
  3939. ee.EncodeSymbol(k2)
  3940. } else {
  3941. ee.EncodeString(c_UTF8, k2)
  3942. }
  3943. if esep {
  3944. ee.WriteMapElemValue()
  3945. }
  3946. ee.EncodeUint(uint64(v[string(k2)]))
  3947. }
  3948. } else {
  3949. for k2, v2 := range v {
  3950. if esep {
  3951. ee.WriteMapElemKey()
  3952. }
  3953. if asSymbols {
  3954. ee.EncodeSymbol(k2)
  3955. } else {
  3956. ee.EncodeString(c_UTF8, k2)
  3957. }
  3958. if esep {
  3959. ee.WriteMapElemValue()
  3960. }
  3961. ee.EncodeUint(uint64(v2))
  3962. }
  3963. }
  3964. ee.WriteMapEnd()
  3965. }
  3966. func (e *Encoder) fastpathEncMapStringUint8R(f *codecFnInfo, rv reflect.Value) {
  3967. fastpathTV.EncMapStringUint8V(rv2i(rv).(map[string]uint8), e)
  3968. }
  3969. func (_ fastpathT) EncMapStringUint8V(v map[string]uint8, e *Encoder) {
  3970. ee, esep := e.e, e.hh.hasElemSeparators()
  3971. ee.WriteMapStart(len(v))
  3972. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  3973. if e.h.Canonical {
  3974. v2 := make([]string, len(v))
  3975. var i int
  3976. for k, _ := range v {
  3977. v2[i] = string(k)
  3978. i++
  3979. }
  3980. sort.Sort(stringSlice(v2))
  3981. for _, k2 := range v2 {
  3982. if esep {
  3983. ee.WriteMapElemKey()
  3984. }
  3985. if asSymbols {
  3986. ee.EncodeSymbol(k2)
  3987. } else {
  3988. ee.EncodeString(c_UTF8, k2)
  3989. }
  3990. if esep {
  3991. ee.WriteMapElemValue()
  3992. }
  3993. ee.EncodeUint(uint64(v[string(k2)]))
  3994. }
  3995. } else {
  3996. for k2, v2 := range v {
  3997. if esep {
  3998. ee.WriteMapElemKey()
  3999. }
  4000. if asSymbols {
  4001. ee.EncodeSymbol(k2)
  4002. } else {
  4003. ee.EncodeString(c_UTF8, k2)
  4004. }
  4005. if esep {
  4006. ee.WriteMapElemValue()
  4007. }
  4008. ee.EncodeUint(uint64(v2))
  4009. }
  4010. }
  4011. ee.WriteMapEnd()
  4012. }
  4013. func (e *Encoder) fastpathEncMapStringUint16R(f *codecFnInfo, rv reflect.Value) {
  4014. fastpathTV.EncMapStringUint16V(rv2i(rv).(map[string]uint16), e)
  4015. }
  4016. func (_ fastpathT) EncMapStringUint16V(v map[string]uint16, e *Encoder) {
  4017. ee, esep := e.e, e.hh.hasElemSeparators()
  4018. ee.WriteMapStart(len(v))
  4019. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4020. if e.h.Canonical {
  4021. v2 := make([]string, len(v))
  4022. var i int
  4023. for k, _ := range v {
  4024. v2[i] = string(k)
  4025. i++
  4026. }
  4027. sort.Sort(stringSlice(v2))
  4028. for _, k2 := range v2 {
  4029. if esep {
  4030. ee.WriteMapElemKey()
  4031. }
  4032. if asSymbols {
  4033. ee.EncodeSymbol(k2)
  4034. } else {
  4035. ee.EncodeString(c_UTF8, k2)
  4036. }
  4037. if esep {
  4038. ee.WriteMapElemValue()
  4039. }
  4040. ee.EncodeUint(uint64(v[string(k2)]))
  4041. }
  4042. } else {
  4043. for k2, v2 := range v {
  4044. if esep {
  4045. ee.WriteMapElemKey()
  4046. }
  4047. if asSymbols {
  4048. ee.EncodeSymbol(k2)
  4049. } else {
  4050. ee.EncodeString(c_UTF8, k2)
  4051. }
  4052. if esep {
  4053. ee.WriteMapElemValue()
  4054. }
  4055. ee.EncodeUint(uint64(v2))
  4056. }
  4057. }
  4058. ee.WriteMapEnd()
  4059. }
  4060. func (e *Encoder) fastpathEncMapStringUint32R(f *codecFnInfo, rv reflect.Value) {
  4061. fastpathTV.EncMapStringUint32V(rv2i(rv).(map[string]uint32), e)
  4062. }
  4063. func (_ fastpathT) EncMapStringUint32V(v map[string]uint32, e *Encoder) {
  4064. ee, esep := e.e, e.hh.hasElemSeparators()
  4065. ee.WriteMapStart(len(v))
  4066. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4067. if e.h.Canonical {
  4068. v2 := make([]string, len(v))
  4069. var i int
  4070. for k, _ := range v {
  4071. v2[i] = string(k)
  4072. i++
  4073. }
  4074. sort.Sort(stringSlice(v2))
  4075. for _, k2 := range v2 {
  4076. if esep {
  4077. ee.WriteMapElemKey()
  4078. }
  4079. if asSymbols {
  4080. ee.EncodeSymbol(k2)
  4081. } else {
  4082. ee.EncodeString(c_UTF8, k2)
  4083. }
  4084. if esep {
  4085. ee.WriteMapElemValue()
  4086. }
  4087. ee.EncodeUint(uint64(v[string(k2)]))
  4088. }
  4089. } else {
  4090. for k2, v2 := range v {
  4091. if esep {
  4092. ee.WriteMapElemKey()
  4093. }
  4094. if asSymbols {
  4095. ee.EncodeSymbol(k2)
  4096. } else {
  4097. ee.EncodeString(c_UTF8, k2)
  4098. }
  4099. if esep {
  4100. ee.WriteMapElemValue()
  4101. }
  4102. ee.EncodeUint(uint64(v2))
  4103. }
  4104. }
  4105. ee.WriteMapEnd()
  4106. }
  4107. func (e *Encoder) fastpathEncMapStringUint64R(f *codecFnInfo, rv reflect.Value) {
  4108. fastpathTV.EncMapStringUint64V(rv2i(rv).(map[string]uint64), e)
  4109. }
  4110. func (_ fastpathT) EncMapStringUint64V(v map[string]uint64, e *Encoder) {
  4111. ee, esep := e.e, e.hh.hasElemSeparators()
  4112. ee.WriteMapStart(len(v))
  4113. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4114. if e.h.Canonical {
  4115. v2 := make([]string, len(v))
  4116. var i int
  4117. for k, _ := range v {
  4118. v2[i] = string(k)
  4119. i++
  4120. }
  4121. sort.Sort(stringSlice(v2))
  4122. for _, k2 := range v2 {
  4123. if esep {
  4124. ee.WriteMapElemKey()
  4125. }
  4126. if asSymbols {
  4127. ee.EncodeSymbol(k2)
  4128. } else {
  4129. ee.EncodeString(c_UTF8, k2)
  4130. }
  4131. if esep {
  4132. ee.WriteMapElemValue()
  4133. }
  4134. ee.EncodeUint(uint64(v[string(k2)]))
  4135. }
  4136. } else {
  4137. for k2, v2 := range v {
  4138. if esep {
  4139. ee.WriteMapElemKey()
  4140. }
  4141. if asSymbols {
  4142. ee.EncodeSymbol(k2)
  4143. } else {
  4144. ee.EncodeString(c_UTF8, k2)
  4145. }
  4146. if esep {
  4147. ee.WriteMapElemValue()
  4148. }
  4149. ee.EncodeUint(uint64(v2))
  4150. }
  4151. }
  4152. ee.WriteMapEnd()
  4153. }
  4154. func (e *Encoder) fastpathEncMapStringUintptrR(f *codecFnInfo, rv reflect.Value) {
  4155. fastpathTV.EncMapStringUintptrV(rv2i(rv).(map[string]uintptr), e)
  4156. }
  4157. func (_ fastpathT) EncMapStringUintptrV(v map[string]uintptr, e *Encoder) {
  4158. ee, esep := e.e, e.hh.hasElemSeparators()
  4159. ee.WriteMapStart(len(v))
  4160. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4161. if e.h.Canonical {
  4162. v2 := make([]string, len(v))
  4163. var i int
  4164. for k, _ := range v {
  4165. v2[i] = string(k)
  4166. i++
  4167. }
  4168. sort.Sort(stringSlice(v2))
  4169. for _, k2 := range v2 {
  4170. if esep {
  4171. ee.WriteMapElemKey()
  4172. }
  4173. if asSymbols {
  4174. ee.EncodeSymbol(k2)
  4175. } else {
  4176. ee.EncodeString(c_UTF8, k2)
  4177. }
  4178. if esep {
  4179. ee.WriteMapElemValue()
  4180. }
  4181. e.encode(v[string(k2)])
  4182. }
  4183. } else {
  4184. for k2, v2 := range v {
  4185. if esep {
  4186. ee.WriteMapElemKey()
  4187. }
  4188. if asSymbols {
  4189. ee.EncodeSymbol(k2)
  4190. } else {
  4191. ee.EncodeString(c_UTF8, k2)
  4192. }
  4193. if esep {
  4194. ee.WriteMapElemValue()
  4195. }
  4196. e.encode(v2)
  4197. }
  4198. }
  4199. ee.WriteMapEnd()
  4200. }
  4201. func (e *Encoder) fastpathEncMapStringIntR(f *codecFnInfo, rv reflect.Value) {
  4202. fastpathTV.EncMapStringIntV(rv2i(rv).(map[string]int), e)
  4203. }
  4204. func (_ fastpathT) EncMapStringIntV(v map[string]int, e *Encoder) {
  4205. ee, esep := e.e, e.hh.hasElemSeparators()
  4206. ee.WriteMapStart(len(v))
  4207. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4208. if e.h.Canonical {
  4209. v2 := make([]string, len(v))
  4210. var i int
  4211. for k, _ := range v {
  4212. v2[i] = string(k)
  4213. i++
  4214. }
  4215. sort.Sort(stringSlice(v2))
  4216. for _, k2 := range v2 {
  4217. if esep {
  4218. ee.WriteMapElemKey()
  4219. }
  4220. if asSymbols {
  4221. ee.EncodeSymbol(k2)
  4222. } else {
  4223. ee.EncodeString(c_UTF8, k2)
  4224. }
  4225. if esep {
  4226. ee.WriteMapElemValue()
  4227. }
  4228. ee.EncodeInt(int64(v[string(k2)]))
  4229. }
  4230. } else {
  4231. for k2, v2 := range v {
  4232. if esep {
  4233. ee.WriteMapElemKey()
  4234. }
  4235. if asSymbols {
  4236. ee.EncodeSymbol(k2)
  4237. } else {
  4238. ee.EncodeString(c_UTF8, k2)
  4239. }
  4240. if esep {
  4241. ee.WriteMapElemValue()
  4242. }
  4243. ee.EncodeInt(int64(v2))
  4244. }
  4245. }
  4246. ee.WriteMapEnd()
  4247. }
  4248. func (e *Encoder) fastpathEncMapStringInt8R(f *codecFnInfo, rv reflect.Value) {
  4249. fastpathTV.EncMapStringInt8V(rv2i(rv).(map[string]int8), e)
  4250. }
  4251. func (_ fastpathT) EncMapStringInt8V(v map[string]int8, e *Encoder) {
  4252. ee, esep := e.e, e.hh.hasElemSeparators()
  4253. ee.WriteMapStart(len(v))
  4254. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4255. if e.h.Canonical {
  4256. v2 := make([]string, len(v))
  4257. var i int
  4258. for k, _ := range v {
  4259. v2[i] = string(k)
  4260. i++
  4261. }
  4262. sort.Sort(stringSlice(v2))
  4263. for _, k2 := range v2 {
  4264. if esep {
  4265. ee.WriteMapElemKey()
  4266. }
  4267. if asSymbols {
  4268. ee.EncodeSymbol(k2)
  4269. } else {
  4270. ee.EncodeString(c_UTF8, k2)
  4271. }
  4272. if esep {
  4273. ee.WriteMapElemValue()
  4274. }
  4275. ee.EncodeInt(int64(v[string(k2)]))
  4276. }
  4277. } else {
  4278. for k2, v2 := range v {
  4279. if esep {
  4280. ee.WriteMapElemKey()
  4281. }
  4282. if asSymbols {
  4283. ee.EncodeSymbol(k2)
  4284. } else {
  4285. ee.EncodeString(c_UTF8, k2)
  4286. }
  4287. if esep {
  4288. ee.WriteMapElemValue()
  4289. }
  4290. ee.EncodeInt(int64(v2))
  4291. }
  4292. }
  4293. ee.WriteMapEnd()
  4294. }
  4295. func (e *Encoder) fastpathEncMapStringInt16R(f *codecFnInfo, rv reflect.Value) {
  4296. fastpathTV.EncMapStringInt16V(rv2i(rv).(map[string]int16), e)
  4297. }
  4298. func (_ fastpathT) EncMapStringInt16V(v map[string]int16, e *Encoder) {
  4299. ee, esep := e.e, e.hh.hasElemSeparators()
  4300. ee.WriteMapStart(len(v))
  4301. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4302. if e.h.Canonical {
  4303. v2 := make([]string, len(v))
  4304. var i int
  4305. for k, _ := range v {
  4306. v2[i] = string(k)
  4307. i++
  4308. }
  4309. sort.Sort(stringSlice(v2))
  4310. for _, k2 := range v2 {
  4311. if esep {
  4312. ee.WriteMapElemKey()
  4313. }
  4314. if asSymbols {
  4315. ee.EncodeSymbol(k2)
  4316. } else {
  4317. ee.EncodeString(c_UTF8, k2)
  4318. }
  4319. if esep {
  4320. ee.WriteMapElemValue()
  4321. }
  4322. ee.EncodeInt(int64(v[string(k2)]))
  4323. }
  4324. } else {
  4325. for k2, v2 := range v {
  4326. if esep {
  4327. ee.WriteMapElemKey()
  4328. }
  4329. if asSymbols {
  4330. ee.EncodeSymbol(k2)
  4331. } else {
  4332. ee.EncodeString(c_UTF8, k2)
  4333. }
  4334. if esep {
  4335. ee.WriteMapElemValue()
  4336. }
  4337. ee.EncodeInt(int64(v2))
  4338. }
  4339. }
  4340. ee.WriteMapEnd()
  4341. }
  4342. func (e *Encoder) fastpathEncMapStringInt32R(f *codecFnInfo, rv reflect.Value) {
  4343. fastpathTV.EncMapStringInt32V(rv2i(rv).(map[string]int32), e)
  4344. }
  4345. func (_ fastpathT) EncMapStringInt32V(v map[string]int32, e *Encoder) {
  4346. ee, esep := e.e, e.hh.hasElemSeparators()
  4347. ee.WriteMapStart(len(v))
  4348. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4349. if e.h.Canonical {
  4350. v2 := make([]string, len(v))
  4351. var i int
  4352. for k, _ := range v {
  4353. v2[i] = string(k)
  4354. i++
  4355. }
  4356. sort.Sort(stringSlice(v2))
  4357. for _, k2 := range v2 {
  4358. if esep {
  4359. ee.WriteMapElemKey()
  4360. }
  4361. if asSymbols {
  4362. ee.EncodeSymbol(k2)
  4363. } else {
  4364. ee.EncodeString(c_UTF8, k2)
  4365. }
  4366. if esep {
  4367. ee.WriteMapElemValue()
  4368. }
  4369. ee.EncodeInt(int64(v[string(k2)]))
  4370. }
  4371. } else {
  4372. for k2, v2 := range v {
  4373. if esep {
  4374. ee.WriteMapElemKey()
  4375. }
  4376. if asSymbols {
  4377. ee.EncodeSymbol(k2)
  4378. } else {
  4379. ee.EncodeString(c_UTF8, k2)
  4380. }
  4381. if esep {
  4382. ee.WriteMapElemValue()
  4383. }
  4384. ee.EncodeInt(int64(v2))
  4385. }
  4386. }
  4387. ee.WriteMapEnd()
  4388. }
  4389. func (e *Encoder) fastpathEncMapStringInt64R(f *codecFnInfo, rv reflect.Value) {
  4390. fastpathTV.EncMapStringInt64V(rv2i(rv).(map[string]int64), e)
  4391. }
  4392. func (_ fastpathT) EncMapStringInt64V(v map[string]int64, e *Encoder) {
  4393. ee, esep := e.e, e.hh.hasElemSeparators()
  4394. ee.WriteMapStart(len(v))
  4395. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4396. if e.h.Canonical {
  4397. v2 := make([]string, len(v))
  4398. var i int
  4399. for k, _ := range v {
  4400. v2[i] = string(k)
  4401. i++
  4402. }
  4403. sort.Sort(stringSlice(v2))
  4404. for _, k2 := range v2 {
  4405. if esep {
  4406. ee.WriteMapElemKey()
  4407. }
  4408. if asSymbols {
  4409. ee.EncodeSymbol(k2)
  4410. } else {
  4411. ee.EncodeString(c_UTF8, k2)
  4412. }
  4413. if esep {
  4414. ee.WriteMapElemValue()
  4415. }
  4416. ee.EncodeInt(int64(v[string(k2)]))
  4417. }
  4418. } else {
  4419. for k2, v2 := range v {
  4420. if esep {
  4421. ee.WriteMapElemKey()
  4422. }
  4423. if asSymbols {
  4424. ee.EncodeSymbol(k2)
  4425. } else {
  4426. ee.EncodeString(c_UTF8, k2)
  4427. }
  4428. if esep {
  4429. ee.WriteMapElemValue()
  4430. }
  4431. ee.EncodeInt(int64(v2))
  4432. }
  4433. }
  4434. ee.WriteMapEnd()
  4435. }
  4436. func (e *Encoder) fastpathEncMapStringFloat32R(f *codecFnInfo, rv reflect.Value) {
  4437. fastpathTV.EncMapStringFloat32V(rv2i(rv).(map[string]float32), e)
  4438. }
  4439. func (_ fastpathT) EncMapStringFloat32V(v map[string]float32, e *Encoder) {
  4440. ee, esep := e.e, e.hh.hasElemSeparators()
  4441. ee.WriteMapStart(len(v))
  4442. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4443. if e.h.Canonical {
  4444. v2 := make([]string, len(v))
  4445. var i int
  4446. for k, _ := range v {
  4447. v2[i] = string(k)
  4448. i++
  4449. }
  4450. sort.Sort(stringSlice(v2))
  4451. for _, k2 := range v2 {
  4452. if esep {
  4453. ee.WriteMapElemKey()
  4454. }
  4455. if asSymbols {
  4456. ee.EncodeSymbol(k2)
  4457. } else {
  4458. ee.EncodeString(c_UTF8, k2)
  4459. }
  4460. if esep {
  4461. ee.WriteMapElemValue()
  4462. }
  4463. ee.EncodeFloat32(v[string(k2)])
  4464. }
  4465. } else {
  4466. for k2, v2 := range v {
  4467. if esep {
  4468. ee.WriteMapElemKey()
  4469. }
  4470. if asSymbols {
  4471. ee.EncodeSymbol(k2)
  4472. } else {
  4473. ee.EncodeString(c_UTF8, k2)
  4474. }
  4475. if esep {
  4476. ee.WriteMapElemValue()
  4477. }
  4478. ee.EncodeFloat32(v2)
  4479. }
  4480. }
  4481. ee.WriteMapEnd()
  4482. }
  4483. func (e *Encoder) fastpathEncMapStringFloat64R(f *codecFnInfo, rv reflect.Value) {
  4484. fastpathTV.EncMapStringFloat64V(rv2i(rv).(map[string]float64), e)
  4485. }
  4486. func (_ fastpathT) EncMapStringFloat64V(v map[string]float64, e *Encoder) {
  4487. ee, esep := e.e, e.hh.hasElemSeparators()
  4488. ee.WriteMapStart(len(v))
  4489. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4490. if e.h.Canonical {
  4491. v2 := make([]string, len(v))
  4492. var i int
  4493. for k, _ := range v {
  4494. v2[i] = string(k)
  4495. i++
  4496. }
  4497. sort.Sort(stringSlice(v2))
  4498. for _, k2 := range v2 {
  4499. if esep {
  4500. ee.WriteMapElemKey()
  4501. }
  4502. if asSymbols {
  4503. ee.EncodeSymbol(k2)
  4504. } else {
  4505. ee.EncodeString(c_UTF8, k2)
  4506. }
  4507. if esep {
  4508. ee.WriteMapElemValue()
  4509. }
  4510. ee.EncodeFloat64(v[string(k2)])
  4511. }
  4512. } else {
  4513. for k2, v2 := range v {
  4514. if esep {
  4515. ee.WriteMapElemKey()
  4516. }
  4517. if asSymbols {
  4518. ee.EncodeSymbol(k2)
  4519. } else {
  4520. ee.EncodeString(c_UTF8, k2)
  4521. }
  4522. if esep {
  4523. ee.WriteMapElemValue()
  4524. }
  4525. ee.EncodeFloat64(v2)
  4526. }
  4527. }
  4528. ee.WriteMapEnd()
  4529. }
  4530. func (e *Encoder) fastpathEncMapStringBoolR(f *codecFnInfo, rv reflect.Value) {
  4531. fastpathTV.EncMapStringBoolV(rv2i(rv).(map[string]bool), e)
  4532. }
  4533. func (_ fastpathT) EncMapStringBoolV(v map[string]bool, e *Encoder) {
  4534. ee, esep := e.e, e.hh.hasElemSeparators()
  4535. ee.WriteMapStart(len(v))
  4536. asSymbols := e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
  4537. if e.h.Canonical {
  4538. v2 := make([]string, len(v))
  4539. var i int
  4540. for k, _ := range v {
  4541. v2[i] = string(k)
  4542. i++
  4543. }
  4544. sort.Sort(stringSlice(v2))
  4545. for _, k2 := range v2 {
  4546. if esep {
  4547. ee.WriteMapElemKey()
  4548. }
  4549. if asSymbols {
  4550. ee.EncodeSymbol(k2)
  4551. } else {
  4552. ee.EncodeString(c_UTF8, k2)
  4553. }
  4554. if esep {
  4555. ee.WriteMapElemValue()
  4556. }
  4557. ee.EncodeBool(v[string(k2)])
  4558. }
  4559. } else {
  4560. for k2, v2 := range v {
  4561. if esep {
  4562. ee.WriteMapElemKey()
  4563. }
  4564. if asSymbols {
  4565. ee.EncodeSymbol(k2)
  4566. } else {
  4567. ee.EncodeString(c_UTF8, k2)
  4568. }
  4569. if esep {
  4570. ee.WriteMapElemValue()
  4571. }
  4572. ee.EncodeBool(v2)
  4573. }
  4574. }
  4575. ee.WriteMapEnd()
  4576. }
  4577. func (e *Encoder) fastpathEncMapFloat32IntfR(f *codecFnInfo, rv reflect.Value) {
  4578. fastpathTV.EncMapFloat32IntfV(rv2i(rv).(map[float32]interface{}), e)
  4579. }
  4580. func (_ fastpathT) EncMapFloat32IntfV(v map[float32]interface{}, e *Encoder) {
  4581. ee, esep := e.e, e.hh.hasElemSeparators()
  4582. ee.WriteMapStart(len(v))
  4583. if e.h.Canonical {
  4584. v2 := make([]float64, len(v))
  4585. var i int
  4586. for k, _ := range v {
  4587. v2[i] = float64(k)
  4588. i++
  4589. }
  4590. sort.Sort(floatSlice(v2))
  4591. for _, k2 := range v2 {
  4592. if esep {
  4593. ee.WriteMapElemKey()
  4594. }
  4595. ee.EncodeFloat32(float32(k2))
  4596. if esep {
  4597. ee.WriteMapElemValue()
  4598. }
  4599. e.encode(v[float32(k2)])
  4600. }
  4601. } else {
  4602. for k2, v2 := range v {
  4603. if esep {
  4604. ee.WriteMapElemKey()
  4605. }
  4606. ee.EncodeFloat32(k2)
  4607. if esep {
  4608. ee.WriteMapElemValue()
  4609. }
  4610. e.encode(v2)
  4611. }
  4612. }
  4613. ee.WriteMapEnd()
  4614. }
  4615. func (e *Encoder) fastpathEncMapFloat32StringR(f *codecFnInfo, rv reflect.Value) {
  4616. fastpathTV.EncMapFloat32StringV(rv2i(rv).(map[float32]string), e)
  4617. }
  4618. func (_ fastpathT) EncMapFloat32StringV(v map[float32]string, e *Encoder) {
  4619. ee, esep := e.e, e.hh.hasElemSeparators()
  4620. ee.WriteMapStart(len(v))
  4621. if e.h.Canonical {
  4622. v2 := make([]float64, len(v))
  4623. var i int
  4624. for k, _ := range v {
  4625. v2[i] = float64(k)
  4626. i++
  4627. }
  4628. sort.Sort(floatSlice(v2))
  4629. for _, k2 := range v2 {
  4630. if esep {
  4631. ee.WriteMapElemKey()
  4632. }
  4633. ee.EncodeFloat32(float32(k2))
  4634. if esep {
  4635. ee.WriteMapElemValue()
  4636. }
  4637. ee.EncodeString(c_UTF8, v[float32(k2)])
  4638. }
  4639. } else {
  4640. for k2, v2 := range v {
  4641. if esep {
  4642. ee.WriteMapElemKey()
  4643. }
  4644. ee.EncodeFloat32(k2)
  4645. if esep {
  4646. ee.WriteMapElemValue()
  4647. }
  4648. ee.EncodeString(c_UTF8, v2)
  4649. }
  4650. }
  4651. ee.WriteMapEnd()
  4652. }
  4653. func (e *Encoder) fastpathEncMapFloat32UintR(f *codecFnInfo, rv reflect.Value) {
  4654. fastpathTV.EncMapFloat32UintV(rv2i(rv).(map[float32]uint), e)
  4655. }
  4656. func (_ fastpathT) EncMapFloat32UintV(v map[float32]uint, e *Encoder) {
  4657. ee, esep := e.e, e.hh.hasElemSeparators()
  4658. ee.WriteMapStart(len(v))
  4659. if e.h.Canonical {
  4660. v2 := make([]float64, len(v))
  4661. var i int
  4662. for k, _ := range v {
  4663. v2[i] = float64(k)
  4664. i++
  4665. }
  4666. sort.Sort(floatSlice(v2))
  4667. for _, k2 := range v2 {
  4668. if esep {
  4669. ee.WriteMapElemKey()
  4670. }
  4671. ee.EncodeFloat32(float32(k2))
  4672. if esep {
  4673. ee.WriteMapElemValue()
  4674. }
  4675. ee.EncodeUint(uint64(v[float32(k2)]))
  4676. }
  4677. } else {
  4678. for k2, v2 := range v {
  4679. if esep {
  4680. ee.WriteMapElemKey()
  4681. }
  4682. ee.EncodeFloat32(k2)
  4683. if esep {
  4684. ee.WriteMapElemValue()
  4685. }
  4686. ee.EncodeUint(uint64(v2))
  4687. }
  4688. }
  4689. ee.WriteMapEnd()
  4690. }
  4691. func (e *Encoder) fastpathEncMapFloat32Uint8R(f *codecFnInfo, rv reflect.Value) {
  4692. fastpathTV.EncMapFloat32Uint8V(rv2i(rv).(map[float32]uint8), e)
  4693. }
  4694. func (_ fastpathT) EncMapFloat32Uint8V(v map[float32]uint8, e *Encoder) {
  4695. ee, esep := e.e, e.hh.hasElemSeparators()
  4696. ee.WriteMapStart(len(v))
  4697. if e.h.Canonical {
  4698. v2 := make([]float64, len(v))
  4699. var i int
  4700. for k, _ := range v {
  4701. v2[i] = float64(k)
  4702. i++
  4703. }
  4704. sort.Sort(floatSlice(v2))
  4705. for _, k2 := range v2 {
  4706. if esep {
  4707. ee.WriteMapElemKey()
  4708. }
  4709. ee.EncodeFloat32(float32(k2))
  4710. if esep {
  4711. ee.WriteMapElemValue()
  4712. }
  4713. ee.EncodeUint(uint64(v[float32(k2)]))
  4714. }
  4715. } else {
  4716. for k2, v2 := range v {
  4717. if esep {
  4718. ee.WriteMapElemKey()
  4719. }
  4720. ee.EncodeFloat32(k2)
  4721. if esep {
  4722. ee.WriteMapElemValue()
  4723. }
  4724. ee.EncodeUint(uint64(v2))
  4725. }
  4726. }
  4727. ee.WriteMapEnd()
  4728. }
  4729. func (e *Encoder) fastpathEncMapFloat32Uint16R(f *codecFnInfo, rv reflect.Value) {
  4730. fastpathTV.EncMapFloat32Uint16V(rv2i(rv).(map[float32]uint16), e)
  4731. }
  4732. func (_ fastpathT) EncMapFloat32Uint16V(v map[float32]uint16, e *Encoder) {
  4733. ee, esep := e.e, e.hh.hasElemSeparators()
  4734. ee.WriteMapStart(len(v))
  4735. if e.h.Canonical {
  4736. v2 := make([]float64, len(v))
  4737. var i int
  4738. for k, _ := range v {
  4739. v2[i] = float64(k)
  4740. i++
  4741. }
  4742. sort.Sort(floatSlice(v2))
  4743. for _, k2 := range v2 {
  4744. if esep {
  4745. ee.WriteMapElemKey()
  4746. }
  4747. ee.EncodeFloat32(float32(k2))
  4748. if esep {
  4749. ee.WriteMapElemValue()
  4750. }
  4751. ee.EncodeUint(uint64(v[float32(k2)]))
  4752. }
  4753. } else {
  4754. for k2, v2 := range v {
  4755. if esep {
  4756. ee.WriteMapElemKey()
  4757. }
  4758. ee.EncodeFloat32(k2)
  4759. if esep {
  4760. ee.WriteMapElemValue()
  4761. }
  4762. ee.EncodeUint(uint64(v2))
  4763. }
  4764. }
  4765. ee.WriteMapEnd()
  4766. }
  4767. func (e *Encoder) fastpathEncMapFloat32Uint32R(f *codecFnInfo, rv reflect.Value) {
  4768. fastpathTV.EncMapFloat32Uint32V(rv2i(rv).(map[float32]uint32), e)
  4769. }
  4770. func (_ fastpathT) EncMapFloat32Uint32V(v map[float32]uint32, e *Encoder) {
  4771. ee, esep := e.e, e.hh.hasElemSeparators()
  4772. ee.WriteMapStart(len(v))
  4773. if e.h.Canonical {
  4774. v2 := make([]float64, len(v))
  4775. var i int
  4776. for k, _ := range v {
  4777. v2[i] = float64(k)
  4778. i++
  4779. }
  4780. sort.Sort(floatSlice(v2))
  4781. for _, k2 := range v2 {
  4782. if esep {
  4783. ee.WriteMapElemKey()
  4784. }
  4785. ee.EncodeFloat32(float32(k2))
  4786. if esep {
  4787. ee.WriteMapElemValue()
  4788. }
  4789. ee.EncodeUint(uint64(v[float32(k2)]))
  4790. }
  4791. } else {
  4792. for k2, v2 := range v {
  4793. if esep {
  4794. ee.WriteMapElemKey()
  4795. }
  4796. ee.EncodeFloat32(k2)
  4797. if esep {
  4798. ee.WriteMapElemValue()
  4799. }
  4800. ee.EncodeUint(uint64(v2))
  4801. }
  4802. }
  4803. ee.WriteMapEnd()
  4804. }
  4805. func (e *Encoder) fastpathEncMapFloat32Uint64R(f *codecFnInfo, rv reflect.Value) {
  4806. fastpathTV.EncMapFloat32Uint64V(rv2i(rv).(map[float32]uint64), e)
  4807. }
  4808. func (_ fastpathT) EncMapFloat32Uint64V(v map[float32]uint64, e *Encoder) {
  4809. ee, esep := e.e, e.hh.hasElemSeparators()
  4810. ee.WriteMapStart(len(v))
  4811. if e.h.Canonical {
  4812. v2 := make([]float64, len(v))
  4813. var i int
  4814. for k, _ := range v {
  4815. v2[i] = float64(k)
  4816. i++
  4817. }
  4818. sort.Sort(floatSlice(v2))
  4819. for _, k2 := range v2 {
  4820. if esep {
  4821. ee.WriteMapElemKey()
  4822. }
  4823. ee.EncodeFloat32(float32(k2))
  4824. if esep {
  4825. ee.WriteMapElemValue()
  4826. }
  4827. ee.EncodeUint(uint64(v[float32(k2)]))
  4828. }
  4829. } else {
  4830. for k2, v2 := range v {
  4831. if esep {
  4832. ee.WriteMapElemKey()
  4833. }
  4834. ee.EncodeFloat32(k2)
  4835. if esep {
  4836. ee.WriteMapElemValue()
  4837. }
  4838. ee.EncodeUint(uint64(v2))
  4839. }
  4840. }
  4841. ee.WriteMapEnd()
  4842. }
  4843. func (e *Encoder) fastpathEncMapFloat32UintptrR(f *codecFnInfo, rv reflect.Value) {
  4844. fastpathTV.EncMapFloat32UintptrV(rv2i(rv).(map[float32]uintptr), e)
  4845. }
  4846. func (_ fastpathT) EncMapFloat32UintptrV(v map[float32]uintptr, e *Encoder) {
  4847. ee, esep := e.e, e.hh.hasElemSeparators()
  4848. ee.WriteMapStart(len(v))
  4849. if e.h.Canonical {
  4850. v2 := make([]float64, len(v))
  4851. var i int
  4852. for k, _ := range v {
  4853. v2[i] = float64(k)
  4854. i++
  4855. }
  4856. sort.Sort(floatSlice(v2))
  4857. for _, k2 := range v2 {
  4858. if esep {
  4859. ee.WriteMapElemKey()
  4860. }
  4861. ee.EncodeFloat32(float32(k2))
  4862. if esep {
  4863. ee.WriteMapElemValue()
  4864. }
  4865. e.encode(v[float32(k2)])
  4866. }
  4867. } else {
  4868. for k2, v2 := range v {
  4869. if esep {
  4870. ee.WriteMapElemKey()
  4871. }
  4872. ee.EncodeFloat32(k2)
  4873. if esep {
  4874. ee.WriteMapElemValue()
  4875. }
  4876. e.encode(v2)
  4877. }
  4878. }
  4879. ee.WriteMapEnd()
  4880. }
  4881. func (e *Encoder) fastpathEncMapFloat32IntR(f *codecFnInfo, rv reflect.Value) {
  4882. fastpathTV.EncMapFloat32IntV(rv2i(rv).(map[float32]int), e)
  4883. }
  4884. func (_ fastpathT) EncMapFloat32IntV(v map[float32]int, e *Encoder) {
  4885. ee, esep := e.e, e.hh.hasElemSeparators()
  4886. ee.WriteMapStart(len(v))
  4887. if e.h.Canonical {
  4888. v2 := make([]float64, len(v))
  4889. var i int
  4890. for k, _ := range v {
  4891. v2[i] = float64(k)
  4892. i++
  4893. }
  4894. sort.Sort(floatSlice(v2))
  4895. for _, k2 := range v2 {
  4896. if esep {
  4897. ee.WriteMapElemKey()
  4898. }
  4899. ee.EncodeFloat32(float32(k2))
  4900. if esep {
  4901. ee.WriteMapElemValue()
  4902. }
  4903. ee.EncodeInt(int64(v[float32(k2)]))
  4904. }
  4905. } else {
  4906. for k2, v2 := range v {
  4907. if esep {
  4908. ee.WriteMapElemKey()
  4909. }
  4910. ee.EncodeFloat32(k2)
  4911. if esep {
  4912. ee.WriteMapElemValue()
  4913. }
  4914. ee.EncodeInt(int64(v2))
  4915. }
  4916. }
  4917. ee.WriteMapEnd()
  4918. }
  4919. func (e *Encoder) fastpathEncMapFloat32Int8R(f *codecFnInfo, rv reflect.Value) {
  4920. fastpathTV.EncMapFloat32Int8V(rv2i(rv).(map[float32]int8), e)
  4921. }
  4922. func (_ fastpathT) EncMapFloat32Int8V(v map[float32]int8, e *Encoder) {
  4923. ee, esep := e.e, e.hh.hasElemSeparators()
  4924. ee.WriteMapStart(len(v))
  4925. if e.h.Canonical {
  4926. v2 := make([]float64, len(v))
  4927. var i int
  4928. for k, _ := range v {
  4929. v2[i] = float64(k)
  4930. i++
  4931. }
  4932. sort.Sort(floatSlice(v2))
  4933. for _, k2 := range v2 {
  4934. if esep {
  4935. ee.WriteMapElemKey()
  4936. }
  4937. ee.EncodeFloat32(float32(k2))
  4938. if esep {
  4939. ee.WriteMapElemValue()
  4940. }
  4941. ee.EncodeInt(int64(v[float32(k2)]))
  4942. }
  4943. } else {
  4944. for k2, v2 := range v {
  4945. if esep {
  4946. ee.WriteMapElemKey()
  4947. }
  4948. ee.EncodeFloat32(k2)
  4949. if esep {
  4950. ee.WriteMapElemValue()
  4951. }
  4952. ee.EncodeInt(int64(v2))
  4953. }
  4954. }
  4955. ee.WriteMapEnd()
  4956. }
  4957. func (e *Encoder) fastpathEncMapFloat32Int16R(f *codecFnInfo, rv reflect.Value) {
  4958. fastpathTV.EncMapFloat32Int16V(rv2i(rv).(map[float32]int16), e)
  4959. }
  4960. func (_ fastpathT) EncMapFloat32Int16V(v map[float32]int16, e *Encoder) {
  4961. ee, esep := e.e, e.hh.hasElemSeparators()
  4962. ee.WriteMapStart(len(v))
  4963. if e.h.Canonical {
  4964. v2 := make([]float64, len(v))
  4965. var i int
  4966. for k, _ := range v {
  4967. v2[i] = float64(k)
  4968. i++
  4969. }
  4970. sort.Sort(floatSlice(v2))
  4971. for _, k2 := range v2 {
  4972. if esep {
  4973. ee.WriteMapElemKey()
  4974. }
  4975. ee.EncodeFloat32(float32(k2))
  4976. if esep {
  4977. ee.WriteMapElemValue()
  4978. }
  4979. ee.EncodeInt(int64(v[float32(k2)]))
  4980. }
  4981. } else {
  4982. for k2, v2 := range v {
  4983. if esep {
  4984. ee.WriteMapElemKey()
  4985. }
  4986. ee.EncodeFloat32(k2)
  4987. if esep {
  4988. ee.WriteMapElemValue()
  4989. }
  4990. ee.EncodeInt(int64(v2))
  4991. }
  4992. }
  4993. ee.WriteMapEnd()
  4994. }
  4995. func (e *Encoder) fastpathEncMapFloat32Int32R(f *codecFnInfo, rv reflect.Value) {
  4996. fastpathTV.EncMapFloat32Int32V(rv2i(rv).(map[float32]int32), e)
  4997. }
  4998. func (_ fastpathT) EncMapFloat32Int32V(v map[float32]int32, e *Encoder) {
  4999. ee, esep := e.e, e.hh.hasElemSeparators()
  5000. ee.WriteMapStart(len(v))
  5001. if e.h.Canonical {
  5002. v2 := make([]float64, len(v))
  5003. var i int
  5004. for k, _ := range v {
  5005. v2[i] = float64(k)
  5006. i++
  5007. }
  5008. sort.Sort(floatSlice(v2))
  5009. for _, k2 := range v2 {
  5010. if esep {
  5011. ee.WriteMapElemKey()
  5012. }
  5013. ee.EncodeFloat32(float32(k2))
  5014. if esep {
  5015. ee.WriteMapElemValue()
  5016. }
  5017. ee.EncodeInt(int64(v[float32(k2)]))
  5018. }
  5019. } else {
  5020. for k2, v2 := range v {
  5021. if esep {
  5022. ee.WriteMapElemKey()
  5023. }
  5024. ee.EncodeFloat32(k2)
  5025. if esep {
  5026. ee.WriteMapElemValue()
  5027. }
  5028. ee.EncodeInt(int64(v2))
  5029. }
  5030. }
  5031. ee.WriteMapEnd()
  5032. }
  5033. func (e *Encoder) fastpathEncMapFloat32Int64R(f *codecFnInfo, rv reflect.Value) {
  5034. fastpathTV.EncMapFloat32Int64V(rv2i(rv).(map[float32]int64), e)
  5035. }
  5036. func (_ fastpathT) EncMapFloat32Int64V(v map[float32]int64, e *Encoder) {
  5037. ee, esep := e.e, e.hh.hasElemSeparators()
  5038. ee.WriteMapStart(len(v))
  5039. if e.h.Canonical {
  5040. v2 := make([]float64, len(v))
  5041. var i int
  5042. for k, _ := range v {
  5043. v2[i] = float64(k)
  5044. i++
  5045. }
  5046. sort.Sort(floatSlice(v2))
  5047. for _, k2 := range v2 {
  5048. if esep {
  5049. ee.WriteMapElemKey()
  5050. }
  5051. ee.EncodeFloat32(float32(k2))
  5052. if esep {
  5053. ee.WriteMapElemValue()
  5054. }
  5055. ee.EncodeInt(int64(v[float32(k2)]))
  5056. }
  5057. } else {
  5058. for k2, v2 := range v {
  5059. if esep {
  5060. ee.WriteMapElemKey()
  5061. }
  5062. ee.EncodeFloat32(k2)
  5063. if esep {
  5064. ee.WriteMapElemValue()
  5065. }
  5066. ee.EncodeInt(int64(v2))
  5067. }
  5068. }
  5069. ee.WriteMapEnd()
  5070. }
  5071. func (e *Encoder) fastpathEncMapFloat32Float32R(f *codecFnInfo, rv reflect.Value) {
  5072. fastpathTV.EncMapFloat32Float32V(rv2i(rv).(map[float32]float32), e)
  5073. }
  5074. func (_ fastpathT) EncMapFloat32Float32V(v map[float32]float32, e *Encoder) {
  5075. ee, esep := e.e, e.hh.hasElemSeparators()
  5076. ee.WriteMapStart(len(v))
  5077. if e.h.Canonical {
  5078. v2 := make([]float64, len(v))
  5079. var i int
  5080. for k, _ := range v {
  5081. v2[i] = float64(k)
  5082. i++
  5083. }
  5084. sort.Sort(floatSlice(v2))
  5085. for _, k2 := range v2 {
  5086. if esep {
  5087. ee.WriteMapElemKey()
  5088. }
  5089. ee.EncodeFloat32(float32(k2))
  5090. if esep {
  5091. ee.WriteMapElemValue()
  5092. }
  5093. ee.EncodeFloat32(v[float32(k2)])
  5094. }
  5095. } else {
  5096. for k2, v2 := range v {
  5097. if esep {
  5098. ee.WriteMapElemKey()
  5099. }
  5100. ee.EncodeFloat32(k2)
  5101. if esep {
  5102. ee.WriteMapElemValue()
  5103. }
  5104. ee.EncodeFloat32(v2)
  5105. }
  5106. }
  5107. ee.WriteMapEnd()
  5108. }
  5109. func (e *Encoder) fastpathEncMapFloat32Float64R(f *codecFnInfo, rv reflect.Value) {
  5110. fastpathTV.EncMapFloat32Float64V(rv2i(rv).(map[float32]float64), e)
  5111. }
  5112. func (_ fastpathT) EncMapFloat32Float64V(v map[float32]float64, e *Encoder) {
  5113. ee, esep := e.e, e.hh.hasElemSeparators()
  5114. ee.WriteMapStart(len(v))
  5115. if e.h.Canonical {
  5116. v2 := make([]float64, len(v))
  5117. var i int
  5118. for k, _ := range v {
  5119. v2[i] = float64(k)
  5120. i++
  5121. }
  5122. sort.Sort(floatSlice(v2))
  5123. for _, k2 := range v2 {
  5124. if esep {
  5125. ee.WriteMapElemKey()
  5126. }
  5127. ee.EncodeFloat32(float32(k2))
  5128. if esep {
  5129. ee.WriteMapElemValue()
  5130. }
  5131. ee.EncodeFloat64(v[float32(k2)])
  5132. }
  5133. } else {
  5134. for k2, v2 := range v {
  5135. if esep {
  5136. ee.WriteMapElemKey()
  5137. }
  5138. ee.EncodeFloat32(k2)
  5139. if esep {
  5140. ee.WriteMapElemValue()
  5141. }
  5142. ee.EncodeFloat64(v2)
  5143. }
  5144. }
  5145. ee.WriteMapEnd()
  5146. }
  5147. func (e *Encoder) fastpathEncMapFloat32BoolR(f *codecFnInfo, rv reflect.Value) {
  5148. fastpathTV.EncMapFloat32BoolV(rv2i(rv).(map[float32]bool), e)
  5149. }
  5150. func (_ fastpathT) EncMapFloat32BoolV(v map[float32]bool, e *Encoder) {
  5151. ee, esep := e.e, e.hh.hasElemSeparators()
  5152. ee.WriteMapStart(len(v))
  5153. if e.h.Canonical {
  5154. v2 := make([]float64, len(v))
  5155. var i int
  5156. for k, _ := range v {
  5157. v2[i] = float64(k)
  5158. i++
  5159. }
  5160. sort.Sort(floatSlice(v2))
  5161. for _, k2 := range v2 {
  5162. if esep {
  5163. ee.WriteMapElemKey()
  5164. }
  5165. ee.EncodeFloat32(float32(k2))
  5166. if esep {
  5167. ee.WriteMapElemValue()
  5168. }
  5169. ee.EncodeBool(v[float32(k2)])
  5170. }
  5171. } else {
  5172. for k2, v2 := range v {
  5173. if esep {
  5174. ee.WriteMapElemKey()
  5175. }
  5176. ee.EncodeFloat32(k2)
  5177. if esep {
  5178. ee.WriteMapElemValue()
  5179. }
  5180. ee.EncodeBool(v2)
  5181. }
  5182. }
  5183. ee.WriteMapEnd()
  5184. }
  5185. func (e *Encoder) fastpathEncMapFloat64IntfR(f *codecFnInfo, rv reflect.Value) {
  5186. fastpathTV.EncMapFloat64IntfV(rv2i(rv).(map[float64]interface{}), e)
  5187. }
  5188. func (_ fastpathT) EncMapFloat64IntfV(v map[float64]interface{}, e *Encoder) {
  5189. ee, esep := e.e, e.hh.hasElemSeparators()
  5190. ee.WriteMapStart(len(v))
  5191. if e.h.Canonical {
  5192. v2 := make([]float64, len(v))
  5193. var i int
  5194. for k, _ := range v {
  5195. v2[i] = float64(k)
  5196. i++
  5197. }
  5198. sort.Sort(floatSlice(v2))
  5199. for _, k2 := range v2 {
  5200. if esep {
  5201. ee.WriteMapElemKey()
  5202. }
  5203. ee.EncodeFloat64(float64(k2))
  5204. if esep {
  5205. ee.WriteMapElemValue()
  5206. }
  5207. e.encode(v[float64(k2)])
  5208. }
  5209. } else {
  5210. for k2, v2 := range v {
  5211. if esep {
  5212. ee.WriteMapElemKey()
  5213. }
  5214. ee.EncodeFloat64(k2)
  5215. if esep {
  5216. ee.WriteMapElemValue()
  5217. }
  5218. e.encode(v2)
  5219. }
  5220. }
  5221. ee.WriteMapEnd()
  5222. }
  5223. func (e *Encoder) fastpathEncMapFloat64StringR(f *codecFnInfo, rv reflect.Value) {
  5224. fastpathTV.EncMapFloat64StringV(rv2i(rv).(map[float64]string), e)
  5225. }
  5226. func (_ fastpathT) EncMapFloat64StringV(v map[float64]string, e *Encoder) {
  5227. ee, esep := e.e, e.hh.hasElemSeparators()
  5228. ee.WriteMapStart(len(v))
  5229. if e.h.Canonical {
  5230. v2 := make([]float64, len(v))
  5231. var i int
  5232. for k, _ := range v {
  5233. v2[i] = float64(k)
  5234. i++
  5235. }
  5236. sort.Sort(floatSlice(v2))
  5237. for _, k2 := range v2 {
  5238. if esep {
  5239. ee.WriteMapElemKey()
  5240. }
  5241. ee.EncodeFloat64(float64(k2))
  5242. if esep {
  5243. ee.WriteMapElemValue()
  5244. }
  5245. ee.EncodeString(c_UTF8, v[float64(k2)])
  5246. }
  5247. } else {
  5248. for k2, v2 := range v {
  5249. if esep {
  5250. ee.WriteMapElemKey()
  5251. }
  5252. ee.EncodeFloat64(k2)
  5253. if esep {
  5254. ee.WriteMapElemValue()
  5255. }
  5256. ee.EncodeString(c_UTF8, v2)
  5257. }
  5258. }
  5259. ee.WriteMapEnd()
  5260. }
  5261. func (e *Encoder) fastpathEncMapFloat64UintR(f *codecFnInfo, rv reflect.Value) {
  5262. fastpathTV.EncMapFloat64UintV(rv2i(rv).(map[float64]uint), e)
  5263. }
  5264. func (_ fastpathT) EncMapFloat64UintV(v map[float64]uint, e *Encoder) {
  5265. ee, esep := e.e, e.hh.hasElemSeparators()
  5266. ee.WriteMapStart(len(v))
  5267. if e.h.Canonical {
  5268. v2 := make([]float64, len(v))
  5269. var i int
  5270. for k, _ := range v {
  5271. v2[i] = float64(k)
  5272. i++
  5273. }
  5274. sort.Sort(floatSlice(v2))
  5275. for _, k2 := range v2 {
  5276. if esep {
  5277. ee.WriteMapElemKey()
  5278. }
  5279. ee.EncodeFloat64(float64(k2))
  5280. if esep {
  5281. ee.WriteMapElemValue()
  5282. }
  5283. ee.EncodeUint(uint64(v[float64(k2)]))
  5284. }
  5285. } else {
  5286. for k2, v2 := range v {
  5287. if esep {
  5288. ee.WriteMapElemKey()
  5289. }
  5290. ee.EncodeFloat64(k2)
  5291. if esep {
  5292. ee.WriteMapElemValue()
  5293. }
  5294. ee.EncodeUint(uint64(v2))
  5295. }
  5296. }
  5297. ee.WriteMapEnd()
  5298. }
  5299. func (e *Encoder) fastpathEncMapFloat64Uint8R(f *codecFnInfo, rv reflect.Value) {
  5300. fastpathTV.EncMapFloat64Uint8V(rv2i(rv).(map[float64]uint8), e)
  5301. }
  5302. func (_ fastpathT) EncMapFloat64Uint8V(v map[float64]uint8, e *Encoder) {
  5303. ee, esep := e.e, e.hh.hasElemSeparators()
  5304. ee.WriteMapStart(len(v))
  5305. if e.h.Canonical {
  5306. v2 := make([]float64, len(v))
  5307. var i int
  5308. for k, _ := range v {
  5309. v2[i] = float64(k)
  5310. i++
  5311. }
  5312. sort.Sort(floatSlice(v2))
  5313. for _, k2 := range v2 {
  5314. if esep {
  5315. ee.WriteMapElemKey()
  5316. }
  5317. ee.EncodeFloat64(float64(k2))
  5318. if esep {
  5319. ee.WriteMapElemValue()
  5320. }
  5321. ee.EncodeUint(uint64(v[float64(k2)]))
  5322. }
  5323. } else {
  5324. for k2, v2 := range v {
  5325. if esep {
  5326. ee.WriteMapElemKey()
  5327. }
  5328. ee.EncodeFloat64(k2)
  5329. if esep {
  5330. ee.WriteMapElemValue()
  5331. }
  5332. ee.EncodeUint(uint64(v2))
  5333. }
  5334. }
  5335. ee.WriteMapEnd()
  5336. }
  5337. func (e *Encoder) fastpathEncMapFloat64Uint16R(f *codecFnInfo, rv reflect.Value) {
  5338. fastpathTV.EncMapFloat64Uint16V(rv2i(rv).(map[float64]uint16), e)
  5339. }
  5340. func (_ fastpathT) EncMapFloat64Uint16V(v map[float64]uint16, e *Encoder) {
  5341. ee, esep := e.e, e.hh.hasElemSeparators()
  5342. ee.WriteMapStart(len(v))
  5343. if e.h.Canonical {
  5344. v2 := make([]float64, len(v))
  5345. var i int
  5346. for k, _ := range v {
  5347. v2[i] = float64(k)
  5348. i++
  5349. }
  5350. sort.Sort(floatSlice(v2))
  5351. for _, k2 := range v2 {
  5352. if esep {
  5353. ee.WriteMapElemKey()
  5354. }
  5355. ee.EncodeFloat64(float64(k2))
  5356. if esep {
  5357. ee.WriteMapElemValue()
  5358. }
  5359. ee.EncodeUint(uint64(v[float64(k2)]))
  5360. }
  5361. } else {
  5362. for k2, v2 := range v {
  5363. if esep {
  5364. ee.WriteMapElemKey()
  5365. }
  5366. ee.EncodeFloat64(k2)
  5367. if esep {
  5368. ee.WriteMapElemValue()
  5369. }
  5370. ee.EncodeUint(uint64(v2))
  5371. }
  5372. }
  5373. ee.WriteMapEnd()
  5374. }
  5375. func (e *Encoder) fastpathEncMapFloat64Uint32R(f *codecFnInfo, rv reflect.Value) {
  5376. fastpathTV.EncMapFloat64Uint32V(rv2i(rv).(map[float64]uint32), e)
  5377. }
  5378. func (_ fastpathT) EncMapFloat64Uint32V(v map[float64]uint32, e *Encoder) {
  5379. ee, esep := e.e, e.hh.hasElemSeparators()
  5380. ee.WriteMapStart(len(v))
  5381. if e.h.Canonical {
  5382. v2 := make([]float64, len(v))
  5383. var i int
  5384. for k, _ := range v {
  5385. v2[i] = float64(k)
  5386. i++
  5387. }
  5388. sort.Sort(floatSlice(v2))
  5389. for _, k2 := range v2 {
  5390. if esep {
  5391. ee.WriteMapElemKey()
  5392. }
  5393. ee.EncodeFloat64(float64(k2))
  5394. if esep {
  5395. ee.WriteMapElemValue()
  5396. }
  5397. ee.EncodeUint(uint64(v[float64(k2)]))
  5398. }
  5399. } else {
  5400. for k2, v2 := range v {
  5401. if esep {
  5402. ee.WriteMapElemKey()
  5403. }
  5404. ee.EncodeFloat64(k2)
  5405. if esep {
  5406. ee.WriteMapElemValue()
  5407. }
  5408. ee.EncodeUint(uint64(v2))
  5409. }
  5410. }
  5411. ee.WriteMapEnd()
  5412. }
  5413. func (e *Encoder) fastpathEncMapFloat64Uint64R(f *codecFnInfo, rv reflect.Value) {
  5414. fastpathTV.EncMapFloat64Uint64V(rv2i(rv).(map[float64]uint64), e)
  5415. }
  5416. func (_ fastpathT) EncMapFloat64Uint64V(v map[float64]uint64, e *Encoder) {
  5417. ee, esep := e.e, e.hh.hasElemSeparators()
  5418. ee.WriteMapStart(len(v))
  5419. if e.h.Canonical {
  5420. v2 := make([]float64, len(v))
  5421. var i int
  5422. for k, _ := range v {
  5423. v2[i] = float64(k)
  5424. i++
  5425. }
  5426. sort.Sort(floatSlice(v2))
  5427. for _, k2 := range v2 {
  5428. if esep {
  5429. ee.WriteMapElemKey()
  5430. }
  5431. ee.EncodeFloat64(float64(k2))
  5432. if esep {
  5433. ee.WriteMapElemValue()
  5434. }
  5435. ee.EncodeUint(uint64(v[float64(k2)]))
  5436. }
  5437. } else {
  5438. for k2, v2 := range v {
  5439. if esep {
  5440. ee.WriteMapElemKey()
  5441. }
  5442. ee.EncodeFloat64(k2)
  5443. if esep {
  5444. ee.WriteMapElemValue()
  5445. }
  5446. ee.EncodeUint(uint64(v2))
  5447. }
  5448. }
  5449. ee.WriteMapEnd()
  5450. }
  5451. func (e *Encoder) fastpathEncMapFloat64UintptrR(f *codecFnInfo, rv reflect.Value) {
  5452. fastpathTV.EncMapFloat64UintptrV(rv2i(rv).(map[float64]uintptr), e)
  5453. }
  5454. func (_ fastpathT) EncMapFloat64UintptrV(v map[float64]uintptr, e *Encoder) {
  5455. ee, esep := e.e, e.hh.hasElemSeparators()
  5456. ee.WriteMapStart(len(v))
  5457. if e.h.Canonical {
  5458. v2 := make([]float64, len(v))
  5459. var i int
  5460. for k, _ := range v {
  5461. v2[i] = float64(k)
  5462. i++
  5463. }
  5464. sort.Sort(floatSlice(v2))
  5465. for _, k2 := range v2 {
  5466. if esep {
  5467. ee.WriteMapElemKey()
  5468. }
  5469. ee.EncodeFloat64(float64(k2))
  5470. if esep {
  5471. ee.WriteMapElemValue()
  5472. }
  5473. e.encode(v[float64(k2)])
  5474. }
  5475. } else {
  5476. for k2, v2 := range v {
  5477. if esep {
  5478. ee.WriteMapElemKey()
  5479. }
  5480. ee.EncodeFloat64(k2)
  5481. if esep {
  5482. ee.WriteMapElemValue()
  5483. }
  5484. e.encode(v2)
  5485. }
  5486. }
  5487. ee.WriteMapEnd()
  5488. }
  5489. func (e *Encoder) fastpathEncMapFloat64IntR(f *codecFnInfo, rv reflect.Value) {
  5490. fastpathTV.EncMapFloat64IntV(rv2i(rv).(map[float64]int), e)
  5491. }
  5492. func (_ fastpathT) EncMapFloat64IntV(v map[float64]int, e *Encoder) {
  5493. ee, esep := e.e, e.hh.hasElemSeparators()
  5494. ee.WriteMapStart(len(v))
  5495. if e.h.Canonical {
  5496. v2 := make([]float64, len(v))
  5497. var i int
  5498. for k, _ := range v {
  5499. v2[i] = float64(k)
  5500. i++
  5501. }
  5502. sort.Sort(floatSlice(v2))
  5503. for _, k2 := range v2 {
  5504. if esep {
  5505. ee.WriteMapElemKey()
  5506. }
  5507. ee.EncodeFloat64(float64(k2))
  5508. if esep {
  5509. ee.WriteMapElemValue()
  5510. }
  5511. ee.EncodeInt(int64(v[float64(k2)]))
  5512. }
  5513. } else {
  5514. for k2, v2 := range v {
  5515. if esep {
  5516. ee.WriteMapElemKey()
  5517. }
  5518. ee.EncodeFloat64(k2)
  5519. if esep {
  5520. ee.WriteMapElemValue()
  5521. }
  5522. ee.EncodeInt(int64(v2))
  5523. }
  5524. }
  5525. ee.WriteMapEnd()
  5526. }
  5527. func (e *Encoder) fastpathEncMapFloat64Int8R(f *codecFnInfo, rv reflect.Value) {
  5528. fastpathTV.EncMapFloat64Int8V(rv2i(rv).(map[float64]int8), e)
  5529. }
  5530. func (_ fastpathT) EncMapFloat64Int8V(v map[float64]int8, e *Encoder) {
  5531. ee, esep := e.e, e.hh.hasElemSeparators()
  5532. ee.WriteMapStart(len(v))
  5533. if e.h.Canonical {
  5534. v2 := make([]float64, len(v))
  5535. var i int
  5536. for k, _ := range v {
  5537. v2[i] = float64(k)
  5538. i++
  5539. }
  5540. sort.Sort(floatSlice(v2))
  5541. for _, k2 := range v2 {
  5542. if esep {
  5543. ee.WriteMapElemKey()
  5544. }
  5545. ee.EncodeFloat64(float64(k2))
  5546. if esep {
  5547. ee.WriteMapElemValue()
  5548. }
  5549. ee.EncodeInt(int64(v[float64(k2)]))
  5550. }
  5551. } else {
  5552. for k2, v2 := range v {
  5553. if esep {
  5554. ee.WriteMapElemKey()
  5555. }
  5556. ee.EncodeFloat64(k2)
  5557. if esep {
  5558. ee.WriteMapElemValue()
  5559. }
  5560. ee.EncodeInt(int64(v2))
  5561. }
  5562. }
  5563. ee.WriteMapEnd()
  5564. }
  5565. func (e *Encoder) fastpathEncMapFloat64Int16R(f *codecFnInfo, rv reflect.Value) {
  5566. fastpathTV.EncMapFloat64Int16V(rv2i(rv).(map[float64]int16), e)
  5567. }
  5568. func (_ fastpathT) EncMapFloat64Int16V(v map[float64]int16, e *Encoder) {
  5569. ee, esep := e.e, e.hh.hasElemSeparators()
  5570. ee.WriteMapStart(len(v))
  5571. if e.h.Canonical {
  5572. v2 := make([]float64, len(v))
  5573. var i int
  5574. for k, _ := range v {
  5575. v2[i] = float64(k)
  5576. i++
  5577. }
  5578. sort.Sort(floatSlice(v2))
  5579. for _, k2 := range v2 {
  5580. if esep {
  5581. ee.WriteMapElemKey()
  5582. }
  5583. ee.EncodeFloat64(float64(k2))
  5584. if esep {
  5585. ee.WriteMapElemValue()
  5586. }
  5587. ee.EncodeInt(int64(v[float64(k2)]))
  5588. }
  5589. } else {
  5590. for k2, v2 := range v {
  5591. if esep {
  5592. ee.WriteMapElemKey()
  5593. }
  5594. ee.EncodeFloat64(k2)
  5595. if esep {
  5596. ee.WriteMapElemValue()
  5597. }
  5598. ee.EncodeInt(int64(v2))
  5599. }
  5600. }
  5601. ee.WriteMapEnd()
  5602. }
  5603. func (e *Encoder) fastpathEncMapFloat64Int32R(f *codecFnInfo, rv reflect.Value) {
  5604. fastpathTV.EncMapFloat64Int32V(rv2i(rv).(map[float64]int32), e)
  5605. }
  5606. func (_ fastpathT) EncMapFloat64Int32V(v map[float64]int32, e *Encoder) {
  5607. ee, esep := e.e, e.hh.hasElemSeparators()
  5608. ee.WriteMapStart(len(v))
  5609. if e.h.Canonical {
  5610. v2 := make([]float64, len(v))
  5611. var i int
  5612. for k, _ := range v {
  5613. v2[i] = float64(k)
  5614. i++
  5615. }
  5616. sort.Sort(floatSlice(v2))
  5617. for _, k2 := range v2 {
  5618. if esep {
  5619. ee.WriteMapElemKey()
  5620. }
  5621. ee.EncodeFloat64(float64(k2))
  5622. if esep {
  5623. ee.WriteMapElemValue()
  5624. }
  5625. ee.EncodeInt(int64(v[float64(k2)]))
  5626. }
  5627. } else {
  5628. for k2, v2 := range v {
  5629. if esep {
  5630. ee.WriteMapElemKey()
  5631. }
  5632. ee.EncodeFloat64(k2)
  5633. if esep {
  5634. ee.WriteMapElemValue()
  5635. }
  5636. ee.EncodeInt(int64(v2))
  5637. }
  5638. }
  5639. ee.WriteMapEnd()
  5640. }
  5641. func (e *Encoder) fastpathEncMapFloat64Int64R(f *codecFnInfo, rv reflect.Value) {
  5642. fastpathTV.EncMapFloat64Int64V(rv2i(rv).(map[float64]int64), e)
  5643. }
  5644. func (_ fastpathT) EncMapFloat64Int64V(v map[float64]int64, e *Encoder) {
  5645. ee, esep := e.e, e.hh.hasElemSeparators()
  5646. ee.WriteMapStart(len(v))
  5647. if e.h.Canonical {
  5648. v2 := make([]float64, len(v))
  5649. var i int
  5650. for k, _ := range v {
  5651. v2[i] = float64(k)
  5652. i++
  5653. }
  5654. sort.Sort(floatSlice(v2))
  5655. for _, k2 := range v2 {
  5656. if esep {
  5657. ee.WriteMapElemKey()
  5658. }
  5659. ee.EncodeFloat64(float64(k2))
  5660. if esep {
  5661. ee.WriteMapElemValue()
  5662. }
  5663. ee.EncodeInt(int64(v[float64(k2)]))
  5664. }
  5665. } else {
  5666. for k2, v2 := range v {
  5667. if esep {
  5668. ee.WriteMapElemKey()
  5669. }
  5670. ee.EncodeFloat64(k2)
  5671. if esep {
  5672. ee.WriteMapElemValue()
  5673. }
  5674. ee.EncodeInt(int64(v2))
  5675. }
  5676. }
  5677. ee.WriteMapEnd()
  5678. }
  5679. func (e *Encoder) fastpathEncMapFloat64Float32R(f *codecFnInfo, rv reflect.Value) {
  5680. fastpathTV.EncMapFloat64Float32V(rv2i(rv).(map[float64]float32), e)
  5681. }
  5682. func (_ fastpathT) EncMapFloat64Float32V(v map[float64]float32, e *Encoder) {
  5683. ee, esep := e.e, e.hh.hasElemSeparators()
  5684. ee.WriteMapStart(len(v))
  5685. if e.h.Canonical {
  5686. v2 := make([]float64, len(v))
  5687. var i int
  5688. for k, _ := range v {
  5689. v2[i] = float64(k)
  5690. i++
  5691. }
  5692. sort.Sort(floatSlice(v2))
  5693. for _, k2 := range v2 {
  5694. if esep {
  5695. ee.WriteMapElemKey()
  5696. }
  5697. ee.EncodeFloat64(float64(k2))
  5698. if esep {
  5699. ee.WriteMapElemValue()
  5700. }
  5701. ee.EncodeFloat32(v[float64(k2)])
  5702. }
  5703. } else {
  5704. for k2, v2 := range v {
  5705. if esep {
  5706. ee.WriteMapElemKey()
  5707. }
  5708. ee.EncodeFloat64(k2)
  5709. if esep {
  5710. ee.WriteMapElemValue()
  5711. }
  5712. ee.EncodeFloat32(v2)
  5713. }
  5714. }
  5715. ee.WriteMapEnd()
  5716. }
  5717. func (e *Encoder) fastpathEncMapFloat64Float64R(f *codecFnInfo, rv reflect.Value) {
  5718. fastpathTV.EncMapFloat64Float64V(rv2i(rv).(map[float64]float64), e)
  5719. }
  5720. func (_ fastpathT) EncMapFloat64Float64V(v map[float64]float64, e *Encoder) {
  5721. ee, esep := e.e, e.hh.hasElemSeparators()
  5722. ee.WriteMapStart(len(v))
  5723. if e.h.Canonical {
  5724. v2 := make([]float64, len(v))
  5725. var i int
  5726. for k, _ := range v {
  5727. v2[i] = float64(k)
  5728. i++
  5729. }
  5730. sort.Sort(floatSlice(v2))
  5731. for _, k2 := range v2 {
  5732. if esep {
  5733. ee.WriteMapElemKey()
  5734. }
  5735. ee.EncodeFloat64(float64(k2))
  5736. if esep {
  5737. ee.WriteMapElemValue()
  5738. }
  5739. ee.EncodeFloat64(v[float64(k2)])
  5740. }
  5741. } else {
  5742. for k2, v2 := range v {
  5743. if esep {
  5744. ee.WriteMapElemKey()
  5745. }
  5746. ee.EncodeFloat64(k2)
  5747. if esep {
  5748. ee.WriteMapElemValue()
  5749. }
  5750. ee.EncodeFloat64(v2)
  5751. }
  5752. }
  5753. ee.WriteMapEnd()
  5754. }
  5755. func (e *Encoder) fastpathEncMapFloat64BoolR(f *codecFnInfo, rv reflect.Value) {
  5756. fastpathTV.EncMapFloat64BoolV(rv2i(rv).(map[float64]bool), e)
  5757. }
  5758. func (_ fastpathT) EncMapFloat64BoolV(v map[float64]bool, e *Encoder) {
  5759. ee, esep := e.e, e.hh.hasElemSeparators()
  5760. ee.WriteMapStart(len(v))
  5761. if e.h.Canonical {
  5762. v2 := make([]float64, len(v))
  5763. var i int
  5764. for k, _ := range v {
  5765. v2[i] = float64(k)
  5766. i++
  5767. }
  5768. sort.Sort(floatSlice(v2))
  5769. for _, k2 := range v2 {
  5770. if esep {
  5771. ee.WriteMapElemKey()
  5772. }
  5773. ee.EncodeFloat64(float64(k2))
  5774. if esep {
  5775. ee.WriteMapElemValue()
  5776. }
  5777. ee.EncodeBool(v[float64(k2)])
  5778. }
  5779. } else {
  5780. for k2, v2 := range v {
  5781. if esep {
  5782. ee.WriteMapElemKey()
  5783. }
  5784. ee.EncodeFloat64(k2)
  5785. if esep {
  5786. ee.WriteMapElemValue()
  5787. }
  5788. ee.EncodeBool(v2)
  5789. }
  5790. }
  5791. ee.WriteMapEnd()
  5792. }
  5793. func (e *Encoder) fastpathEncMapUintIntfR(f *codecFnInfo, rv reflect.Value) {
  5794. fastpathTV.EncMapUintIntfV(rv2i(rv).(map[uint]interface{}), e)
  5795. }
  5796. func (_ fastpathT) EncMapUintIntfV(v map[uint]interface{}, e *Encoder) {
  5797. ee, esep := e.e, e.hh.hasElemSeparators()
  5798. ee.WriteMapStart(len(v))
  5799. if e.h.Canonical {
  5800. v2 := make([]uint64, len(v))
  5801. var i int
  5802. for k, _ := range v {
  5803. v2[i] = uint64(k)
  5804. i++
  5805. }
  5806. sort.Sort(uintSlice(v2))
  5807. for _, k2 := range v2 {
  5808. if esep {
  5809. ee.WriteMapElemKey()
  5810. }
  5811. ee.EncodeUint(uint64(uint(k2)))
  5812. if esep {
  5813. ee.WriteMapElemValue()
  5814. }
  5815. e.encode(v[uint(k2)])
  5816. }
  5817. } else {
  5818. for k2, v2 := range v {
  5819. if esep {
  5820. ee.WriteMapElemKey()
  5821. }
  5822. ee.EncodeUint(uint64(k2))
  5823. if esep {
  5824. ee.WriteMapElemValue()
  5825. }
  5826. e.encode(v2)
  5827. }
  5828. }
  5829. ee.WriteMapEnd()
  5830. }
  5831. func (e *Encoder) fastpathEncMapUintStringR(f *codecFnInfo, rv reflect.Value) {
  5832. fastpathTV.EncMapUintStringV(rv2i(rv).(map[uint]string), e)
  5833. }
  5834. func (_ fastpathT) EncMapUintStringV(v map[uint]string, e *Encoder) {
  5835. ee, esep := e.e, e.hh.hasElemSeparators()
  5836. ee.WriteMapStart(len(v))
  5837. if e.h.Canonical {
  5838. v2 := make([]uint64, len(v))
  5839. var i int
  5840. for k, _ := range v {
  5841. v2[i] = uint64(k)
  5842. i++
  5843. }
  5844. sort.Sort(uintSlice(v2))
  5845. for _, k2 := range v2 {
  5846. if esep {
  5847. ee.WriteMapElemKey()
  5848. }
  5849. ee.EncodeUint(uint64(uint(k2)))
  5850. if esep {
  5851. ee.WriteMapElemValue()
  5852. }
  5853. ee.EncodeString(c_UTF8, v[uint(k2)])
  5854. }
  5855. } else {
  5856. for k2, v2 := range v {
  5857. if esep {
  5858. ee.WriteMapElemKey()
  5859. }
  5860. ee.EncodeUint(uint64(k2))
  5861. if esep {
  5862. ee.WriteMapElemValue()
  5863. }
  5864. ee.EncodeString(c_UTF8, v2)
  5865. }
  5866. }
  5867. ee.WriteMapEnd()
  5868. }
  5869. func (e *Encoder) fastpathEncMapUintUintR(f *codecFnInfo, rv reflect.Value) {
  5870. fastpathTV.EncMapUintUintV(rv2i(rv).(map[uint]uint), e)
  5871. }
  5872. func (_ fastpathT) EncMapUintUintV(v map[uint]uint, e *Encoder) {
  5873. ee, esep := e.e, e.hh.hasElemSeparators()
  5874. ee.WriteMapStart(len(v))
  5875. if e.h.Canonical {
  5876. v2 := make([]uint64, len(v))
  5877. var i int
  5878. for k, _ := range v {
  5879. v2[i] = uint64(k)
  5880. i++
  5881. }
  5882. sort.Sort(uintSlice(v2))
  5883. for _, k2 := range v2 {
  5884. if esep {
  5885. ee.WriteMapElemKey()
  5886. }
  5887. ee.EncodeUint(uint64(uint(k2)))
  5888. if esep {
  5889. ee.WriteMapElemValue()
  5890. }
  5891. ee.EncodeUint(uint64(v[uint(k2)]))
  5892. }
  5893. } else {
  5894. for k2, v2 := range v {
  5895. if esep {
  5896. ee.WriteMapElemKey()
  5897. }
  5898. ee.EncodeUint(uint64(k2))
  5899. if esep {
  5900. ee.WriteMapElemValue()
  5901. }
  5902. ee.EncodeUint(uint64(v2))
  5903. }
  5904. }
  5905. ee.WriteMapEnd()
  5906. }
  5907. func (e *Encoder) fastpathEncMapUintUint8R(f *codecFnInfo, rv reflect.Value) {
  5908. fastpathTV.EncMapUintUint8V(rv2i(rv).(map[uint]uint8), e)
  5909. }
  5910. func (_ fastpathT) EncMapUintUint8V(v map[uint]uint8, e *Encoder) {
  5911. ee, esep := e.e, e.hh.hasElemSeparators()
  5912. ee.WriteMapStart(len(v))
  5913. if e.h.Canonical {
  5914. v2 := make([]uint64, len(v))
  5915. var i int
  5916. for k, _ := range v {
  5917. v2[i] = uint64(k)
  5918. i++
  5919. }
  5920. sort.Sort(uintSlice(v2))
  5921. for _, k2 := range v2 {
  5922. if esep {
  5923. ee.WriteMapElemKey()
  5924. }
  5925. ee.EncodeUint(uint64(uint(k2)))
  5926. if esep {
  5927. ee.WriteMapElemValue()
  5928. }
  5929. ee.EncodeUint(uint64(v[uint(k2)]))
  5930. }
  5931. } else {
  5932. for k2, v2 := range v {
  5933. if esep {
  5934. ee.WriteMapElemKey()
  5935. }
  5936. ee.EncodeUint(uint64(k2))
  5937. if esep {
  5938. ee.WriteMapElemValue()
  5939. }
  5940. ee.EncodeUint(uint64(v2))
  5941. }
  5942. }
  5943. ee.WriteMapEnd()
  5944. }
  5945. func (e *Encoder) fastpathEncMapUintUint16R(f *codecFnInfo, rv reflect.Value) {
  5946. fastpathTV.EncMapUintUint16V(rv2i(rv).(map[uint]uint16), e)
  5947. }
  5948. func (_ fastpathT) EncMapUintUint16V(v map[uint]uint16, e *Encoder) {
  5949. ee, esep := e.e, e.hh.hasElemSeparators()
  5950. ee.WriteMapStart(len(v))
  5951. if e.h.Canonical {
  5952. v2 := make([]uint64, len(v))
  5953. var i int
  5954. for k, _ := range v {
  5955. v2[i] = uint64(k)
  5956. i++
  5957. }
  5958. sort.Sort(uintSlice(v2))
  5959. for _, k2 := range v2 {
  5960. if esep {
  5961. ee.WriteMapElemKey()
  5962. }
  5963. ee.EncodeUint(uint64(uint(k2)))
  5964. if esep {
  5965. ee.WriteMapElemValue()
  5966. }
  5967. ee.EncodeUint(uint64(v[uint(k2)]))
  5968. }
  5969. } else {
  5970. for k2, v2 := range v {
  5971. if esep {
  5972. ee.WriteMapElemKey()
  5973. }
  5974. ee.EncodeUint(uint64(k2))
  5975. if esep {
  5976. ee.WriteMapElemValue()
  5977. }
  5978. ee.EncodeUint(uint64(v2))
  5979. }
  5980. }
  5981. ee.WriteMapEnd()
  5982. }
  5983. func (e *Encoder) fastpathEncMapUintUint32R(f *codecFnInfo, rv reflect.Value) {
  5984. fastpathTV.EncMapUintUint32V(rv2i(rv).(map[uint]uint32), e)
  5985. }
  5986. func (_ fastpathT) EncMapUintUint32V(v map[uint]uint32, e *Encoder) {
  5987. ee, esep := e.e, e.hh.hasElemSeparators()
  5988. ee.WriteMapStart(len(v))
  5989. if e.h.Canonical {
  5990. v2 := make([]uint64, len(v))
  5991. var i int
  5992. for k, _ := range v {
  5993. v2[i] = uint64(k)
  5994. i++
  5995. }
  5996. sort.Sort(uintSlice(v2))
  5997. for _, k2 := range v2 {
  5998. if esep {
  5999. ee.WriteMapElemKey()
  6000. }
  6001. ee.EncodeUint(uint64(uint(k2)))
  6002. if esep {
  6003. ee.WriteMapElemValue()
  6004. }
  6005. ee.EncodeUint(uint64(v[uint(k2)]))
  6006. }
  6007. } else {
  6008. for k2, v2 := range v {
  6009. if esep {
  6010. ee.WriteMapElemKey()
  6011. }
  6012. ee.EncodeUint(uint64(k2))
  6013. if esep {
  6014. ee.WriteMapElemValue()
  6015. }
  6016. ee.EncodeUint(uint64(v2))
  6017. }
  6018. }
  6019. ee.WriteMapEnd()
  6020. }
  6021. func (e *Encoder) fastpathEncMapUintUint64R(f *codecFnInfo, rv reflect.Value) {
  6022. fastpathTV.EncMapUintUint64V(rv2i(rv).(map[uint]uint64), e)
  6023. }
  6024. func (_ fastpathT) EncMapUintUint64V(v map[uint]uint64, e *Encoder) {
  6025. ee, esep := e.e, e.hh.hasElemSeparators()
  6026. ee.WriteMapStart(len(v))
  6027. if e.h.Canonical {
  6028. v2 := make([]uint64, len(v))
  6029. var i int
  6030. for k, _ := range v {
  6031. v2[i] = uint64(k)
  6032. i++
  6033. }
  6034. sort.Sort(uintSlice(v2))
  6035. for _, k2 := range v2 {
  6036. if esep {
  6037. ee.WriteMapElemKey()
  6038. }
  6039. ee.EncodeUint(uint64(uint(k2)))
  6040. if esep {
  6041. ee.WriteMapElemValue()
  6042. }
  6043. ee.EncodeUint(uint64(v[uint(k2)]))
  6044. }
  6045. } else {
  6046. for k2, v2 := range v {
  6047. if esep {
  6048. ee.WriteMapElemKey()
  6049. }
  6050. ee.EncodeUint(uint64(k2))
  6051. if esep {
  6052. ee.WriteMapElemValue()
  6053. }
  6054. ee.EncodeUint(uint64(v2))
  6055. }
  6056. }
  6057. ee.WriteMapEnd()
  6058. }
  6059. func (e *Encoder) fastpathEncMapUintUintptrR(f *codecFnInfo, rv reflect.Value) {
  6060. fastpathTV.EncMapUintUintptrV(rv2i(rv).(map[uint]uintptr), e)
  6061. }
  6062. func (_ fastpathT) EncMapUintUintptrV(v map[uint]uintptr, e *Encoder) {
  6063. ee, esep := e.e, e.hh.hasElemSeparators()
  6064. ee.WriteMapStart(len(v))
  6065. if e.h.Canonical {
  6066. v2 := make([]uint64, len(v))
  6067. var i int
  6068. for k, _ := range v {
  6069. v2[i] = uint64(k)
  6070. i++
  6071. }
  6072. sort.Sort(uintSlice(v2))
  6073. for _, k2 := range v2 {
  6074. if esep {
  6075. ee.WriteMapElemKey()
  6076. }
  6077. ee.EncodeUint(uint64(uint(k2)))
  6078. if esep {
  6079. ee.WriteMapElemValue()
  6080. }
  6081. e.encode(v[uint(k2)])
  6082. }
  6083. } else {
  6084. for k2, v2 := range v {
  6085. if esep {
  6086. ee.WriteMapElemKey()
  6087. }
  6088. ee.EncodeUint(uint64(k2))
  6089. if esep {
  6090. ee.WriteMapElemValue()
  6091. }
  6092. e.encode(v2)
  6093. }
  6094. }
  6095. ee.WriteMapEnd()
  6096. }
  6097. func (e *Encoder) fastpathEncMapUintIntR(f *codecFnInfo, rv reflect.Value) {
  6098. fastpathTV.EncMapUintIntV(rv2i(rv).(map[uint]int), e)
  6099. }
  6100. func (_ fastpathT) EncMapUintIntV(v map[uint]int, e *Encoder) {
  6101. ee, esep := e.e, e.hh.hasElemSeparators()
  6102. ee.WriteMapStart(len(v))
  6103. if e.h.Canonical {
  6104. v2 := make([]uint64, len(v))
  6105. var i int
  6106. for k, _ := range v {
  6107. v2[i] = uint64(k)
  6108. i++
  6109. }
  6110. sort.Sort(uintSlice(v2))
  6111. for _, k2 := range v2 {
  6112. if esep {
  6113. ee.WriteMapElemKey()
  6114. }
  6115. ee.EncodeUint(uint64(uint(k2)))
  6116. if esep {
  6117. ee.WriteMapElemValue()
  6118. }
  6119. ee.EncodeInt(int64(v[uint(k2)]))
  6120. }
  6121. } else {
  6122. for k2, v2 := range v {
  6123. if esep {
  6124. ee.WriteMapElemKey()
  6125. }
  6126. ee.EncodeUint(uint64(k2))
  6127. if esep {
  6128. ee.WriteMapElemValue()
  6129. }
  6130. ee.EncodeInt(int64(v2))
  6131. }
  6132. }
  6133. ee.WriteMapEnd()
  6134. }
  6135. func (e *Encoder) fastpathEncMapUintInt8R(f *codecFnInfo, rv reflect.Value) {
  6136. fastpathTV.EncMapUintInt8V(rv2i(rv).(map[uint]int8), e)
  6137. }
  6138. func (_ fastpathT) EncMapUintInt8V(v map[uint]int8, e *Encoder) {
  6139. ee, esep := e.e, e.hh.hasElemSeparators()
  6140. ee.WriteMapStart(len(v))
  6141. if e.h.Canonical {
  6142. v2 := make([]uint64, len(v))
  6143. var i int
  6144. for k, _ := range v {
  6145. v2[i] = uint64(k)
  6146. i++
  6147. }
  6148. sort.Sort(uintSlice(v2))
  6149. for _, k2 := range v2 {
  6150. if esep {
  6151. ee.WriteMapElemKey()
  6152. }
  6153. ee.EncodeUint(uint64(uint(k2)))
  6154. if esep {
  6155. ee.WriteMapElemValue()
  6156. }
  6157. ee.EncodeInt(int64(v[uint(k2)]))
  6158. }
  6159. } else {
  6160. for k2, v2 := range v {
  6161. if esep {
  6162. ee.WriteMapElemKey()
  6163. }
  6164. ee.EncodeUint(uint64(k2))
  6165. if esep {
  6166. ee.WriteMapElemValue()
  6167. }
  6168. ee.EncodeInt(int64(v2))
  6169. }
  6170. }
  6171. ee.WriteMapEnd()
  6172. }
  6173. func (e *Encoder) fastpathEncMapUintInt16R(f *codecFnInfo, rv reflect.Value) {
  6174. fastpathTV.EncMapUintInt16V(rv2i(rv).(map[uint]int16), e)
  6175. }
  6176. func (_ fastpathT) EncMapUintInt16V(v map[uint]int16, e *Encoder) {
  6177. ee, esep := e.e, e.hh.hasElemSeparators()
  6178. ee.WriteMapStart(len(v))
  6179. if e.h.Canonical {
  6180. v2 := make([]uint64, len(v))
  6181. var i int
  6182. for k, _ := range v {
  6183. v2[i] = uint64(k)
  6184. i++
  6185. }
  6186. sort.Sort(uintSlice(v2))
  6187. for _, k2 := range v2 {
  6188. if esep {
  6189. ee.WriteMapElemKey()
  6190. }
  6191. ee.EncodeUint(uint64(uint(k2)))
  6192. if esep {
  6193. ee.WriteMapElemValue()
  6194. }
  6195. ee.EncodeInt(int64(v[uint(k2)]))
  6196. }
  6197. } else {
  6198. for k2, v2 := range v {
  6199. if esep {
  6200. ee.WriteMapElemKey()
  6201. }
  6202. ee.EncodeUint(uint64(k2))
  6203. if esep {
  6204. ee.WriteMapElemValue()
  6205. }
  6206. ee.EncodeInt(int64(v2))
  6207. }
  6208. }
  6209. ee.WriteMapEnd()
  6210. }
  6211. func (e *Encoder) fastpathEncMapUintInt32R(f *codecFnInfo, rv reflect.Value) {
  6212. fastpathTV.EncMapUintInt32V(rv2i(rv).(map[uint]int32), e)
  6213. }
  6214. func (_ fastpathT) EncMapUintInt32V(v map[uint]int32, e *Encoder) {
  6215. ee, esep := e.e, e.hh.hasElemSeparators()
  6216. ee.WriteMapStart(len(v))
  6217. if e.h.Canonical {
  6218. v2 := make([]uint64, len(v))
  6219. var i int
  6220. for k, _ := range v {
  6221. v2[i] = uint64(k)
  6222. i++
  6223. }
  6224. sort.Sort(uintSlice(v2))
  6225. for _, k2 := range v2 {
  6226. if esep {
  6227. ee.WriteMapElemKey()
  6228. }
  6229. ee.EncodeUint(uint64(uint(k2)))
  6230. if esep {
  6231. ee.WriteMapElemValue()
  6232. }
  6233. ee.EncodeInt(int64(v[uint(k2)]))
  6234. }
  6235. } else {
  6236. for k2, v2 := range v {
  6237. if esep {
  6238. ee.WriteMapElemKey()
  6239. }
  6240. ee.EncodeUint(uint64(k2))
  6241. if esep {
  6242. ee.WriteMapElemValue()
  6243. }
  6244. ee.EncodeInt(int64(v2))
  6245. }
  6246. }
  6247. ee.WriteMapEnd()
  6248. }
  6249. func (e *Encoder) fastpathEncMapUintInt64R(f *codecFnInfo, rv reflect.Value) {
  6250. fastpathTV.EncMapUintInt64V(rv2i(rv).(map[uint]int64), e)
  6251. }
  6252. func (_ fastpathT) EncMapUintInt64V(v map[uint]int64, e *Encoder) {
  6253. ee, esep := e.e, e.hh.hasElemSeparators()
  6254. ee.WriteMapStart(len(v))
  6255. if e.h.Canonical {
  6256. v2 := make([]uint64, len(v))
  6257. var i int
  6258. for k, _ := range v {
  6259. v2[i] = uint64(k)
  6260. i++
  6261. }
  6262. sort.Sort(uintSlice(v2))
  6263. for _, k2 := range v2 {
  6264. if esep {
  6265. ee.WriteMapElemKey()
  6266. }
  6267. ee.EncodeUint(uint64(uint(k2)))
  6268. if esep {
  6269. ee.WriteMapElemValue()
  6270. }
  6271. ee.EncodeInt(int64(v[uint(k2)]))
  6272. }
  6273. } else {
  6274. for k2, v2 := range v {
  6275. if esep {
  6276. ee.WriteMapElemKey()
  6277. }
  6278. ee.EncodeUint(uint64(k2))
  6279. if esep {
  6280. ee.WriteMapElemValue()
  6281. }
  6282. ee.EncodeInt(int64(v2))
  6283. }
  6284. }
  6285. ee.WriteMapEnd()
  6286. }
  6287. func (e *Encoder) fastpathEncMapUintFloat32R(f *codecFnInfo, rv reflect.Value) {
  6288. fastpathTV.EncMapUintFloat32V(rv2i(rv).(map[uint]float32), e)
  6289. }
  6290. func (_ fastpathT) EncMapUintFloat32V(v map[uint]float32, e *Encoder) {
  6291. ee, esep := e.e, e.hh.hasElemSeparators()
  6292. ee.WriteMapStart(len(v))
  6293. if e.h.Canonical {
  6294. v2 := make([]uint64, len(v))
  6295. var i int
  6296. for k, _ := range v {
  6297. v2[i] = uint64(k)
  6298. i++
  6299. }
  6300. sort.Sort(uintSlice(v2))
  6301. for _, k2 := range v2 {
  6302. if esep {
  6303. ee.WriteMapElemKey()
  6304. }
  6305. ee.EncodeUint(uint64(uint(k2)))
  6306. if esep {
  6307. ee.WriteMapElemValue()
  6308. }
  6309. ee.EncodeFloat32(v[uint(k2)])
  6310. }
  6311. } else {
  6312. for k2, v2 := range v {
  6313. if esep {
  6314. ee.WriteMapElemKey()
  6315. }
  6316. ee.EncodeUint(uint64(k2))
  6317. if esep {
  6318. ee.WriteMapElemValue()
  6319. }
  6320. ee.EncodeFloat32(v2)
  6321. }
  6322. }
  6323. ee.WriteMapEnd()
  6324. }
  6325. func (e *Encoder) fastpathEncMapUintFloat64R(f *codecFnInfo, rv reflect.Value) {
  6326. fastpathTV.EncMapUintFloat64V(rv2i(rv).(map[uint]float64), e)
  6327. }
  6328. func (_ fastpathT) EncMapUintFloat64V(v map[uint]float64, e *Encoder) {
  6329. ee, esep := e.e, e.hh.hasElemSeparators()
  6330. ee.WriteMapStart(len(v))
  6331. if e.h.Canonical {
  6332. v2 := make([]uint64, len(v))
  6333. var i int
  6334. for k, _ := range v {
  6335. v2[i] = uint64(k)
  6336. i++
  6337. }
  6338. sort.Sort(uintSlice(v2))
  6339. for _, k2 := range v2 {
  6340. if esep {
  6341. ee.WriteMapElemKey()
  6342. }
  6343. ee.EncodeUint(uint64(uint(k2)))
  6344. if esep {
  6345. ee.WriteMapElemValue()
  6346. }
  6347. ee.EncodeFloat64(v[uint(k2)])
  6348. }
  6349. } else {
  6350. for k2, v2 := range v {
  6351. if esep {
  6352. ee.WriteMapElemKey()
  6353. }
  6354. ee.EncodeUint(uint64(k2))
  6355. if esep {
  6356. ee.WriteMapElemValue()
  6357. }
  6358. ee.EncodeFloat64(v2)
  6359. }
  6360. }
  6361. ee.WriteMapEnd()
  6362. }
  6363. func (e *Encoder) fastpathEncMapUintBoolR(f *codecFnInfo, rv reflect.Value) {
  6364. fastpathTV.EncMapUintBoolV(rv2i(rv).(map[uint]bool), e)
  6365. }
  6366. func (_ fastpathT) EncMapUintBoolV(v map[uint]bool, e *Encoder) {
  6367. ee, esep := e.e, e.hh.hasElemSeparators()
  6368. ee.WriteMapStart(len(v))
  6369. if e.h.Canonical {
  6370. v2 := make([]uint64, len(v))
  6371. var i int
  6372. for k, _ := range v {
  6373. v2[i] = uint64(k)
  6374. i++
  6375. }
  6376. sort.Sort(uintSlice(v2))
  6377. for _, k2 := range v2 {
  6378. if esep {
  6379. ee.WriteMapElemKey()
  6380. }
  6381. ee.EncodeUint(uint64(uint(k2)))
  6382. if esep {
  6383. ee.WriteMapElemValue()
  6384. }
  6385. ee.EncodeBool(v[uint(k2)])
  6386. }
  6387. } else {
  6388. for k2, v2 := range v {
  6389. if esep {
  6390. ee.WriteMapElemKey()
  6391. }
  6392. ee.EncodeUint(uint64(k2))
  6393. if esep {
  6394. ee.WriteMapElemValue()
  6395. }
  6396. ee.EncodeBool(v2)
  6397. }
  6398. }
  6399. ee.WriteMapEnd()
  6400. }
  6401. func (e *Encoder) fastpathEncMapUint8IntfR(f *codecFnInfo, rv reflect.Value) {
  6402. fastpathTV.EncMapUint8IntfV(rv2i(rv).(map[uint8]interface{}), e)
  6403. }
  6404. func (_ fastpathT) EncMapUint8IntfV(v map[uint8]interface{}, e *Encoder) {
  6405. ee, esep := e.e, e.hh.hasElemSeparators()
  6406. ee.WriteMapStart(len(v))
  6407. if e.h.Canonical {
  6408. v2 := make([]uint64, len(v))
  6409. var i int
  6410. for k, _ := range v {
  6411. v2[i] = uint64(k)
  6412. i++
  6413. }
  6414. sort.Sort(uintSlice(v2))
  6415. for _, k2 := range v2 {
  6416. if esep {
  6417. ee.WriteMapElemKey()
  6418. }
  6419. ee.EncodeUint(uint64(uint8(k2)))
  6420. if esep {
  6421. ee.WriteMapElemValue()
  6422. }
  6423. e.encode(v[uint8(k2)])
  6424. }
  6425. } else {
  6426. for k2, v2 := range v {
  6427. if esep {
  6428. ee.WriteMapElemKey()
  6429. }
  6430. ee.EncodeUint(uint64(k2))
  6431. if esep {
  6432. ee.WriteMapElemValue()
  6433. }
  6434. e.encode(v2)
  6435. }
  6436. }
  6437. ee.WriteMapEnd()
  6438. }
  6439. func (e *Encoder) fastpathEncMapUint8StringR(f *codecFnInfo, rv reflect.Value) {
  6440. fastpathTV.EncMapUint8StringV(rv2i(rv).(map[uint8]string), e)
  6441. }
  6442. func (_ fastpathT) EncMapUint8StringV(v map[uint8]string, e *Encoder) {
  6443. ee, esep := e.e, e.hh.hasElemSeparators()
  6444. ee.WriteMapStart(len(v))
  6445. if e.h.Canonical {
  6446. v2 := make([]uint64, len(v))
  6447. var i int
  6448. for k, _ := range v {
  6449. v2[i] = uint64(k)
  6450. i++
  6451. }
  6452. sort.Sort(uintSlice(v2))
  6453. for _, k2 := range v2 {
  6454. if esep {
  6455. ee.WriteMapElemKey()
  6456. }
  6457. ee.EncodeUint(uint64(uint8(k2)))
  6458. if esep {
  6459. ee.WriteMapElemValue()
  6460. }
  6461. ee.EncodeString(c_UTF8, v[uint8(k2)])
  6462. }
  6463. } else {
  6464. for k2, v2 := range v {
  6465. if esep {
  6466. ee.WriteMapElemKey()
  6467. }
  6468. ee.EncodeUint(uint64(k2))
  6469. if esep {
  6470. ee.WriteMapElemValue()
  6471. }
  6472. ee.EncodeString(c_UTF8, v2)
  6473. }
  6474. }
  6475. ee.WriteMapEnd()
  6476. }
  6477. func (e *Encoder) fastpathEncMapUint8UintR(f *codecFnInfo, rv reflect.Value) {
  6478. fastpathTV.EncMapUint8UintV(rv2i(rv).(map[uint8]uint), e)
  6479. }
  6480. func (_ fastpathT) EncMapUint8UintV(v map[uint8]uint, e *Encoder) {
  6481. ee, esep := e.e, e.hh.hasElemSeparators()
  6482. ee.WriteMapStart(len(v))
  6483. if e.h.Canonical {
  6484. v2 := make([]uint64, len(v))
  6485. var i int
  6486. for k, _ := range v {
  6487. v2[i] = uint64(k)
  6488. i++
  6489. }
  6490. sort.Sort(uintSlice(v2))
  6491. for _, k2 := range v2 {
  6492. if esep {
  6493. ee.WriteMapElemKey()
  6494. }
  6495. ee.EncodeUint(uint64(uint8(k2)))
  6496. if esep {
  6497. ee.WriteMapElemValue()
  6498. }
  6499. ee.EncodeUint(uint64(v[uint8(k2)]))
  6500. }
  6501. } else {
  6502. for k2, v2 := range v {
  6503. if esep {
  6504. ee.WriteMapElemKey()
  6505. }
  6506. ee.EncodeUint(uint64(k2))
  6507. if esep {
  6508. ee.WriteMapElemValue()
  6509. }
  6510. ee.EncodeUint(uint64(v2))
  6511. }
  6512. }
  6513. ee.WriteMapEnd()
  6514. }
  6515. func (e *Encoder) fastpathEncMapUint8Uint8R(f *codecFnInfo, rv reflect.Value) {
  6516. fastpathTV.EncMapUint8Uint8V(rv2i(rv).(map[uint8]uint8), e)
  6517. }
  6518. func (_ fastpathT) EncMapUint8Uint8V(v map[uint8]uint8, e *Encoder) {
  6519. ee, esep := e.e, e.hh.hasElemSeparators()
  6520. ee.WriteMapStart(len(v))
  6521. if e.h.Canonical {
  6522. v2 := make([]uint64, len(v))
  6523. var i int
  6524. for k, _ := range v {
  6525. v2[i] = uint64(k)
  6526. i++
  6527. }
  6528. sort.Sort(uintSlice(v2))
  6529. for _, k2 := range v2 {
  6530. if esep {
  6531. ee.WriteMapElemKey()
  6532. }
  6533. ee.EncodeUint(uint64(uint8(k2)))
  6534. if esep {
  6535. ee.WriteMapElemValue()
  6536. }
  6537. ee.EncodeUint(uint64(v[uint8(k2)]))
  6538. }
  6539. } else {
  6540. for k2, v2 := range v {
  6541. if esep {
  6542. ee.WriteMapElemKey()
  6543. }
  6544. ee.EncodeUint(uint64(k2))
  6545. if esep {
  6546. ee.WriteMapElemValue()
  6547. }
  6548. ee.EncodeUint(uint64(v2))
  6549. }
  6550. }
  6551. ee.WriteMapEnd()
  6552. }
  6553. func (e *Encoder) fastpathEncMapUint8Uint16R(f *codecFnInfo, rv reflect.Value) {
  6554. fastpathTV.EncMapUint8Uint16V(rv2i(rv).(map[uint8]uint16), e)
  6555. }
  6556. func (_ fastpathT) EncMapUint8Uint16V(v map[uint8]uint16, e *Encoder) {
  6557. ee, esep := e.e, e.hh.hasElemSeparators()
  6558. ee.WriteMapStart(len(v))
  6559. if e.h.Canonical {
  6560. v2 := make([]uint64, len(v))
  6561. var i int
  6562. for k, _ := range v {
  6563. v2[i] = uint64(k)
  6564. i++
  6565. }
  6566. sort.Sort(uintSlice(v2))
  6567. for _, k2 := range v2 {
  6568. if esep {
  6569. ee.WriteMapElemKey()
  6570. }
  6571. ee.EncodeUint(uint64(uint8(k2)))
  6572. if esep {
  6573. ee.WriteMapElemValue()
  6574. }
  6575. ee.EncodeUint(uint64(v[uint8(k2)]))
  6576. }
  6577. } else {
  6578. for k2, v2 := range v {
  6579. if esep {
  6580. ee.WriteMapElemKey()
  6581. }
  6582. ee.EncodeUint(uint64(k2))
  6583. if esep {
  6584. ee.WriteMapElemValue()
  6585. }
  6586. ee.EncodeUint(uint64(v2))
  6587. }
  6588. }
  6589. ee.WriteMapEnd()
  6590. }
  6591. func (e *Encoder) fastpathEncMapUint8Uint32R(f *codecFnInfo, rv reflect.Value) {
  6592. fastpathTV.EncMapUint8Uint32V(rv2i(rv).(map[uint8]uint32), e)
  6593. }
  6594. func (_ fastpathT) EncMapUint8Uint32V(v map[uint8]uint32, e *Encoder) {
  6595. ee, esep := e.e, e.hh.hasElemSeparators()
  6596. ee.WriteMapStart(len(v))
  6597. if e.h.Canonical {
  6598. v2 := make([]uint64, len(v))
  6599. var i int
  6600. for k, _ := range v {
  6601. v2[i] = uint64(k)
  6602. i++
  6603. }
  6604. sort.Sort(uintSlice(v2))
  6605. for _, k2 := range v2 {
  6606. if esep {
  6607. ee.WriteMapElemKey()
  6608. }
  6609. ee.EncodeUint(uint64(uint8(k2)))
  6610. if esep {
  6611. ee.WriteMapElemValue()
  6612. }
  6613. ee.EncodeUint(uint64(v[uint8(k2)]))
  6614. }
  6615. } else {
  6616. for k2, v2 := range v {
  6617. if esep {
  6618. ee.WriteMapElemKey()
  6619. }
  6620. ee.EncodeUint(uint64(k2))
  6621. if esep {
  6622. ee.WriteMapElemValue()
  6623. }
  6624. ee.EncodeUint(uint64(v2))
  6625. }
  6626. }
  6627. ee.WriteMapEnd()
  6628. }
  6629. func (e *Encoder) fastpathEncMapUint8Uint64R(f *codecFnInfo, rv reflect.Value) {
  6630. fastpathTV.EncMapUint8Uint64V(rv2i(rv).(map[uint8]uint64), e)
  6631. }
  6632. func (_ fastpathT) EncMapUint8Uint64V(v map[uint8]uint64, e *Encoder) {
  6633. ee, esep := e.e, e.hh.hasElemSeparators()
  6634. ee.WriteMapStart(len(v))
  6635. if e.h.Canonical {
  6636. v2 := make([]uint64, len(v))
  6637. var i int
  6638. for k, _ := range v {
  6639. v2[i] = uint64(k)
  6640. i++
  6641. }
  6642. sort.Sort(uintSlice(v2))
  6643. for _, k2 := range v2 {
  6644. if esep {
  6645. ee.WriteMapElemKey()
  6646. }
  6647. ee.EncodeUint(uint64(uint8(k2)))
  6648. if esep {
  6649. ee.WriteMapElemValue()
  6650. }
  6651. ee.EncodeUint(uint64(v[uint8(k2)]))
  6652. }
  6653. } else {
  6654. for k2, v2 := range v {
  6655. if esep {
  6656. ee.WriteMapElemKey()
  6657. }
  6658. ee.EncodeUint(uint64(k2))
  6659. if esep {
  6660. ee.WriteMapElemValue()
  6661. }
  6662. ee.EncodeUint(uint64(v2))
  6663. }
  6664. }
  6665. ee.WriteMapEnd()
  6666. }
  6667. func (e *Encoder) fastpathEncMapUint8UintptrR(f *codecFnInfo, rv reflect.Value) {
  6668. fastpathTV.EncMapUint8UintptrV(rv2i(rv).(map[uint8]uintptr), e)
  6669. }
  6670. func (_ fastpathT) EncMapUint8UintptrV(v map[uint8]uintptr, e *Encoder) {
  6671. ee, esep := e.e, e.hh.hasElemSeparators()
  6672. ee.WriteMapStart(len(v))
  6673. if e.h.Canonical {
  6674. v2 := make([]uint64, len(v))
  6675. var i int
  6676. for k, _ := range v {
  6677. v2[i] = uint64(k)
  6678. i++
  6679. }
  6680. sort.Sort(uintSlice(v2))
  6681. for _, k2 := range v2 {
  6682. if esep {
  6683. ee.WriteMapElemKey()
  6684. }
  6685. ee.EncodeUint(uint64(uint8(k2)))
  6686. if esep {
  6687. ee.WriteMapElemValue()
  6688. }
  6689. e.encode(v[uint8(k2)])
  6690. }
  6691. } else {
  6692. for k2, v2 := range v {
  6693. if esep {
  6694. ee.WriteMapElemKey()
  6695. }
  6696. ee.EncodeUint(uint64(k2))
  6697. if esep {
  6698. ee.WriteMapElemValue()
  6699. }
  6700. e.encode(v2)
  6701. }
  6702. }
  6703. ee.WriteMapEnd()
  6704. }
  6705. func (e *Encoder) fastpathEncMapUint8IntR(f *codecFnInfo, rv reflect.Value) {
  6706. fastpathTV.EncMapUint8IntV(rv2i(rv).(map[uint8]int), e)
  6707. }
  6708. func (_ fastpathT) EncMapUint8IntV(v map[uint8]int, e *Encoder) {
  6709. ee, esep := e.e, e.hh.hasElemSeparators()
  6710. ee.WriteMapStart(len(v))
  6711. if e.h.Canonical {
  6712. v2 := make([]uint64, len(v))
  6713. var i int
  6714. for k, _ := range v {
  6715. v2[i] = uint64(k)
  6716. i++
  6717. }
  6718. sort.Sort(uintSlice(v2))
  6719. for _, k2 := range v2 {
  6720. if esep {
  6721. ee.WriteMapElemKey()
  6722. }
  6723. ee.EncodeUint(uint64(uint8(k2)))
  6724. if esep {
  6725. ee.WriteMapElemValue()
  6726. }
  6727. ee.EncodeInt(int64(v[uint8(k2)]))
  6728. }
  6729. } else {
  6730. for k2, v2 := range v {
  6731. if esep {
  6732. ee.WriteMapElemKey()
  6733. }
  6734. ee.EncodeUint(uint64(k2))
  6735. if esep {
  6736. ee.WriteMapElemValue()
  6737. }
  6738. ee.EncodeInt(int64(v2))
  6739. }
  6740. }
  6741. ee.WriteMapEnd()
  6742. }
  6743. func (e *Encoder) fastpathEncMapUint8Int8R(f *codecFnInfo, rv reflect.Value) {
  6744. fastpathTV.EncMapUint8Int8V(rv2i(rv).(map[uint8]int8), e)
  6745. }
  6746. func (_ fastpathT) EncMapUint8Int8V(v map[uint8]int8, e *Encoder) {
  6747. ee, esep := e.e, e.hh.hasElemSeparators()
  6748. ee.WriteMapStart(len(v))
  6749. if e.h.Canonical {
  6750. v2 := make([]uint64, len(v))
  6751. var i int
  6752. for k, _ := range v {
  6753. v2[i] = uint64(k)
  6754. i++
  6755. }
  6756. sort.Sort(uintSlice(v2))
  6757. for _, k2 := range v2 {
  6758. if esep {
  6759. ee.WriteMapElemKey()
  6760. }
  6761. ee.EncodeUint(uint64(uint8(k2)))
  6762. if esep {
  6763. ee.WriteMapElemValue()
  6764. }
  6765. ee.EncodeInt(int64(v[uint8(k2)]))
  6766. }
  6767. } else {
  6768. for k2, v2 := range v {
  6769. if esep {
  6770. ee.WriteMapElemKey()
  6771. }
  6772. ee.EncodeUint(uint64(k2))
  6773. if esep {
  6774. ee.WriteMapElemValue()
  6775. }
  6776. ee.EncodeInt(int64(v2))
  6777. }
  6778. }
  6779. ee.WriteMapEnd()
  6780. }
  6781. func (e *Encoder) fastpathEncMapUint8Int16R(f *codecFnInfo, rv reflect.Value) {
  6782. fastpathTV.EncMapUint8Int16V(rv2i(rv).(map[uint8]int16), e)
  6783. }
  6784. func (_ fastpathT) EncMapUint8Int16V(v map[uint8]int16, e *Encoder) {
  6785. ee, esep := e.e, e.hh.hasElemSeparators()
  6786. ee.WriteMapStart(len(v))
  6787. if e.h.Canonical {
  6788. v2 := make([]uint64, len(v))
  6789. var i int
  6790. for k, _ := range v {
  6791. v2[i] = uint64(k)
  6792. i++
  6793. }
  6794. sort.Sort(uintSlice(v2))
  6795. for _, k2 := range v2 {
  6796. if esep {
  6797. ee.WriteMapElemKey()
  6798. }
  6799. ee.EncodeUint(uint64(uint8(k2)))
  6800. if esep {
  6801. ee.WriteMapElemValue()
  6802. }
  6803. ee.EncodeInt(int64(v[uint8(k2)]))
  6804. }
  6805. } else {
  6806. for k2, v2 := range v {
  6807. if esep {
  6808. ee.WriteMapElemKey()
  6809. }
  6810. ee.EncodeUint(uint64(k2))
  6811. if esep {
  6812. ee.WriteMapElemValue()
  6813. }
  6814. ee.EncodeInt(int64(v2))
  6815. }
  6816. }
  6817. ee.WriteMapEnd()
  6818. }
  6819. func (e *Encoder) fastpathEncMapUint8Int32R(f *codecFnInfo, rv reflect.Value) {
  6820. fastpathTV.EncMapUint8Int32V(rv2i(rv).(map[uint8]int32), e)
  6821. }
  6822. func (_ fastpathT) EncMapUint8Int32V(v map[uint8]int32, e *Encoder) {
  6823. ee, esep := e.e, e.hh.hasElemSeparators()
  6824. ee.WriteMapStart(len(v))
  6825. if e.h.Canonical {
  6826. v2 := make([]uint64, len(v))
  6827. var i int
  6828. for k, _ := range v {
  6829. v2[i] = uint64(k)
  6830. i++
  6831. }
  6832. sort.Sort(uintSlice(v2))
  6833. for _, k2 := range v2 {
  6834. if esep {
  6835. ee.WriteMapElemKey()
  6836. }
  6837. ee.EncodeUint(uint64(uint8(k2)))
  6838. if esep {
  6839. ee.WriteMapElemValue()
  6840. }
  6841. ee.EncodeInt(int64(v[uint8(k2)]))
  6842. }
  6843. } else {
  6844. for k2, v2 := range v {
  6845. if esep {
  6846. ee.WriteMapElemKey()
  6847. }
  6848. ee.EncodeUint(uint64(k2))
  6849. if esep {
  6850. ee.WriteMapElemValue()
  6851. }
  6852. ee.EncodeInt(int64(v2))
  6853. }
  6854. }
  6855. ee.WriteMapEnd()
  6856. }
  6857. func (e *Encoder) fastpathEncMapUint8Int64R(f *codecFnInfo, rv reflect.Value) {
  6858. fastpathTV.EncMapUint8Int64V(rv2i(rv).(map[uint8]int64), e)
  6859. }
  6860. func (_ fastpathT) EncMapUint8Int64V(v map[uint8]int64, e *Encoder) {
  6861. ee, esep := e.e, e.hh.hasElemSeparators()
  6862. ee.WriteMapStart(len(v))
  6863. if e.h.Canonical {
  6864. v2 := make([]uint64, len(v))
  6865. var i int
  6866. for k, _ := range v {
  6867. v2[i] = uint64(k)
  6868. i++
  6869. }
  6870. sort.Sort(uintSlice(v2))
  6871. for _, k2 := range v2 {
  6872. if esep {
  6873. ee.WriteMapElemKey()
  6874. }
  6875. ee.EncodeUint(uint64(uint8(k2)))
  6876. if esep {
  6877. ee.WriteMapElemValue()
  6878. }
  6879. ee.EncodeInt(int64(v[uint8(k2)]))
  6880. }
  6881. } else {
  6882. for k2, v2 := range v {
  6883. if esep {
  6884. ee.WriteMapElemKey()
  6885. }
  6886. ee.EncodeUint(uint64(k2))
  6887. if esep {
  6888. ee.WriteMapElemValue()
  6889. }
  6890. ee.EncodeInt(int64(v2))
  6891. }
  6892. }
  6893. ee.WriteMapEnd()
  6894. }
  6895. func (e *Encoder) fastpathEncMapUint8Float32R(f *codecFnInfo, rv reflect.Value) {
  6896. fastpathTV.EncMapUint8Float32V(rv2i(rv).(map[uint8]float32), e)
  6897. }
  6898. func (_ fastpathT) EncMapUint8Float32V(v map[uint8]float32, e *Encoder) {
  6899. ee, esep := e.e, e.hh.hasElemSeparators()
  6900. ee.WriteMapStart(len(v))
  6901. if e.h.Canonical {
  6902. v2 := make([]uint64, len(v))
  6903. var i int
  6904. for k, _ := range v {
  6905. v2[i] = uint64(k)
  6906. i++
  6907. }
  6908. sort.Sort(uintSlice(v2))
  6909. for _, k2 := range v2 {
  6910. if esep {
  6911. ee.WriteMapElemKey()
  6912. }
  6913. ee.EncodeUint(uint64(uint8(k2)))
  6914. if esep {
  6915. ee.WriteMapElemValue()
  6916. }
  6917. ee.EncodeFloat32(v[uint8(k2)])
  6918. }
  6919. } else {
  6920. for k2, v2 := range v {
  6921. if esep {
  6922. ee.WriteMapElemKey()
  6923. }
  6924. ee.EncodeUint(uint64(k2))
  6925. if esep {
  6926. ee.WriteMapElemValue()
  6927. }
  6928. ee.EncodeFloat32(v2)
  6929. }
  6930. }
  6931. ee.WriteMapEnd()
  6932. }
  6933. func (e *Encoder) fastpathEncMapUint8Float64R(f *codecFnInfo, rv reflect.Value) {
  6934. fastpathTV.EncMapUint8Float64V(rv2i(rv).(map[uint8]float64), e)
  6935. }
  6936. func (_ fastpathT) EncMapUint8Float64V(v map[uint8]float64, e *Encoder) {
  6937. ee, esep := e.e, e.hh.hasElemSeparators()
  6938. ee.WriteMapStart(len(v))
  6939. if e.h.Canonical {
  6940. v2 := make([]uint64, len(v))
  6941. var i int
  6942. for k, _ := range v {
  6943. v2[i] = uint64(k)
  6944. i++
  6945. }
  6946. sort.Sort(uintSlice(v2))
  6947. for _, k2 := range v2 {
  6948. if esep {
  6949. ee.WriteMapElemKey()
  6950. }
  6951. ee.EncodeUint(uint64(uint8(k2)))
  6952. if esep {
  6953. ee.WriteMapElemValue()
  6954. }
  6955. ee.EncodeFloat64(v[uint8(k2)])
  6956. }
  6957. } else {
  6958. for k2, v2 := range v {
  6959. if esep {
  6960. ee.WriteMapElemKey()
  6961. }
  6962. ee.EncodeUint(uint64(k2))
  6963. if esep {
  6964. ee.WriteMapElemValue()
  6965. }
  6966. ee.EncodeFloat64(v2)
  6967. }
  6968. }
  6969. ee.WriteMapEnd()
  6970. }
  6971. func (e *Encoder) fastpathEncMapUint8BoolR(f *codecFnInfo, rv reflect.Value) {
  6972. fastpathTV.EncMapUint8BoolV(rv2i(rv).(map[uint8]bool), e)
  6973. }
  6974. func (_ fastpathT) EncMapUint8BoolV(v map[uint8]bool, e *Encoder) {
  6975. ee, esep := e.e, e.hh.hasElemSeparators()
  6976. ee.WriteMapStart(len(v))
  6977. if e.h.Canonical {
  6978. v2 := make([]uint64, len(v))
  6979. var i int
  6980. for k, _ := range v {
  6981. v2[i] = uint64(k)
  6982. i++
  6983. }
  6984. sort.Sort(uintSlice(v2))
  6985. for _, k2 := range v2 {
  6986. if esep {
  6987. ee.WriteMapElemKey()
  6988. }
  6989. ee.EncodeUint(uint64(uint8(k2)))
  6990. if esep {
  6991. ee.WriteMapElemValue()
  6992. }
  6993. ee.EncodeBool(v[uint8(k2)])
  6994. }
  6995. } else {
  6996. for k2, v2 := range v {
  6997. if esep {
  6998. ee.WriteMapElemKey()
  6999. }
  7000. ee.EncodeUint(uint64(k2))
  7001. if esep {
  7002. ee.WriteMapElemValue()
  7003. }
  7004. ee.EncodeBool(v2)
  7005. }
  7006. }
  7007. ee.WriteMapEnd()
  7008. }
  7009. func (e *Encoder) fastpathEncMapUint16IntfR(f *codecFnInfo, rv reflect.Value) {
  7010. fastpathTV.EncMapUint16IntfV(rv2i(rv).(map[uint16]interface{}), e)
  7011. }
  7012. func (_ fastpathT) EncMapUint16IntfV(v map[uint16]interface{}, e *Encoder) {
  7013. ee, esep := e.e, e.hh.hasElemSeparators()
  7014. ee.WriteMapStart(len(v))
  7015. if e.h.Canonical {
  7016. v2 := make([]uint64, len(v))
  7017. var i int
  7018. for k, _ := range v {
  7019. v2[i] = uint64(k)
  7020. i++
  7021. }
  7022. sort.Sort(uintSlice(v2))
  7023. for _, k2 := range v2 {
  7024. if esep {
  7025. ee.WriteMapElemKey()
  7026. }
  7027. ee.EncodeUint(uint64(uint16(k2)))
  7028. if esep {
  7029. ee.WriteMapElemValue()
  7030. }
  7031. e.encode(v[uint16(k2)])
  7032. }
  7033. } else {
  7034. for k2, v2 := range v {
  7035. if esep {
  7036. ee.WriteMapElemKey()
  7037. }
  7038. ee.EncodeUint(uint64(k2))
  7039. if esep {
  7040. ee.WriteMapElemValue()
  7041. }
  7042. e.encode(v2)
  7043. }
  7044. }
  7045. ee.WriteMapEnd()
  7046. }
  7047. func (e *Encoder) fastpathEncMapUint16StringR(f *codecFnInfo, rv reflect.Value) {
  7048. fastpathTV.EncMapUint16StringV(rv2i(rv).(map[uint16]string), e)
  7049. }
  7050. func (_ fastpathT) EncMapUint16StringV(v map[uint16]string, e *Encoder) {
  7051. ee, esep := e.e, e.hh.hasElemSeparators()
  7052. ee.WriteMapStart(len(v))
  7053. if e.h.Canonical {
  7054. v2 := make([]uint64, len(v))
  7055. var i int
  7056. for k, _ := range v {
  7057. v2[i] = uint64(k)
  7058. i++
  7059. }
  7060. sort.Sort(uintSlice(v2))
  7061. for _, k2 := range v2 {
  7062. if esep {
  7063. ee.WriteMapElemKey()
  7064. }
  7065. ee.EncodeUint(uint64(uint16(k2)))
  7066. if esep {
  7067. ee.WriteMapElemValue()
  7068. }
  7069. ee.EncodeString(c_UTF8, v[uint16(k2)])
  7070. }
  7071. } else {
  7072. for k2, v2 := range v {
  7073. if esep {
  7074. ee.WriteMapElemKey()
  7075. }
  7076. ee.EncodeUint(uint64(k2))
  7077. if esep {
  7078. ee.WriteMapElemValue()
  7079. }
  7080. ee.EncodeString(c_UTF8, v2)
  7081. }
  7082. }
  7083. ee.WriteMapEnd()
  7084. }
  7085. func (e *Encoder) fastpathEncMapUint16UintR(f *codecFnInfo, rv reflect.Value) {
  7086. fastpathTV.EncMapUint16UintV(rv2i(rv).(map[uint16]uint), e)
  7087. }
  7088. func (_ fastpathT) EncMapUint16UintV(v map[uint16]uint, e *Encoder) {
  7089. ee, esep := e.e, e.hh.hasElemSeparators()
  7090. ee.WriteMapStart(len(v))
  7091. if e.h.Canonical {
  7092. v2 := make([]uint64, len(v))
  7093. var i int
  7094. for k, _ := range v {
  7095. v2[i] = uint64(k)
  7096. i++
  7097. }
  7098. sort.Sort(uintSlice(v2))
  7099. for _, k2 := range v2 {
  7100. if esep {
  7101. ee.WriteMapElemKey()
  7102. }
  7103. ee.EncodeUint(uint64(uint16(k2)))
  7104. if esep {
  7105. ee.WriteMapElemValue()
  7106. }
  7107. ee.EncodeUint(uint64(v[uint16(k2)]))
  7108. }
  7109. } else {
  7110. for k2, v2 := range v {
  7111. if esep {
  7112. ee.WriteMapElemKey()
  7113. }
  7114. ee.EncodeUint(uint64(k2))
  7115. if esep {
  7116. ee.WriteMapElemValue()
  7117. }
  7118. ee.EncodeUint(uint64(v2))
  7119. }
  7120. }
  7121. ee.WriteMapEnd()
  7122. }
  7123. func (e *Encoder) fastpathEncMapUint16Uint8R(f *codecFnInfo, rv reflect.Value) {
  7124. fastpathTV.EncMapUint16Uint8V(rv2i(rv).(map[uint16]uint8), e)
  7125. }
  7126. func (_ fastpathT) EncMapUint16Uint8V(v map[uint16]uint8, e *Encoder) {
  7127. ee, esep := e.e, e.hh.hasElemSeparators()
  7128. ee.WriteMapStart(len(v))
  7129. if e.h.Canonical {
  7130. v2 := make([]uint64, len(v))
  7131. var i int
  7132. for k, _ := range v {
  7133. v2[i] = uint64(k)
  7134. i++
  7135. }
  7136. sort.Sort(uintSlice(v2))
  7137. for _, k2 := range v2 {
  7138. if esep {
  7139. ee.WriteMapElemKey()
  7140. }
  7141. ee.EncodeUint(uint64(uint16(k2)))
  7142. if esep {
  7143. ee.WriteMapElemValue()
  7144. }
  7145. ee.EncodeUint(uint64(v[uint16(k2)]))
  7146. }
  7147. } else {
  7148. for k2, v2 := range v {
  7149. if esep {
  7150. ee.WriteMapElemKey()
  7151. }
  7152. ee.EncodeUint(uint64(k2))
  7153. if esep {
  7154. ee.WriteMapElemValue()
  7155. }
  7156. ee.EncodeUint(uint64(v2))
  7157. }
  7158. }
  7159. ee.WriteMapEnd()
  7160. }
  7161. func (e *Encoder) fastpathEncMapUint16Uint16R(f *codecFnInfo, rv reflect.Value) {
  7162. fastpathTV.EncMapUint16Uint16V(rv2i(rv).(map[uint16]uint16), e)
  7163. }
  7164. func (_ fastpathT) EncMapUint16Uint16V(v map[uint16]uint16, e *Encoder) {
  7165. ee, esep := e.e, e.hh.hasElemSeparators()
  7166. ee.WriteMapStart(len(v))
  7167. if e.h.Canonical {
  7168. v2 := make([]uint64, len(v))
  7169. var i int
  7170. for k, _ := range v {
  7171. v2[i] = uint64(k)
  7172. i++
  7173. }
  7174. sort.Sort(uintSlice(v2))
  7175. for _, k2 := range v2 {
  7176. if esep {
  7177. ee.WriteMapElemKey()
  7178. }
  7179. ee.EncodeUint(uint64(uint16(k2)))
  7180. if esep {
  7181. ee.WriteMapElemValue()
  7182. }
  7183. ee.EncodeUint(uint64(v[uint16(k2)]))
  7184. }
  7185. } else {
  7186. for k2, v2 := range v {
  7187. if esep {
  7188. ee.WriteMapElemKey()
  7189. }
  7190. ee.EncodeUint(uint64(k2))
  7191. if esep {
  7192. ee.WriteMapElemValue()
  7193. }
  7194. ee.EncodeUint(uint64(v2))
  7195. }
  7196. }
  7197. ee.WriteMapEnd()
  7198. }
  7199. func (e *Encoder) fastpathEncMapUint16Uint32R(f *codecFnInfo, rv reflect.Value) {
  7200. fastpathTV.EncMapUint16Uint32V(rv2i(rv).(map[uint16]uint32), e)
  7201. }
  7202. func (_ fastpathT) EncMapUint16Uint32V(v map[uint16]uint32, e *Encoder) {
  7203. ee, esep := e.e, e.hh.hasElemSeparators()
  7204. ee.WriteMapStart(len(v))
  7205. if e.h.Canonical {
  7206. v2 := make([]uint64, len(v))
  7207. var i int
  7208. for k, _ := range v {
  7209. v2[i] = uint64(k)
  7210. i++
  7211. }
  7212. sort.Sort(uintSlice(v2))
  7213. for _, k2 := range v2 {
  7214. if esep {
  7215. ee.WriteMapElemKey()
  7216. }
  7217. ee.EncodeUint(uint64(uint16(k2)))
  7218. if esep {
  7219. ee.WriteMapElemValue()
  7220. }
  7221. ee.EncodeUint(uint64(v[uint16(k2)]))
  7222. }
  7223. } else {
  7224. for k2, v2 := range v {
  7225. if esep {
  7226. ee.WriteMapElemKey()
  7227. }
  7228. ee.EncodeUint(uint64(k2))
  7229. if esep {
  7230. ee.WriteMapElemValue()
  7231. }
  7232. ee.EncodeUint(uint64(v2))
  7233. }
  7234. }
  7235. ee.WriteMapEnd()
  7236. }
  7237. func (e *Encoder) fastpathEncMapUint16Uint64R(f *codecFnInfo, rv reflect.Value) {
  7238. fastpathTV.EncMapUint16Uint64V(rv2i(rv).(map[uint16]uint64), e)
  7239. }
  7240. func (_ fastpathT) EncMapUint16Uint64V(v map[uint16]uint64, e *Encoder) {
  7241. ee, esep := e.e, e.hh.hasElemSeparators()
  7242. ee.WriteMapStart(len(v))
  7243. if e.h.Canonical {
  7244. v2 := make([]uint64, len(v))
  7245. var i int
  7246. for k, _ := range v {
  7247. v2[i] = uint64(k)
  7248. i++
  7249. }
  7250. sort.Sort(uintSlice(v2))
  7251. for _, k2 := range v2 {
  7252. if esep {
  7253. ee.WriteMapElemKey()
  7254. }
  7255. ee.EncodeUint(uint64(uint16(k2)))
  7256. if esep {
  7257. ee.WriteMapElemValue()
  7258. }
  7259. ee.EncodeUint(uint64(v[uint16(k2)]))
  7260. }
  7261. } else {
  7262. for k2, v2 := range v {
  7263. if esep {
  7264. ee.WriteMapElemKey()
  7265. }
  7266. ee.EncodeUint(uint64(k2))
  7267. if esep {
  7268. ee.WriteMapElemValue()
  7269. }
  7270. ee.EncodeUint(uint64(v2))
  7271. }
  7272. }
  7273. ee.WriteMapEnd()
  7274. }
  7275. func (e *Encoder) fastpathEncMapUint16UintptrR(f *codecFnInfo, rv reflect.Value) {
  7276. fastpathTV.EncMapUint16UintptrV(rv2i(rv).(map[uint16]uintptr), e)
  7277. }
  7278. func (_ fastpathT) EncMapUint16UintptrV(v map[uint16]uintptr, e *Encoder) {
  7279. ee, esep := e.e, e.hh.hasElemSeparators()
  7280. ee.WriteMapStart(len(v))
  7281. if e.h.Canonical {
  7282. v2 := make([]uint64, len(v))
  7283. var i int
  7284. for k, _ := range v {
  7285. v2[i] = uint64(k)
  7286. i++
  7287. }
  7288. sort.Sort(uintSlice(v2))
  7289. for _, k2 := range v2 {
  7290. if esep {
  7291. ee.WriteMapElemKey()
  7292. }
  7293. ee.EncodeUint(uint64(uint16(k2)))
  7294. if esep {
  7295. ee.WriteMapElemValue()
  7296. }
  7297. e.encode(v[uint16(k2)])
  7298. }
  7299. } else {
  7300. for k2, v2 := range v {
  7301. if esep {
  7302. ee.WriteMapElemKey()
  7303. }
  7304. ee.EncodeUint(uint64(k2))
  7305. if esep {
  7306. ee.WriteMapElemValue()
  7307. }
  7308. e.encode(v2)
  7309. }
  7310. }
  7311. ee.WriteMapEnd()
  7312. }
  7313. func (e *Encoder) fastpathEncMapUint16IntR(f *codecFnInfo, rv reflect.Value) {
  7314. fastpathTV.EncMapUint16IntV(rv2i(rv).(map[uint16]int), e)
  7315. }
  7316. func (_ fastpathT) EncMapUint16IntV(v map[uint16]int, e *Encoder) {
  7317. ee, esep := e.e, e.hh.hasElemSeparators()
  7318. ee.WriteMapStart(len(v))
  7319. if e.h.Canonical {
  7320. v2 := make([]uint64, len(v))
  7321. var i int
  7322. for k, _ := range v {
  7323. v2[i] = uint64(k)
  7324. i++
  7325. }
  7326. sort.Sort(uintSlice(v2))
  7327. for _, k2 := range v2 {
  7328. if esep {
  7329. ee.WriteMapElemKey()
  7330. }
  7331. ee.EncodeUint(uint64(uint16(k2)))
  7332. if esep {
  7333. ee.WriteMapElemValue()
  7334. }
  7335. ee.EncodeInt(int64(v[uint16(k2)]))
  7336. }
  7337. } else {
  7338. for k2, v2 := range v {
  7339. if esep {
  7340. ee.WriteMapElemKey()
  7341. }
  7342. ee.EncodeUint(uint64(k2))
  7343. if esep {
  7344. ee.WriteMapElemValue()
  7345. }
  7346. ee.EncodeInt(int64(v2))
  7347. }
  7348. }
  7349. ee.WriteMapEnd()
  7350. }
  7351. func (e *Encoder) fastpathEncMapUint16Int8R(f *codecFnInfo, rv reflect.Value) {
  7352. fastpathTV.EncMapUint16Int8V(rv2i(rv).(map[uint16]int8), e)
  7353. }
  7354. func (_ fastpathT) EncMapUint16Int8V(v map[uint16]int8, e *Encoder) {
  7355. ee, esep := e.e, e.hh.hasElemSeparators()
  7356. ee.WriteMapStart(len(v))
  7357. if e.h.Canonical {
  7358. v2 := make([]uint64, len(v))
  7359. var i int
  7360. for k, _ := range v {
  7361. v2[i] = uint64(k)
  7362. i++
  7363. }
  7364. sort.Sort(uintSlice(v2))
  7365. for _, k2 := range v2 {
  7366. if esep {
  7367. ee.WriteMapElemKey()
  7368. }
  7369. ee.EncodeUint(uint64(uint16(k2)))
  7370. if esep {
  7371. ee.WriteMapElemValue()
  7372. }
  7373. ee.EncodeInt(int64(v[uint16(k2)]))
  7374. }
  7375. } else {
  7376. for k2, v2 := range v {
  7377. if esep {
  7378. ee.WriteMapElemKey()
  7379. }
  7380. ee.EncodeUint(uint64(k2))
  7381. if esep {
  7382. ee.WriteMapElemValue()
  7383. }
  7384. ee.EncodeInt(int64(v2))
  7385. }
  7386. }
  7387. ee.WriteMapEnd()
  7388. }
  7389. func (e *Encoder) fastpathEncMapUint16Int16R(f *codecFnInfo, rv reflect.Value) {
  7390. fastpathTV.EncMapUint16Int16V(rv2i(rv).(map[uint16]int16), e)
  7391. }
  7392. func (_ fastpathT) EncMapUint16Int16V(v map[uint16]int16, e *Encoder) {
  7393. ee, esep := e.e, e.hh.hasElemSeparators()
  7394. ee.WriteMapStart(len(v))
  7395. if e.h.Canonical {
  7396. v2 := make([]uint64, len(v))
  7397. var i int
  7398. for k, _ := range v {
  7399. v2[i] = uint64(k)
  7400. i++
  7401. }
  7402. sort.Sort(uintSlice(v2))
  7403. for _, k2 := range v2 {
  7404. if esep {
  7405. ee.WriteMapElemKey()
  7406. }
  7407. ee.EncodeUint(uint64(uint16(k2)))
  7408. if esep {
  7409. ee.WriteMapElemValue()
  7410. }
  7411. ee.EncodeInt(int64(v[uint16(k2)]))
  7412. }
  7413. } else {
  7414. for k2, v2 := range v {
  7415. if esep {
  7416. ee.WriteMapElemKey()
  7417. }
  7418. ee.EncodeUint(uint64(k2))
  7419. if esep {
  7420. ee.WriteMapElemValue()
  7421. }
  7422. ee.EncodeInt(int64(v2))
  7423. }
  7424. }
  7425. ee.WriteMapEnd()
  7426. }
  7427. func (e *Encoder) fastpathEncMapUint16Int32R(f *codecFnInfo, rv reflect.Value) {
  7428. fastpathTV.EncMapUint16Int32V(rv2i(rv).(map[uint16]int32), e)
  7429. }
  7430. func (_ fastpathT) EncMapUint16Int32V(v map[uint16]int32, e *Encoder) {
  7431. ee, esep := e.e, e.hh.hasElemSeparators()
  7432. ee.WriteMapStart(len(v))
  7433. if e.h.Canonical {
  7434. v2 := make([]uint64, len(v))
  7435. var i int
  7436. for k, _ := range v {
  7437. v2[i] = uint64(k)
  7438. i++
  7439. }
  7440. sort.Sort(uintSlice(v2))
  7441. for _, k2 := range v2 {
  7442. if esep {
  7443. ee.WriteMapElemKey()
  7444. }
  7445. ee.EncodeUint(uint64(uint16(k2)))
  7446. if esep {
  7447. ee.WriteMapElemValue()
  7448. }
  7449. ee.EncodeInt(int64(v[uint16(k2)]))
  7450. }
  7451. } else {
  7452. for k2, v2 := range v {
  7453. if esep {
  7454. ee.WriteMapElemKey()
  7455. }
  7456. ee.EncodeUint(uint64(k2))
  7457. if esep {
  7458. ee.WriteMapElemValue()
  7459. }
  7460. ee.EncodeInt(int64(v2))
  7461. }
  7462. }
  7463. ee.WriteMapEnd()
  7464. }
  7465. func (e *Encoder) fastpathEncMapUint16Int64R(f *codecFnInfo, rv reflect.Value) {
  7466. fastpathTV.EncMapUint16Int64V(rv2i(rv).(map[uint16]int64), e)
  7467. }
  7468. func (_ fastpathT) EncMapUint16Int64V(v map[uint16]int64, e *Encoder) {
  7469. ee, esep := e.e, e.hh.hasElemSeparators()
  7470. ee.WriteMapStart(len(v))
  7471. if e.h.Canonical {
  7472. v2 := make([]uint64, len(v))
  7473. var i int
  7474. for k, _ := range v {
  7475. v2[i] = uint64(k)
  7476. i++
  7477. }
  7478. sort.Sort(uintSlice(v2))
  7479. for _, k2 := range v2 {
  7480. if esep {
  7481. ee.WriteMapElemKey()
  7482. }
  7483. ee.EncodeUint(uint64(uint16(k2)))
  7484. if esep {
  7485. ee.WriteMapElemValue()
  7486. }
  7487. ee.EncodeInt(int64(v[uint16(k2)]))
  7488. }
  7489. } else {
  7490. for k2, v2 := range v {
  7491. if esep {
  7492. ee.WriteMapElemKey()
  7493. }
  7494. ee.EncodeUint(uint64(k2))
  7495. if esep {
  7496. ee.WriteMapElemValue()
  7497. }
  7498. ee.EncodeInt(int64(v2))
  7499. }
  7500. }
  7501. ee.WriteMapEnd()
  7502. }
  7503. func (e *Encoder) fastpathEncMapUint16Float32R(f *codecFnInfo, rv reflect.Value) {
  7504. fastpathTV.EncMapUint16Float32V(rv2i(rv).(map[uint16]float32), e)
  7505. }
  7506. func (_ fastpathT) EncMapUint16Float32V(v map[uint16]float32, e *Encoder) {
  7507. ee, esep := e.e, e.hh.hasElemSeparators()
  7508. ee.WriteMapStart(len(v))
  7509. if e.h.Canonical {
  7510. v2 := make([]uint64, len(v))
  7511. var i int
  7512. for k, _ := range v {
  7513. v2[i] = uint64(k)
  7514. i++
  7515. }
  7516. sort.Sort(uintSlice(v2))
  7517. for _, k2 := range v2 {
  7518. if esep {
  7519. ee.WriteMapElemKey()
  7520. }
  7521. ee.EncodeUint(uint64(uint16(k2)))
  7522. if esep {
  7523. ee.WriteMapElemValue()
  7524. }
  7525. ee.EncodeFloat32(v[uint16(k2)])
  7526. }
  7527. } else {
  7528. for k2, v2 := range v {
  7529. if esep {
  7530. ee.WriteMapElemKey()
  7531. }
  7532. ee.EncodeUint(uint64(k2))
  7533. if esep {
  7534. ee.WriteMapElemValue()
  7535. }
  7536. ee.EncodeFloat32(v2)
  7537. }
  7538. }
  7539. ee.WriteMapEnd()
  7540. }
  7541. func (e *Encoder) fastpathEncMapUint16Float64R(f *codecFnInfo, rv reflect.Value) {
  7542. fastpathTV.EncMapUint16Float64V(rv2i(rv).(map[uint16]float64), e)
  7543. }
  7544. func (_ fastpathT) EncMapUint16Float64V(v map[uint16]float64, e *Encoder) {
  7545. ee, esep := e.e, e.hh.hasElemSeparators()
  7546. ee.WriteMapStart(len(v))
  7547. if e.h.Canonical {
  7548. v2 := make([]uint64, len(v))
  7549. var i int
  7550. for k, _ := range v {
  7551. v2[i] = uint64(k)
  7552. i++
  7553. }
  7554. sort.Sort(uintSlice(v2))
  7555. for _, k2 := range v2 {
  7556. if esep {
  7557. ee.WriteMapElemKey()
  7558. }
  7559. ee.EncodeUint(uint64(uint16(k2)))
  7560. if esep {
  7561. ee.WriteMapElemValue()
  7562. }
  7563. ee.EncodeFloat64(v[uint16(k2)])
  7564. }
  7565. } else {
  7566. for k2, v2 := range v {
  7567. if esep {
  7568. ee.WriteMapElemKey()
  7569. }
  7570. ee.EncodeUint(uint64(k2))
  7571. if esep {
  7572. ee.WriteMapElemValue()
  7573. }
  7574. ee.EncodeFloat64(v2)
  7575. }
  7576. }
  7577. ee.WriteMapEnd()
  7578. }
  7579. func (e *Encoder) fastpathEncMapUint16BoolR(f *codecFnInfo, rv reflect.Value) {
  7580. fastpathTV.EncMapUint16BoolV(rv2i(rv).(map[uint16]bool), e)
  7581. }
  7582. func (_ fastpathT) EncMapUint16BoolV(v map[uint16]bool, e *Encoder) {
  7583. ee, esep := e.e, e.hh.hasElemSeparators()
  7584. ee.WriteMapStart(len(v))
  7585. if e.h.Canonical {
  7586. v2 := make([]uint64, len(v))
  7587. var i int
  7588. for k, _ := range v {
  7589. v2[i] = uint64(k)
  7590. i++
  7591. }
  7592. sort.Sort(uintSlice(v2))
  7593. for _, k2 := range v2 {
  7594. if esep {
  7595. ee.WriteMapElemKey()
  7596. }
  7597. ee.EncodeUint(uint64(uint16(k2)))
  7598. if esep {
  7599. ee.WriteMapElemValue()
  7600. }
  7601. ee.EncodeBool(v[uint16(k2)])
  7602. }
  7603. } else {
  7604. for k2, v2 := range v {
  7605. if esep {
  7606. ee.WriteMapElemKey()
  7607. }
  7608. ee.EncodeUint(uint64(k2))
  7609. if esep {
  7610. ee.WriteMapElemValue()
  7611. }
  7612. ee.EncodeBool(v2)
  7613. }
  7614. }
  7615. ee.WriteMapEnd()
  7616. }
  7617. func (e *Encoder) fastpathEncMapUint32IntfR(f *codecFnInfo, rv reflect.Value) {
  7618. fastpathTV.EncMapUint32IntfV(rv2i(rv).(map[uint32]interface{}), e)
  7619. }
  7620. func (_ fastpathT) EncMapUint32IntfV(v map[uint32]interface{}, e *Encoder) {
  7621. ee, esep := e.e, e.hh.hasElemSeparators()
  7622. ee.WriteMapStart(len(v))
  7623. if e.h.Canonical {
  7624. v2 := make([]uint64, len(v))
  7625. var i int
  7626. for k, _ := range v {
  7627. v2[i] = uint64(k)
  7628. i++
  7629. }
  7630. sort.Sort(uintSlice(v2))
  7631. for _, k2 := range v2 {
  7632. if esep {
  7633. ee.WriteMapElemKey()
  7634. }
  7635. ee.EncodeUint(uint64(uint32(k2)))
  7636. if esep {
  7637. ee.WriteMapElemValue()
  7638. }
  7639. e.encode(v[uint32(k2)])
  7640. }
  7641. } else {
  7642. for k2, v2 := range v {
  7643. if esep {
  7644. ee.WriteMapElemKey()
  7645. }
  7646. ee.EncodeUint(uint64(k2))
  7647. if esep {
  7648. ee.WriteMapElemValue()
  7649. }
  7650. e.encode(v2)
  7651. }
  7652. }
  7653. ee.WriteMapEnd()
  7654. }
  7655. func (e *Encoder) fastpathEncMapUint32StringR(f *codecFnInfo, rv reflect.Value) {
  7656. fastpathTV.EncMapUint32StringV(rv2i(rv).(map[uint32]string), e)
  7657. }
  7658. func (_ fastpathT) EncMapUint32StringV(v map[uint32]string, e *Encoder) {
  7659. ee, esep := e.e, e.hh.hasElemSeparators()
  7660. ee.WriteMapStart(len(v))
  7661. if e.h.Canonical {
  7662. v2 := make([]uint64, len(v))
  7663. var i int
  7664. for k, _ := range v {
  7665. v2[i] = uint64(k)
  7666. i++
  7667. }
  7668. sort.Sort(uintSlice(v2))
  7669. for _, k2 := range v2 {
  7670. if esep {
  7671. ee.WriteMapElemKey()
  7672. }
  7673. ee.EncodeUint(uint64(uint32(k2)))
  7674. if esep {
  7675. ee.WriteMapElemValue()
  7676. }
  7677. ee.EncodeString(c_UTF8, v[uint32(k2)])
  7678. }
  7679. } else {
  7680. for k2, v2 := range v {
  7681. if esep {
  7682. ee.WriteMapElemKey()
  7683. }
  7684. ee.EncodeUint(uint64(k2))
  7685. if esep {
  7686. ee.WriteMapElemValue()
  7687. }
  7688. ee.EncodeString(c_UTF8, v2)
  7689. }
  7690. }
  7691. ee.WriteMapEnd()
  7692. }
  7693. func (e *Encoder) fastpathEncMapUint32UintR(f *codecFnInfo, rv reflect.Value) {
  7694. fastpathTV.EncMapUint32UintV(rv2i(rv).(map[uint32]uint), e)
  7695. }
  7696. func (_ fastpathT) EncMapUint32UintV(v map[uint32]uint, e *Encoder) {
  7697. ee, esep := e.e, e.hh.hasElemSeparators()
  7698. ee.WriteMapStart(len(v))
  7699. if e.h.Canonical {
  7700. v2 := make([]uint64, len(v))
  7701. var i int
  7702. for k, _ := range v {
  7703. v2[i] = uint64(k)
  7704. i++
  7705. }
  7706. sort.Sort(uintSlice(v2))
  7707. for _, k2 := range v2 {
  7708. if esep {
  7709. ee.WriteMapElemKey()
  7710. }
  7711. ee.EncodeUint(uint64(uint32(k2)))
  7712. if esep {
  7713. ee.WriteMapElemValue()
  7714. }
  7715. ee.EncodeUint(uint64(v[uint32(k2)]))
  7716. }
  7717. } else {
  7718. for k2, v2 := range v {
  7719. if esep {
  7720. ee.WriteMapElemKey()
  7721. }
  7722. ee.EncodeUint(uint64(k2))
  7723. if esep {
  7724. ee.WriteMapElemValue()
  7725. }
  7726. ee.EncodeUint(uint64(v2))
  7727. }
  7728. }
  7729. ee.WriteMapEnd()
  7730. }
  7731. func (e *Encoder) fastpathEncMapUint32Uint8R(f *codecFnInfo, rv reflect.Value) {
  7732. fastpathTV.EncMapUint32Uint8V(rv2i(rv).(map[uint32]uint8), e)
  7733. }
  7734. func (_ fastpathT) EncMapUint32Uint8V(v map[uint32]uint8, e *Encoder) {
  7735. ee, esep := e.e, e.hh.hasElemSeparators()
  7736. ee.WriteMapStart(len(v))
  7737. if e.h.Canonical {
  7738. v2 := make([]uint64, len(v))
  7739. var i int
  7740. for k, _ := range v {
  7741. v2[i] = uint64(k)
  7742. i++
  7743. }
  7744. sort.Sort(uintSlice(v2))
  7745. for _, k2 := range v2 {
  7746. if esep {
  7747. ee.WriteMapElemKey()
  7748. }
  7749. ee.EncodeUint(uint64(uint32(k2)))
  7750. if esep {
  7751. ee.WriteMapElemValue()
  7752. }
  7753. ee.EncodeUint(uint64(v[uint32(k2)]))
  7754. }
  7755. } else {
  7756. for k2, v2 := range v {
  7757. if esep {
  7758. ee.WriteMapElemKey()
  7759. }
  7760. ee.EncodeUint(uint64(k2))
  7761. if esep {
  7762. ee.WriteMapElemValue()
  7763. }
  7764. ee.EncodeUint(uint64(v2))
  7765. }
  7766. }
  7767. ee.WriteMapEnd()
  7768. }
  7769. func (e *Encoder) fastpathEncMapUint32Uint16R(f *codecFnInfo, rv reflect.Value) {
  7770. fastpathTV.EncMapUint32Uint16V(rv2i(rv).(map[uint32]uint16), e)
  7771. }
  7772. func (_ fastpathT) EncMapUint32Uint16V(v map[uint32]uint16, e *Encoder) {
  7773. ee, esep := e.e, e.hh.hasElemSeparators()
  7774. ee.WriteMapStart(len(v))
  7775. if e.h.Canonical {
  7776. v2 := make([]uint64, len(v))
  7777. var i int
  7778. for k, _ := range v {
  7779. v2[i] = uint64(k)
  7780. i++
  7781. }
  7782. sort.Sort(uintSlice(v2))
  7783. for _, k2 := range v2 {
  7784. if esep {
  7785. ee.WriteMapElemKey()
  7786. }
  7787. ee.EncodeUint(uint64(uint32(k2)))
  7788. if esep {
  7789. ee.WriteMapElemValue()
  7790. }
  7791. ee.EncodeUint(uint64(v[uint32(k2)]))
  7792. }
  7793. } else {
  7794. for k2, v2 := range v {
  7795. if esep {
  7796. ee.WriteMapElemKey()
  7797. }
  7798. ee.EncodeUint(uint64(k2))
  7799. if esep {
  7800. ee.WriteMapElemValue()
  7801. }
  7802. ee.EncodeUint(uint64(v2))
  7803. }
  7804. }
  7805. ee.WriteMapEnd()
  7806. }
  7807. func (e *Encoder) fastpathEncMapUint32Uint32R(f *codecFnInfo, rv reflect.Value) {
  7808. fastpathTV.EncMapUint32Uint32V(rv2i(rv).(map[uint32]uint32), e)
  7809. }
  7810. func (_ fastpathT) EncMapUint32Uint32V(v map[uint32]uint32, e *Encoder) {
  7811. ee, esep := e.e, e.hh.hasElemSeparators()
  7812. ee.WriteMapStart(len(v))
  7813. if e.h.Canonical {
  7814. v2 := make([]uint64, len(v))
  7815. var i int
  7816. for k, _ := range v {
  7817. v2[i] = uint64(k)
  7818. i++
  7819. }
  7820. sort.Sort(uintSlice(v2))
  7821. for _, k2 := range v2 {
  7822. if esep {
  7823. ee.WriteMapElemKey()
  7824. }
  7825. ee.EncodeUint(uint64(uint32(k2)))
  7826. if esep {
  7827. ee.WriteMapElemValue()
  7828. }
  7829. ee.EncodeUint(uint64(v[uint32(k2)]))
  7830. }
  7831. } else {
  7832. for k2, v2 := range v {
  7833. if esep {
  7834. ee.WriteMapElemKey()
  7835. }
  7836. ee.EncodeUint(uint64(k2))
  7837. if esep {
  7838. ee.WriteMapElemValue()
  7839. }
  7840. ee.EncodeUint(uint64(v2))
  7841. }
  7842. }
  7843. ee.WriteMapEnd()
  7844. }
  7845. func (e *Encoder) fastpathEncMapUint32Uint64R(f *codecFnInfo, rv reflect.Value) {
  7846. fastpathTV.EncMapUint32Uint64V(rv2i(rv).(map[uint32]uint64), e)
  7847. }
  7848. func (_ fastpathT) EncMapUint32Uint64V(v map[uint32]uint64, e *Encoder) {
  7849. ee, esep := e.e, e.hh.hasElemSeparators()
  7850. ee.WriteMapStart(len(v))
  7851. if e.h.Canonical {
  7852. v2 := make([]uint64, len(v))
  7853. var i int
  7854. for k, _ := range v {
  7855. v2[i] = uint64(k)
  7856. i++
  7857. }
  7858. sort.Sort(uintSlice(v2))
  7859. for _, k2 := range v2 {
  7860. if esep {
  7861. ee.WriteMapElemKey()
  7862. }
  7863. ee.EncodeUint(uint64(uint32(k2)))
  7864. if esep {
  7865. ee.WriteMapElemValue()
  7866. }
  7867. ee.EncodeUint(uint64(v[uint32(k2)]))
  7868. }
  7869. } else {
  7870. for k2, v2 := range v {
  7871. if esep {
  7872. ee.WriteMapElemKey()
  7873. }
  7874. ee.EncodeUint(uint64(k2))
  7875. if esep {
  7876. ee.WriteMapElemValue()
  7877. }
  7878. ee.EncodeUint(uint64(v2))
  7879. }
  7880. }
  7881. ee.WriteMapEnd()
  7882. }
  7883. func (e *Encoder) fastpathEncMapUint32UintptrR(f *codecFnInfo, rv reflect.Value) {
  7884. fastpathTV.EncMapUint32UintptrV(rv2i(rv).(map[uint32]uintptr), e)
  7885. }
  7886. func (_ fastpathT) EncMapUint32UintptrV(v map[uint32]uintptr, e *Encoder) {
  7887. ee, esep := e.e, e.hh.hasElemSeparators()
  7888. ee.WriteMapStart(len(v))
  7889. if e.h.Canonical {
  7890. v2 := make([]uint64, len(v))
  7891. var i int
  7892. for k, _ := range v {
  7893. v2[i] = uint64(k)
  7894. i++
  7895. }
  7896. sort.Sort(uintSlice(v2))
  7897. for _, k2 := range v2 {
  7898. if esep {
  7899. ee.WriteMapElemKey()
  7900. }
  7901. ee.EncodeUint(uint64(uint32(k2)))
  7902. if esep {
  7903. ee.WriteMapElemValue()
  7904. }
  7905. e.encode(v[uint32(k2)])
  7906. }
  7907. } else {
  7908. for k2, v2 := range v {
  7909. if esep {
  7910. ee.WriteMapElemKey()
  7911. }
  7912. ee.EncodeUint(uint64(k2))
  7913. if esep {
  7914. ee.WriteMapElemValue()
  7915. }
  7916. e.encode(v2)
  7917. }
  7918. }
  7919. ee.WriteMapEnd()
  7920. }
  7921. func (e *Encoder) fastpathEncMapUint32IntR(f *codecFnInfo, rv reflect.Value) {
  7922. fastpathTV.EncMapUint32IntV(rv2i(rv).(map[uint32]int), e)
  7923. }
  7924. func (_ fastpathT) EncMapUint32IntV(v map[uint32]int, e *Encoder) {
  7925. ee, esep := e.e, e.hh.hasElemSeparators()
  7926. ee.WriteMapStart(len(v))
  7927. if e.h.Canonical {
  7928. v2 := make([]uint64, len(v))
  7929. var i int
  7930. for k, _ := range v {
  7931. v2[i] = uint64(k)
  7932. i++
  7933. }
  7934. sort.Sort(uintSlice(v2))
  7935. for _, k2 := range v2 {
  7936. if esep {
  7937. ee.WriteMapElemKey()
  7938. }
  7939. ee.EncodeUint(uint64(uint32(k2)))
  7940. if esep {
  7941. ee.WriteMapElemValue()
  7942. }
  7943. ee.EncodeInt(int64(v[uint32(k2)]))
  7944. }
  7945. } else {
  7946. for k2, v2 := range v {
  7947. if esep {
  7948. ee.WriteMapElemKey()
  7949. }
  7950. ee.EncodeUint(uint64(k2))
  7951. if esep {
  7952. ee.WriteMapElemValue()
  7953. }
  7954. ee.EncodeInt(int64(v2))
  7955. }
  7956. }
  7957. ee.WriteMapEnd()
  7958. }
  7959. func (e *Encoder) fastpathEncMapUint32Int8R(f *codecFnInfo, rv reflect.Value) {
  7960. fastpathTV.EncMapUint32Int8V(rv2i(rv).(map[uint32]int8), e)
  7961. }
  7962. func (_ fastpathT) EncMapUint32Int8V(v map[uint32]int8, e *Encoder) {
  7963. ee, esep := e.e, e.hh.hasElemSeparators()
  7964. ee.WriteMapStart(len(v))
  7965. if e.h.Canonical {
  7966. v2 := make([]uint64, len(v))
  7967. var i int
  7968. for k, _ := range v {
  7969. v2[i] = uint64(k)
  7970. i++
  7971. }
  7972. sort.Sort(uintSlice(v2))
  7973. for _, k2 := range v2 {
  7974. if esep {
  7975. ee.WriteMapElemKey()
  7976. }
  7977. ee.EncodeUint(uint64(uint32(k2)))
  7978. if esep {
  7979. ee.WriteMapElemValue()
  7980. }
  7981. ee.EncodeInt(int64(v[uint32(k2)]))
  7982. }
  7983. } else {
  7984. for k2, v2 := range v {
  7985. if esep {
  7986. ee.WriteMapElemKey()
  7987. }
  7988. ee.EncodeUint(uint64(k2))
  7989. if esep {
  7990. ee.WriteMapElemValue()
  7991. }
  7992. ee.EncodeInt(int64(v2))
  7993. }
  7994. }
  7995. ee.WriteMapEnd()
  7996. }
  7997. func (e *Encoder) fastpathEncMapUint32Int16R(f *codecFnInfo, rv reflect.Value) {
  7998. fastpathTV.EncMapUint32Int16V(rv2i(rv).(map[uint32]int16), e)
  7999. }
  8000. func (_ fastpathT) EncMapUint32Int16V(v map[uint32]int16, e *Encoder) {
  8001. ee, esep := e.e, e.hh.hasElemSeparators()
  8002. ee.WriteMapStart(len(v))
  8003. if e.h.Canonical {
  8004. v2 := make([]uint64, len(v))
  8005. var i int
  8006. for k, _ := range v {
  8007. v2[i] = uint64(k)
  8008. i++
  8009. }
  8010. sort.Sort(uintSlice(v2))
  8011. for _, k2 := range v2 {
  8012. if esep {
  8013. ee.WriteMapElemKey()
  8014. }
  8015. ee.EncodeUint(uint64(uint32(k2)))
  8016. if esep {
  8017. ee.WriteMapElemValue()
  8018. }
  8019. ee.EncodeInt(int64(v[uint32(k2)]))
  8020. }
  8021. } else {
  8022. for k2, v2 := range v {
  8023. if esep {
  8024. ee.WriteMapElemKey()
  8025. }
  8026. ee.EncodeUint(uint64(k2))
  8027. if esep {
  8028. ee.WriteMapElemValue()
  8029. }
  8030. ee.EncodeInt(int64(v2))
  8031. }
  8032. }
  8033. ee.WriteMapEnd()
  8034. }
  8035. func (e *Encoder) fastpathEncMapUint32Int32R(f *codecFnInfo, rv reflect.Value) {
  8036. fastpathTV.EncMapUint32Int32V(rv2i(rv).(map[uint32]int32), e)
  8037. }
  8038. func (_ fastpathT) EncMapUint32Int32V(v map[uint32]int32, e *Encoder) {
  8039. ee, esep := e.e, e.hh.hasElemSeparators()
  8040. ee.WriteMapStart(len(v))
  8041. if e.h.Canonical {
  8042. v2 := make([]uint64, len(v))
  8043. var i int
  8044. for k, _ := range v {
  8045. v2[i] = uint64(k)
  8046. i++
  8047. }
  8048. sort.Sort(uintSlice(v2))
  8049. for _, k2 := range v2 {
  8050. if esep {
  8051. ee.WriteMapElemKey()
  8052. }
  8053. ee.EncodeUint(uint64(uint32(k2)))
  8054. if esep {
  8055. ee.WriteMapElemValue()
  8056. }
  8057. ee.EncodeInt(int64(v[uint32(k2)]))
  8058. }
  8059. } else {
  8060. for k2, v2 := range v {
  8061. if esep {
  8062. ee.WriteMapElemKey()
  8063. }
  8064. ee.EncodeUint(uint64(k2))
  8065. if esep {
  8066. ee.WriteMapElemValue()
  8067. }
  8068. ee.EncodeInt(int64(v2))
  8069. }
  8070. }
  8071. ee.WriteMapEnd()
  8072. }
  8073. func (e *Encoder) fastpathEncMapUint32Int64R(f *codecFnInfo, rv reflect.Value) {
  8074. fastpathTV.EncMapUint32Int64V(rv2i(rv).(map[uint32]int64), e)
  8075. }
  8076. func (_ fastpathT) EncMapUint32Int64V(v map[uint32]int64, e *Encoder) {
  8077. ee, esep := e.e, e.hh.hasElemSeparators()
  8078. ee.WriteMapStart(len(v))
  8079. if e.h.Canonical {
  8080. v2 := make([]uint64, len(v))
  8081. var i int
  8082. for k, _ := range v {
  8083. v2[i] = uint64(k)
  8084. i++
  8085. }
  8086. sort.Sort(uintSlice(v2))
  8087. for _, k2 := range v2 {
  8088. if esep {
  8089. ee.WriteMapElemKey()
  8090. }
  8091. ee.EncodeUint(uint64(uint32(k2)))
  8092. if esep {
  8093. ee.WriteMapElemValue()
  8094. }
  8095. ee.EncodeInt(int64(v[uint32(k2)]))
  8096. }
  8097. } else {
  8098. for k2, v2 := range v {
  8099. if esep {
  8100. ee.WriteMapElemKey()
  8101. }
  8102. ee.EncodeUint(uint64(k2))
  8103. if esep {
  8104. ee.WriteMapElemValue()
  8105. }
  8106. ee.EncodeInt(int64(v2))
  8107. }
  8108. }
  8109. ee.WriteMapEnd()
  8110. }
  8111. func (e *Encoder) fastpathEncMapUint32Float32R(f *codecFnInfo, rv reflect.Value) {
  8112. fastpathTV.EncMapUint32Float32V(rv2i(rv).(map[uint32]float32), e)
  8113. }
  8114. func (_ fastpathT) EncMapUint32Float32V(v map[uint32]float32, e *Encoder) {
  8115. ee, esep := e.e, e.hh.hasElemSeparators()
  8116. ee.WriteMapStart(len(v))
  8117. if e.h.Canonical {
  8118. v2 := make([]uint64, len(v))
  8119. var i int
  8120. for k, _ := range v {
  8121. v2[i] = uint64(k)
  8122. i++
  8123. }
  8124. sort.Sort(uintSlice(v2))
  8125. for _, k2 := range v2 {
  8126. if esep {
  8127. ee.WriteMapElemKey()
  8128. }
  8129. ee.EncodeUint(uint64(uint32(k2)))
  8130. if esep {
  8131. ee.WriteMapElemValue()
  8132. }
  8133. ee.EncodeFloat32(v[uint32(k2)])
  8134. }
  8135. } else {
  8136. for k2, v2 := range v {
  8137. if esep {
  8138. ee.WriteMapElemKey()
  8139. }
  8140. ee.EncodeUint(uint64(k2))
  8141. if esep {
  8142. ee.WriteMapElemValue()
  8143. }
  8144. ee.EncodeFloat32(v2)
  8145. }
  8146. }
  8147. ee.WriteMapEnd()
  8148. }
  8149. func (e *Encoder) fastpathEncMapUint32Float64R(f *codecFnInfo, rv reflect.Value) {
  8150. fastpathTV.EncMapUint32Float64V(rv2i(rv).(map[uint32]float64), e)
  8151. }
  8152. func (_ fastpathT) EncMapUint32Float64V(v map[uint32]float64, e *Encoder) {
  8153. ee, esep := e.e, e.hh.hasElemSeparators()
  8154. ee.WriteMapStart(len(v))
  8155. if e.h.Canonical {
  8156. v2 := make([]uint64, len(v))
  8157. var i int
  8158. for k, _ := range v {
  8159. v2[i] = uint64(k)
  8160. i++
  8161. }
  8162. sort.Sort(uintSlice(v2))
  8163. for _, k2 := range v2 {
  8164. if esep {
  8165. ee.WriteMapElemKey()
  8166. }
  8167. ee.EncodeUint(uint64(uint32(k2)))
  8168. if esep {
  8169. ee.WriteMapElemValue()
  8170. }
  8171. ee.EncodeFloat64(v[uint32(k2)])
  8172. }
  8173. } else {
  8174. for k2, v2 := range v {
  8175. if esep {
  8176. ee.WriteMapElemKey()
  8177. }
  8178. ee.EncodeUint(uint64(k2))
  8179. if esep {
  8180. ee.WriteMapElemValue()
  8181. }
  8182. ee.EncodeFloat64(v2)
  8183. }
  8184. }
  8185. ee.WriteMapEnd()
  8186. }
  8187. func (e *Encoder) fastpathEncMapUint32BoolR(f *codecFnInfo, rv reflect.Value) {
  8188. fastpathTV.EncMapUint32BoolV(rv2i(rv).(map[uint32]bool), e)
  8189. }
  8190. func (_ fastpathT) EncMapUint32BoolV(v map[uint32]bool, e *Encoder) {
  8191. ee, esep := e.e, e.hh.hasElemSeparators()
  8192. ee.WriteMapStart(len(v))
  8193. if e.h.Canonical {
  8194. v2 := make([]uint64, len(v))
  8195. var i int
  8196. for k, _ := range v {
  8197. v2[i] = uint64(k)
  8198. i++
  8199. }
  8200. sort.Sort(uintSlice(v2))
  8201. for _, k2 := range v2 {
  8202. if esep {
  8203. ee.WriteMapElemKey()
  8204. }
  8205. ee.EncodeUint(uint64(uint32(k2)))
  8206. if esep {
  8207. ee.WriteMapElemValue()
  8208. }
  8209. ee.EncodeBool(v[uint32(k2)])
  8210. }
  8211. } else {
  8212. for k2, v2 := range v {
  8213. if esep {
  8214. ee.WriteMapElemKey()
  8215. }
  8216. ee.EncodeUint(uint64(k2))
  8217. if esep {
  8218. ee.WriteMapElemValue()
  8219. }
  8220. ee.EncodeBool(v2)
  8221. }
  8222. }
  8223. ee.WriteMapEnd()
  8224. }
  8225. func (e *Encoder) fastpathEncMapUint64IntfR(f *codecFnInfo, rv reflect.Value) {
  8226. fastpathTV.EncMapUint64IntfV(rv2i(rv).(map[uint64]interface{}), e)
  8227. }
  8228. func (_ fastpathT) EncMapUint64IntfV(v map[uint64]interface{}, e *Encoder) {
  8229. ee, esep := e.e, e.hh.hasElemSeparators()
  8230. ee.WriteMapStart(len(v))
  8231. if e.h.Canonical {
  8232. v2 := make([]uint64, len(v))
  8233. var i int
  8234. for k, _ := range v {
  8235. v2[i] = uint64(k)
  8236. i++
  8237. }
  8238. sort.Sort(uintSlice(v2))
  8239. for _, k2 := range v2 {
  8240. if esep {
  8241. ee.WriteMapElemKey()
  8242. }
  8243. ee.EncodeUint(uint64(uint64(k2)))
  8244. if esep {
  8245. ee.WriteMapElemValue()
  8246. }
  8247. e.encode(v[uint64(k2)])
  8248. }
  8249. } else {
  8250. for k2, v2 := range v {
  8251. if esep {
  8252. ee.WriteMapElemKey()
  8253. }
  8254. ee.EncodeUint(uint64(k2))
  8255. if esep {
  8256. ee.WriteMapElemValue()
  8257. }
  8258. e.encode(v2)
  8259. }
  8260. }
  8261. ee.WriteMapEnd()
  8262. }
  8263. func (e *Encoder) fastpathEncMapUint64StringR(f *codecFnInfo, rv reflect.Value) {
  8264. fastpathTV.EncMapUint64StringV(rv2i(rv).(map[uint64]string), e)
  8265. }
  8266. func (_ fastpathT) EncMapUint64StringV(v map[uint64]string, e *Encoder) {
  8267. ee, esep := e.e, e.hh.hasElemSeparators()
  8268. ee.WriteMapStart(len(v))
  8269. if e.h.Canonical {
  8270. v2 := make([]uint64, len(v))
  8271. var i int
  8272. for k, _ := range v {
  8273. v2[i] = uint64(k)
  8274. i++
  8275. }
  8276. sort.Sort(uintSlice(v2))
  8277. for _, k2 := range v2 {
  8278. if esep {
  8279. ee.WriteMapElemKey()
  8280. }
  8281. ee.EncodeUint(uint64(uint64(k2)))
  8282. if esep {
  8283. ee.WriteMapElemValue()
  8284. }
  8285. ee.EncodeString(c_UTF8, v[uint64(k2)])
  8286. }
  8287. } else {
  8288. for k2, v2 := range v {
  8289. if esep {
  8290. ee.WriteMapElemKey()
  8291. }
  8292. ee.EncodeUint(uint64(k2))
  8293. if esep {
  8294. ee.WriteMapElemValue()
  8295. }
  8296. ee.EncodeString(c_UTF8, v2)
  8297. }
  8298. }
  8299. ee.WriteMapEnd()
  8300. }
  8301. func (e *Encoder) fastpathEncMapUint64UintR(f *codecFnInfo, rv reflect.Value) {
  8302. fastpathTV.EncMapUint64UintV(rv2i(rv).(map[uint64]uint), e)
  8303. }
  8304. func (_ fastpathT) EncMapUint64UintV(v map[uint64]uint, e *Encoder) {
  8305. ee, esep := e.e, e.hh.hasElemSeparators()
  8306. ee.WriteMapStart(len(v))
  8307. if e.h.Canonical {
  8308. v2 := make([]uint64, len(v))
  8309. var i int
  8310. for k, _ := range v {
  8311. v2[i] = uint64(k)
  8312. i++
  8313. }
  8314. sort.Sort(uintSlice(v2))
  8315. for _, k2 := range v2 {
  8316. if esep {
  8317. ee.WriteMapElemKey()
  8318. }
  8319. ee.EncodeUint(uint64(uint64(k2)))
  8320. if esep {
  8321. ee.WriteMapElemValue()
  8322. }
  8323. ee.EncodeUint(uint64(v[uint64(k2)]))
  8324. }
  8325. } else {
  8326. for k2, v2 := range v {
  8327. if esep {
  8328. ee.WriteMapElemKey()
  8329. }
  8330. ee.EncodeUint(uint64(k2))
  8331. if esep {
  8332. ee.WriteMapElemValue()
  8333. }
  8334. ee.EncodeUint(uint64(v2))
  8335. }
  8336. }
  8337. ee.WriteMapEnd()
  8338. }
  8339. func (e *Encoder) fastpathEncMapUint64Uint8R(f *codecFnInfo, rv reflect.Value) {
  8340. fastpathTV.EncMapUint64Uint8V(rv2i(rv).(map[uint64]uint8), e)
  8341. }
  8342. func (_ fastpathT) EncMapUint64Uint8V(v map[uint64]uint8, e *Encoder) {
  8343. ee, esep := e.e, e.hh.hasElemSeparators()
  8344. ee.WriteMapStart(len(v))
  8345. if e.h.Canonical {
  8346. v2 := make([]uint64, len(v))
  8347. var i int
  8348. for k, _ := range v {
  8349. v2[i] = uint64(k)
  8350. i++
  8351. }
  8352. sort.Sort(uintSlice(v2))
  8353. for _, k2 := range v2 {
  8354. if esep {
  8355. ee.WriteMapElemKey()
  8356. }
  8357. ee.EncodeUint(uint64(uint64(k2)))
  8358. if esep {
  8359. ee.WriteMapElemValue()
  8360. }
  8361. ee.EncodeUint(uint64(v[uint64(k2)]))
  8362. }
  8363. } else {
  8364. for k2, v2 := range v {
  8365. if esep {
  8366. ee.WriteMapElemKey()
  8367. }
  8368. ee.EncodeUint(uint64(k2))
  8369. if esep {
  8370. ee.WriteMapElemValue()
  8371. }
  8372. ee.EncodeUint(uint64(v2))
  8373. }
  8374. }
  8375. ee.WriteMapEnd()
  8376. }
  8377. func (e *Encoder) fastpathEncMapUint64Uint16R(f *codecFnInfo, rv reflect.Value) {
  8378. fastpathTV.EncMapUint64Uint16V(rv2i(rv).(map[uint64]uint16), e)
  8379. }
  8380. func (_ fastpathT) EncMapUint64Uint16V(v map[uint64]uint16, e *Encoder) {
  8381. ee, esep := e.e, e.hh.hasElemSeparators()
  8382. ee.WriteMapStart(len(v))
  8383. if e.h.Canonical {
  8384. v2 := make([]uint64, len(v))
  8385. var i int
  8386. for k, _ := range v {
  8387. v2[i] = uint64(k)
  8388. i++
  8389. }
  8390. sort.Sort(uintSlice(v2))
  8391. for _, k2 := range v2 {
  8392. if esep {
  8393. ee.WriteMapElemKey()
  8394. }
  8395. ee.EncodeUint(uint64(uint64(k2)))
  8396. if esep {
  8397. ee.WriteMapElemValue()
  8398. }
  8399. ee.EncodeUint(uint64(v[uint64(k2)]))
  8400. }
  8401. } else {
  8402. for k2, v2 := range v {
  8403. if esep {
  8404. ee.WriteMapElemKey()
  8405. }
  8406. ee.EncodeUint(uint64(k2))
  8407. if esep {
  8408. ee.WriteMapElemValue()
  8409. }
  8410. ee.EncodeUint(uint64(v2))
  8411. }
  8412. }
  8413. ee.WriteMapEnd()
  8414. }
  8415. func (e *Encoder) fastpathEncMapUint64Uint32R(f *codecFnInfo, rv reflect.Value) {
  8416. fastpathTV.EncMapUint64Uint32V(rv2i(rv).(map[uint64]uint32), e)
  8417. }
  8418. func (_ fastpathT) EncMapUint64Uint32V(v map[uint64]uint32, e *Encoder) {
  8419. ee, esep := e.e, e.hh.hasElemSeparators()
  8420. ee.WriteMapStart(len(v))
  8421. if e.h.Canonical {
  8422. v2 := make([]uint64, len(v))
  8423. var i int
  8424. for k, _ := range v {
  8425. v2[i] = uint64(k)
  8426. i++
  8427. }
  8428. sort.Sort(uintSlice(v2))
  8429. for _, k2 := range v2 {
  8430. if esep {
  8431. ee.WriteMapElemKey()
  8432. }
  8433. ee.EncodeUint(uint64(uint64(k2)))
  8434. if esep {
  8435. ee.WriteMapElemValue()
  8436. }
  8437. ee.EncodeUint(uint64(v[uint64(k2)]))
  8438. }
  8439. } else {
  8440. for k2, v2 := range v {
  8441. if esep {
  8442. ee.WriteMapElemKey()
  8443. }
  8444. ee.EncodeUint(uint64(k2))
  8445. if esep {
  8446. ee.WriteMapElemValue()
  8447. }
  8448. ee.EncodeUint(uint64(v2))
  8449. }
  8450. }
  8451. ee.WriteMapEnd()
  8452. }
  8453. func (e *Encoder) fastpathEncMapUint64Uint64R(f *codecFnInfo, rv reflect.Value) {
  8454. fastpathTV.EncMapUint64Uint64V(rv2i(rv).(map[uint64]uint64), e)
  8455. }
  8456. func (_ fastpathT) EncMapUint64Uint64V(v map[uint64]uint64, e *Encoder) {
  8457. ee, esep := e.e, e.hh.hasElemSeparators()
  8458. ee.WriteMapStart(len(v))
  8459. if e.h.Canonical {
  8460. v2 := make([]uint64, len(v))
  8461. var i int
  8462. for k, _ := range v {
  8463. v2[i] = uint64(k)
  8464. i++
  8465. }
  8466. sort.Sort(uintSlice(v2))
  8467. for _, k2 := range v2 {
  8468. if esep {
  8469. ee.WriteMapElemKey()
  8470. }
  8471. ee.EncodeUint(uint64(uint64(k2)))
  8472. if esep {
  8473. ee.WriteMapElemValue()
  8474. }
  8475. ee.EncodeUint(uint64(v[uint64(k2)]))
  8476. }
  8477. } else {
  8478. for k2, v2 := range v {
  8479. if esep {
  8480. ee.WriteMapElemKey()
  8481. }
  8482. ee.EncodeUint(uint64(k2))
  8483. if esep {
  8484. ee.WriteMapElemValue()
  8485. }
  8486. ee.EncodeUint(uint64(v2))
  8487. }
  8488. }
  8489. ee.WriteMapEnd()
  8490. }
  8491. func (e *Encoder) fastpathEncMapUint64UintptrR(f *codecFnInfo, rv reflect.Value) {
  8492. fastpathTV.EncMapUint64UintptrV(rv2i(rv).(map[uint64]uintptr), e)
  8493. }
  8494. func (_ fastpathT) EncMapUint64UintptrV(v map[uint64]uintptr, e *Encoder) {
  8495. ee, esep := e.e, e.hh.hasElemSeparators()
  8496. ee.WriteMapStart(len(v))
  8497. if e.h.Canonical {
  8498. v2 := make([]uint64, len(v))
  8499. var i int
  8500. for k, _ := range v {
  8501. v2[i] = uint64(k)
  8502. i++
  8503. }
  8504. sort.Sort(uintSlice(v2))
  8505. for _, k2 := range v2 {
  8506. if esep {
  8507. ee.WriteMapElemKey()
  8508. }
  8509. ee.EncodeUint(uint64(uint64(k2)))
  8510. if esep {
  8511. ee.WriteMapElemValue()
  8512. }
  8513. e.encode(v[uint64(k2)])
  8514. }
  8515. } else {
  8516. for k2, v2 := range v {
  8517. if esep {
  8518. ee.WriteMapElemKey()
  8519. }
  8520. ee.EncodeUint(uint64(k2))
  8521. if esep {
  8522. ee.WriteMapElemValue()
  8523. }
  8524. e.encode(v2)
  8525. }
  8526. }
  8527. ee.WriteMapEnd()
  8528. }
  8529. func (e *Encoder) fastpathEncMapUint64IntR(f *codecFnInfo, rv reflect.Value) {
  8530. fastpathTV.EncMapUint64IntV(rv2i(rv).(map[uint64]int), e)
  8531. }
  8532. func (_ fastpathT) EncMapUint64IntV(v map[uint64]int, e *Encoder) {
  8533. ee, esep := e.e, e.hh.hasElemSeparators()
  8534. ee.WriteMapStart(len(v))
  8535. if e.h.Canonical {
  8536. v2 := make([]uint64, len(v))
  8537. var i int
  8538. for k, _ := range v {
  8539. v2[i] = uint64(k)
  8540. i++
  8541. }
  8542. sort.Sort(uintSlice(v2))
  8543. for _, k2 := range v2 {
  8544. if esep {
  8545. ee.WriteMapElemKey()
  8546. }
  8547. ee.EncodeUint(uint64(uint64(k2)))
  8548. if esep {
  8549. ee.WriteMapElemValue()
  8550. }
  8551. ee.EncodeInt(int64(v[uint64(k2)]))
  8552. }
  8553. } else {
  8554. for k2, v2 := range v {
  8555. if esep {
  8556. ee.WriteMapElemKey()
  8557. }
  8558. ee.EncodeUint(uint64(k2))
  8559. if esep {
  8560. ee.WriteMapElemValue()
  8561. }
  8562. ee.EncodeInt(int64(v2))
  8563. }
  8564. }
  8565. ee.WriteMapEnd()
  8566. }
  8567. func (e *Encoder) fastpathEncMapUint64Int8R(f *codecFnInfo, rv reflect.Value) {
  8568. fastpathTV.EncMapUint64Int8V(rv2i(rv).(map[uint64]int8), e)
  8569. }
  8570. func (_ fastpathT) EncMapUint64Int8V(v map[uint64]int8, e *Encoder) {
  8571. ee, esep := e.e, e.hh.hasElemSeparators()
  8572. ee.WriteMapStart(len(v))
  8573. if e.h.Canonical {
  8574. v2 := make([]uint64, len(v))
  8575. var i int
  8576. for k, _ := range v {
  8577. v2[i] = uint64(k)
  8578. i++
  8579. }
  8580. sort.Sort(uintSlice(v2))
  8581. for _, k2 := range v2 {
  8582. if esep {
  8583. ee.WriteMapElemKey()
  8584. }
  8585. ee.EncodeUint(uint64(uint64(k2)))
  8586. if esep {
  8587. ee.WriteMapElemValue()
  8588. }
  8589. ee.EncodeInt(int64(v[uint64(k2)]))
  8590. }
  8591. } else {
  8592. for k2, v2 := range v {
  8593. if esep {
  8594. ee.WriteMapElemKey()
  8595. }
  8596. ee.EncodeUint(uint64(k2))
  8597. if esep {
  8598. ee.WriteMapElemValue()
  8599. }
  8600. ee.EncodeInt(int64(v2))
  8601. }
  8602. }
  8603. ee.WriteMapEnd()
  8604. }
  8605. func (e *Encoder) fastpathEncMapUint64Int16R(f *codecFnInfo, rv reflect.Value) {
  8606. fastpathTV.EncMapUint64Int16V(rv2i(rv).(map[uint64]int16), e)
  8607. }
  8608. func (_ fastpathT) EncMapUint64Int16V(v map[uint64]int16, e *Encoder) {
  8609. ee, esep := e.e, e.hh.hasElemSeparators()
  8610. ee.WriteMapStart(len(v))
  8611. if e.h.Canonical {
  8612. v2 := make([]uint64, len(v))
  8613. var i int
  8614. for k, _ := range v {
  8615. v2[i] = uint64(k)
  8616. i++
  8617. }
  8618. sort.Sort(uintSlice(v2))
  8619. for _, k2 := range v2 {
  8620. if esep {
  8621. ee.WriteMapElemKey()
  8622. }
  8623. ee.EncodeUint(uint64(uint64(k2)))
  8624. if esep {
  8625. ee.WriteMapElemValue()
  8626. }
  8627. ee.EncodeInt(int64(v[uint64(k2)]))
  8628. }
  8629. } else {
  8630. for k2, v2 := range v {
  8631. if esep {
  8632. ee.WriteMapElemKey()
  8633. }
  8634. ee.EncodeUint(uint64(k2))
  8635. if esep {
  8636. ee.WriteMapElemValue()
  8637. }
  8638. ee.EncodeInt(int64(v2))
  8639. }
  8640. }
  8641. ee.WriteMapEnd()
  8642. }
  8643. func (e *Encoder) fastpathEncMapUint64Int32R(f *codecFnInfo, rv reflect.Value) {
  8644. fastpathTV.EncMapUint64Int32V(rv2i(rv).(map[uint64]int32), e)
  8645. }
  8646. func (_ fastpathT) EncMapUint64Int32V(v map[uint64]int32, e *Encoder) {
  8647. ee, esep := e.e, e.hh.hasElemSeparators()
  8648. ee.WriteMapStart(len(v))
  8649. if e.h.Canonical {
  8650. v2 := make([]uint64, len(v))
  8651. var i int
  8652. for k, _ := range v {
  8653. v2[i] = uint64(k)
  8654. i++
  8655. }
  8656. sort.Sort(uintSlice(v2))
  8657. for _, k2 := range v2 {
  8658. if esep {
  8659. ee.WriteMapElemKey()
  8660. }
  8661. ee.EncodeUint(uint64(uint64(k2)))
  8662. if esep {
  8663. ee.WriteMapElemValue()
  8664. }
  8665. ee.EncodeInt(int64(v[uint64(k2)]))
  8666. }
  8667. } else {
  8668. for k2, v2 := range v {
  8669. if esep {
  8670. ee.WriteMapElemKey()
  8671. }
  8672. ee.EncodeUint(uint64(k2))
  8673. if esep {
  8674. ee.WriteMapElemValue()
  8675. }
  8676. ee.EncodeInt(int64(v2))
  8677. }
  8678. }
  8679. ee.WriteMapEnd()
  8680. }
  8681. func (e *Encoder) fastpathEncMapUint64Int64R(f *codecFnInfo, rv reflect.Value) {
  8682. fastpathTV.EncMapUint64Int64V(rv2i(rv).(map[uint64]int64), e)
  8683. }
  8684. func (_ fastpathT) EncMapUint64Int64V(v map[uint64]int64, e *Encoder) {
  8685. ee, esep := e.e, e.hh.hasElemSeparators()
  8686. ee.WriteMapStart(len(v))
  8687. if e.h.Canonical {
  8688. v2 := make([]uint64, len(v))
  8689. var i int
  8690. for k, _ := range v {
  8691. v2[i] = uint64(k)
  8692. i++
  8693. }
  8694. sort.Sort(uintSlice(v2))
  8695. for _, k2 := range v2 {
  8696. if esep {
  8697. ee.WriteMapElemKey()
  8698. }
  8699. ee.EncodeUint(uint64(uint64(k2)))
  8700. if esep {
  8701. ee.WriteMapElemValue()
  8702. }
  8703. ee.EncodeInt(int64(v[uint64(k2)]))
  8704. }
  8705. } else {
  8706. for k2, v2 := range v {
  8707. if esep {
  8708. ee.WriteMapElemKey()
  8709. }
  8710. ee.EncodeUint(uint64(k2))
  8711. if esep {
  8712. ee.WriteMapElemValue()
  8713. }
  8714. ee.EncodeInt(int64(v2))
  8715. }
  8716. }
  8717. ee.WriteMapEnd()
  8718. }
  8719. func (e *Encoder) fastpathEncMapUint64Float32R(f *codecFnInfo, rv reflect.Value) {
  8720. fastpathTV.EncMapUint64Float32V(rv2i(rv).(map[uint64]float32), e)
  8721. }
  8722. func (_ fastpathT) EncMapUint64Float32V(v map[uint64]float32, e *Encoder) {
  8723. ee, esep := e.e, e.hh.hasElemSeparators()
  8724. ee.WriteMapStart(len(v))
  8725. if e.h.Canonical {
  8726. v2 := make([]uint64, len(v))
  8727. var i int
  8728. for k, _ := range v {
  8729. v2[i] = uint64(k)
  8730. i++
  8731. }
  8732. sort.Sort(uintSlice(v2))
  8733. for _, k2 := range v2 {
  8734. if esep {
  8735. ee.WriteMapElemKey()
  8736. }
  8737. ee.EncodeUint(uint64(uint64(k2)))
  8738. if esep {
  8739. ee.WriteMapElemValue()
  8740. }
  8741. ee.EncodeFloat32(v[uint64(k2)])
  8742. }
  8743. } else {
  8744. for k2, v2 := range v {
  8745. if esep {
  8746. ee.WriteMapElemKey()
  8747. }
  8748. ee.EncodeUint(uint64(k2))
  8749. if esep {
  8750. ee.WriteMapElemValue()
  8751. }
  8752. ee.EncodeFloat32(v2)
  8753. }
  8754. }
  8755. ee.WriteMapEnd()
  8756. }
  8757. func (e *Encoder) fastpathEncMapUint64Float64R(f *codecFnInfo, rv reflect.Value) {
  8758. fastpathTV.EncMapUint64Float64V(rv2i(rv).(map[uint64]float64), e)
  8759. }
  8760. func (_ fastpathT) EncMapUint64Float64V(v map[uint64]float64, e *Encoder) {
  8761. ee, esep := e.e, e.hh.hasElemSeparators()
  8762. ee.WriteMapStart(len(v))
  8763. if e.h.Canonical {
  8764. v2 := make([]uint64, len(v))
  8765. var i int
  8766. for k, _ := range v {
  8767. v2[i] = uint64(k)
  8768. i++
  8769. }
  8770. sort.Sort(uintSlice(v2))
  8771. for _, k2 := range v2 {
  8772. if esep {
  8773. ee.WriteMapElemKey()
  8774. }
  8775. ee.EncodeUint(uint64(uint64(k2)))
  8776. if esep {
  8777. ee.WriteMapElemValue()
  8778. }
  8779. ee.EncodeFloat64(v[uint64(k2)])
  8780. }
  8781. } else {
  8782. for k2, v2 := range v {
  8783. if esep {
  8784. ee.WriteMapElemKey()
  8785. }
  8786. ee.EncodeUint(uint64(k2))
  8787. if esep {
  8788. ee.WriteMapElemValue()
  8789. }
  8790. ee.EncodeFloat64(v2)
  8791. }
  8792. }
  8793. ee.WriteMapEnd()
  8794. }
  8795. func (e *Encoder) fastpathEncMapUint64BoolR(f *codecFnInfo, rv reflect.Value) {
  8796. fastpathTV.EncMapUint64BoolV(rv2i(rv).(map[uint64]bool), e)
  8797. }
  8798. func (_ fastpathT) EncMapUint64BoolV(v map[uint64]bool, e *Encoder) {
  8799. ee, esep := e.e, e.hh.hasElemSeparators()
  8800. ee.WriteMapStart(len(v))
  8801. if e.h.Canonical {
  8802. v2 := make([]uint64, len(v))
  8803. var i int
  8804. for k, _ := range v {
  8805. v2[i] = uint64(k)
  8806. i++
  8807. }
  8808. sort.Sort(uintSlice(v2))
  8809. for _, k2 := range v2 {
  8810. if esep {
  8811. ee.WriteMapElemKey()
  8812. }
  8813. ee.EncodeUint(uint64(uint64(k2)))
  8814. if esep {
  8815. ee.WriteMapElemValue()
  8816. }
  8817. ee.EncodeBool(v[uint64(k2)])
  8818. }
  8819. } else {
  8820. for k2, v2 := range v {
  8821. if esep {
  8822. ee.WriteMapElemKey()
  8823. }
  8824. ee.EncodeUint(uint64(k2))
  8825. if esep {
  8826. ee.WriteMapElemValue()
  8827. }
  8828. ee.EncodeBool(v2)
  8829. }
  8830. }
  8831. ee.WriteMapEnd()
  8832. }
  8833. func (e *Encoder) fastpathEncMapUintptrIntfR(f *codecFnInfo, rv reflect.Value) {
  8834. fastpathTV.EncMapUintptrIntfV(rv2i(rv).(map[uintptr]interface{}), e)
  8835. }
  8836. func (_ fastpathT) EncMapUintptrIntfV(v map[uintptr]interface{}, e *Encoder) {
  8837. ee, esep := e.e, e.hh.hasElemSeparators()
  8838. ee.WriteMapStart(len(v))
  8839. if e.h.Canonical {
  8840. v2 := make([]uint64, len(v))
  8841. var i int
  8842. for k, _ := range v {
  8843. v2[i] = uint64(k)
  8844. i++
  8845. }
  8846. sort.Sort(uintSlice(v2))
  8847. for _, k2 := range v2 {
  8848. if esep {
  8849. ee.WriteMapElemKey()
  8850. }
  8851. e.encode(uintptr(k2))
  8852. if esep {
  8853. ee.WriteMapElemValue()
  8854. }
  8855. e.encode(v[uintptr(k2)])
  8856. }
  8857. } else {
  8858. for k2, v2 := range v {
  8859. if esep {
  8860. ee.WriteMapElemKey()
  8861. }
  8862. e.encode(k2)
  8863. if esep {
  8864. ee.WriteMapElemValue()
  8865. }
  8866. e.encode(v2)
  8867. }
  8868. }
  8869. ee.WriteMapEnd()
  8870. }
  8871. func (e *Encoder) fastpathEncMapUintptrStringR(f *codecFnInfo, rv reflect.Value) {
  8872. fastpathTV.EncMapUintptrStringV(rv2i(rv).(map[uintptr]string), e)
  8873. }
  8874. func (_ fastpathT) EncMapUintptrStringV(v map[uintptr]string, e *Encoder) {
  8875. ee, esep := e.e, e.hh.hasElemSeparators()
  8876. ee.WriteMapStart(len(v))
  8877. if e.h.Canonical {
  8878. v2 := make([]uint64, len(v))
  8879. var i int
  8880. for k, _ := range v {
  8881. v2[i] = uint64(k)
  8882. i++
  8883. }
  8884. sort.Sort(uintSlice(v2))
  8885. for _, k2 := range v2 {
  8886. if esep {
  8887. ee.WriteMapElemKey()
  8888. }
  8889. e.encode(uintptr(k2))
  8890. if esep {
  8891. ee.WriteMapElemValue()
  8892. }
  8893. ee.EncodeString(c_UTF8, v[uintptr(k2)])
  8894. }
  8895. } else {
  8896. for k2, v2 := range v {
  8897. if esep {
  8898. ee.WriteMapElemKey()
  8899. }
  8900. e.encode(k2)
  8901. if esep {
  8902. ee.WriteMapElemValue()
  8903. }
  8904. ee.EncodeString(c_UTF8, v2)
  8905. }
  8906. }
  8907. ee.WriteMapEnd()
  8908. }
  8909. func (e *Encoder) fastpathEncMapUintptrUintR(f *codecFnInfo, rv reflect.Value) {
  8910. fastpathTV.EncMapUintptrUintV(rv2i(rv).(map[uintptr]uint), e)
  8911. }
  8912. func (_ fastpathT) EncMapUintptrUintV(v map[uintptr]uint, e *Encoder) {
  8913. ee, esep := e.e, e.hh.hasElemSeparators()
  8914. ee.WriteMapStart(len(v))
  8915. if e.h.Canonical {
  8916. v2 := make([]uint64, len(v))
  8917. var i int
  8918. for k, _ := range v {
  8919. v2[i] = uint64(k)
  8920. i++
  8921. }
  8922. sort.Sort(uintSlice(v2))
  8923. for _, k2 := range v2 {
  8924. if esep {
  8925. ee.WriteMapElemKey()
  8926. }
  8927. e.encode(uintptr(k2))
  8928. if esep {
  8929. ee.WriteMapElemValue()
  8930. }
  8931. ee.EncodeUint(uint64(v[uintptr(k2)]))
  8932. }
  8933. } else {
  8934. for k2, v2 := range v {
  8935. if esep {
  8936. ee.WriteMapElemKey()
  8937. }
  8938. e.encode(k2)
  8939. if esep {
  8940. ee.WriteMapElemValue()
  8941. }
  8942. ee.EncodeUint(uint64(v2))
  8943. }
  8944. }
  8945. ee.WriteMapEnd()
  8946. }
  8947. func (e *Encoder) fastpathEncMapUintptrUint8R(f *codecFnInfo, rv reflect.Value) {
  8948. fastpathTV.EncMapUintptrUint8V(rv2i(rv).(map[uintptr]uint8), e)
  8949. }
  8950. func (_ fastpathT) EncMapUintptrUint8V(v map[uintptr]uint8, e *Encoder) {
  8951. ee, esep := e.e, e.hh.hasElemSeparators()
  8952. ee.WriteMapStart(len(v))
  8953. if e.h.Canonical {
  8954. v2 := make([]uint64, len(v))
  8955. var i int
  8956. for k, _ := range v {
  8957. v2[i] = uint64(k)
  8958. i++
  8959. }
  8960. sort.Sort(uintSlice(v2))
  8961. for _, k2 := range v2 {
  8962. if esep {
  8963. ee.WriteMapElemKey()
  8964. }
  8965. e.encode(uintptr(k2))
  8966. if esep {
  8967. ee.WriteMapElemValue()
  8968. }
  8969. ee.EncodeUint(uint64(v[uintptr(k2)]))
  8970. }
  8971. } else {
  8972. for k2, v2 := range v {
  8973. if esep {
  8974. ee.WriteMapElemKey()
  8975. }
  8976. e.encode(k2)
  8977. if esep {
  8978. ee.WriteMapElemValue()
  8979. }
  8980. ee.EncodeUint(uint64(v2))
  8981. }
  8982. }
  8983. ee.WriteMapEnd()
  8984. }
  8985. func (e *Encoder) fastpathEncMapUintptrUint16R(f *codecFnInfo, rv reflect.Value) {
  8986. fastpathTV.EncMapUintptrUint16V(rv2i(rv).(map[uintptr]uint16), e)
  8987. }
  8988. func (_ fastpathT) EncMapUintptrUint16V(v map[uintptr]uint16, e *Encoder) {
  8989. ee, esep := e.e, e.hh.hasElemSeparators()
  8990. ee.WriteMapStart(len(v))
  8991. if e.h.Canonical {
  8992. v2 := make([]uint64, len(v))
  8993. var i int
  8994. for k, _ := range v {
  8995. v2[i] = uint64(k)
  8996. i++
  8997. }
  8998. sort.Sort(uintSlice(v2))
  8999. for _, k2 := range v2 {
  9000. if esep {
  9001. ee.WriteMapElemKey()
  9002. }
  9003. e.encode(uintptr(k2))
  9004. if esep {
  9005. ee.WriteMapElemValue()
  9006. }
  9007. ee.EncodeUint(uint64(v[uintptr(k2)]))
  9008. }
  9009. } else {
  9010. for k2, v2 := range v {
  9011. if esep {
  9012. ee.WriteMapElemKey()
  9013. }
  9014. e.encode(k2)
  9015. if esep {
  9016. ee.WriteMapElemValue()
  9017. }
  9018. ee.EncodeUint(uint64(v2))
  9019. }
  9020. }
  9021. ee.WriteMapEnd()
  9022. }
  9023. func (e *Encoder) fastpathEncMapUintptrUint32R(f *codecFnInfo, rv reflect.Value) {
  9024. fastpathTV.EncMapUintptrUint32V(rv2i(rv).(map[uintptr]uint32), e)
  9025. }
  9026. func (_ fastpathT) EncMapUintptrUint32V(v map[uintptr]uint32, e *Encoder) {
  9027. ee, esep := e.e, e.hh.hasElemSeparators()
  9028. ee.WriteMapStart(len(v))
  9029. if e.h.Canonical {
  9030. v2 := make([]uint64, len(v))
  9031. var i int
  9032. for k, _ := range v {
  9033. v2[i] = uint64(k)
  9034. i++
  9035. }
  9036. sort.Sort(uintSlice(v2))
  9037. for _, k2 := range v2 {
  9038. if esep {
  9039. ee.WriteMapElemKey()
  9040. }
  9041. e.encode(uintptr(k2))
  9042. if esep {
  9043. ee.WriteMapElemValue()
  9044. }
  9045. ee.EncodeUint(uint64(v[uintptr(k2)]))
  9046. }
  9047. } else {
  9048. for k2, v2 := range v {
  9049. if esep {
  9050. ee.WriteMapElemKey()
  9051. }
  9052. e.encode(k2)
  9053. if esep {
  9054. ee.WriteMapElemValue()
  9055. }
  9056. ee.EncodeUint(uint64(v2))
  9057. }
  9058. }
  9059. ee.WriteMapEnd()
  9060. }
  9061. func (e *Encoder) fastpathEncMapUintptrUint64R(f *codecFnInfo, rv reflect.Value) {
  9062. fastpathTV.EncMapUintptrUint64V(rv2i(rv).(map[uintptr]uint64), e)
  9063. }
  9064. func (_ fastpathT) EncMapUintptrUint64V(v map[uintptr]uint64, e *Encoder) {
  9065. ee, esep := e.e, e.hh.hasElemSeparators()
  9066. ee.WriteMapStart(len(v))
  9067. if e.h.Canonical {
  9068. v2 := make([]uint64, len(v))
  9069. var i int
  9070. for k, _ := range v {
  9071. v2[i] = uint64(k)
  9072. i++
  9073. }
  9074. sort.Sort(uintSlice(v2))
  9075. for _, k2 := range v2 {
  9076. if esep {
  9077. ee.WriteMapElemKey()
  9078. }
  9079. e.encode(uintptr(k2))
  9080. if esep {
  9081. ee.WriteMapElemValue()
  9082. }
  9083. ee.EncodeUint(uint64(v[uintptr(k2)]))
  9084. }
  9085. } else {
  9086. for k2, v2 := range v {
  9087. if esep {
  9088. ee.WriteMapElemKey()
  9089. }
  9090. e.encode(k2)
  9091. if esep {
  9092. ee.WriteMapElemValue()
  9093. }
  9094. ee.EncodeUint(uint64(v2))
  9095. }
  9096. }
  9097. ee.WriteMapEnd()
  9098. }
  9099. func (e *Encoder) fastpathEncMapUintptrUintptrR(f *codecFnInfo, rv reflect.Value) {
  9100. fastpathTV.EncMapUintptrUintptrV(rv2i(rv).(map[uintptr]uintptr), e)
  9101. }
  9102. func (_ fastpathT) EncMapUintptrUintptrV(v map[uintptr]uintptr, e *Encoder) {
  9103. ee, esep := e.e, e.hh.hasElemSeparators()
  9104. ee.WriteMapStart(len(v))
  9105. if e.h.Canonical {
  9106. v2 := make([]uint64, len(v))
  9107. var i int
  9108. for k, _ := range v {
  9109. v2[i] = uint64(k)
  9110. i++
  9111. }
  9112. sort.Sort(uintSlice(v2))
  9113. for _, k2 := range v2 {
  9114. if esep {
  9115. ee.WriteMapElemKey()
  9116. }
  9117. e.encode(uintptr(k2))
  9118. if esep {
  9119. ee.WriteMapElemValue()
  9120. }
  9121. e.encode(v[uintptr(k2)])
  9122. }
  9123. } else {
  9124. for k2, v2 := range v {
  9125. if esep {
  9126. ee.WriteMapElemKey()
  9127. }
  9128. e.encode(k2)
  9129. if esep {
  9130. ee.WriteMapElemValue()
  9131. }
  9132. e.encode(v2)
  9133. }
  9134. }
  9135. ee.WriteMapEnd()
  9136. }
  9137. func (e *Encoder) fastpathEncMapUintptrIntR(f *codecFnInfo, rv reflect.Value) {
  9138. fastpathTV.EncMapUintptrIntV(rv2i(rv).(map[uintptr]int), e)
  9139. }
  9140. func (_ fastpathT) EncMapUintptrIntV(v map[uintptr]int, e *Encoder) {
  9141. ee, esep := e.e, e.hh.hasElemSeparators()
  9142. ee.WriteMapStart(len(v))
  9143. if e.h.Canonical {
  9144. v2 := make([]uint64, len(v))
  9145. var i int
  9146. for k, _ := range v {
  9147. v2[i] = uint64(k)
  9148. i++
  9149. }
  9150. sort.Sort(uintSlice(v2))
  9151. for _, k2 := range v2 {
  9152. if esep {
  9153. ee.WriteMapElemKey()
  9154. }
  9155. e.encode(uintptr(k2))
  9156. if esep {
  9157. ee.WriteMapElemValue()
  9158. }
  9159. ee.EncodeInt(int64(v[uintptr(k2)]))
  9160. }
  9161. } else {
  9162. for k2, v2 := range v {
  9163. if esep {
  9164. ee.WriteMapElemKey()
  9165. }
  9166. e.encode(k2)
  9167. if esep {
  9168. ee.WriteMapElemValue()
  9169. }
  9170. ee.EncodeInt(int64(v2))
  9171. }
  9172. }
  9173. ee.WriteMapEnd()
  9174. }
  9175. func (e *Encoder) fastpathEncMapUintptrInt8R(f *codecFnInfo, rv reflect.Value) {
  9176. fastpathTV.EncMapUintptrInt8V(rv2i(rv).(map[uintptr]int8), e)
  9177. }
  9178. func (_ fastpathT) EncMapUintptrInt8V(v map[uintptr]int8, e *Encoder) {
  9179. ee, esep := e.e, e.hh.hasElemSeparators()
  9180. ee.WriteMapStart(len(v))
  9181. if e.h.Canonical {
  9182. v2 := make([]uint64, len(v))
  9183. var i int
  9184. for k, _ := range v {
  9185. v2[i] = uint64(k)
  9186. i++
  9187. }
  9188. sort.Sort(uintSlice(v2))
  9189. for _, k2 := range v2 {
  9190. if esep {
  9191. ee.WriteMapElemKey()
  9192. }
  9193. e.encode(uintptr(k2))
  9194. if esep {
  9195. ee.WriteMapElemValue()
  9196. }
  9197. ee.EncodeInt(int64(v[uintptr(k2)]))
  9198. }
  9199. } else {
  9200. for k2, v2 := range v {
  9201. if esep {
  9202. ee.WriteMapElemKey()
  9203. }
  9204. e.encode(k2)
  9205. if esep {
  9206. ee.WriteMapElemValue()
  9207. }
  9208. ee.EncodeInt(int64(v2))
  9209. }
  9210. }
  9211. ee.WriteMapEnd()
  9212. }
  9213. func (e *Encoder) fastpathEncMapUintptrInt16R(f *codecFnInfo, rv reflect.Value) {
  9214. fastpathTV.EncMapUintptrInt16V(rv2i(rv).(map[uintptr]int16), e)
  9215. }
  9216. func (_ fastpathT) EncMapUintptrInt16V(v map[uintptr]int16, e *Encoder) {
  9217. ee, esep := e.e, e.hh.hasElemSeparators()
  9218. ee.WriteMapStart(len(v))
  9219. if e.h.Canonical {
  9220. v2 := make([]uint64, len(v))
  9221. var i int
  9222. for k, _ := range v {
  9223. v2[i] = uint64(k)
  9224. i++
  9225. }
  9226. sort.Sort(uintSlice(v2))
  9227. for _, k2 := range v2 {
  9228. if esep {
  9229. ee.WriteMapElemKey()
  9230. }
  9231. e.encode(uintptr(k2))
  9232. if esep {
  9233. ee.WriteMapElemValue()
  9234. }
  9235. ee.EncodeInt(int64(v[uintptr(k2)]))
  9236. }
  9237. } else {
  9238. for k2, v2 := range v {
  9239. if esep {
  9240. ee.WriteMapElemKey()
  9241. }
  9242. e.encode(k2)
  9243. if esep {
  9244. ee.WriteMapElemValue()
  9245. }
  9246. ee.EncodeInt(int64(v2))
  9247. }
  9248. }
  9249. ee.WriteMapEnd()
  9250. }
  9251. func (e *Encoder) fastpathEncMapUintptrInt32R(f *codecFnInfo, rv reflect.Value) {
  9252. fastpathTV.EncMapUintptrInt32V(rv2i(rv).(map[uintptr]int32), e)
  9253. }
  9254. func (_ fastpathT) EncMapUintptrInt32V(v map[uintptr]int32, e *Encoder) {
  9255. ee, esep := e.e, e.hh.hasElemSeparators()
  9256. ee.WriteMapStart(len(v))
  9257. if e.h.Canonical {
  9258. v2 := make([]uint64, len(v))
  9259. var i int
  9260. for k, _ := range v {
  9261. v2[i] = uint64(k)
  9262. i++
  9263. }
  9264. sort.Sort(uintSlice(v2))
  9265. for _, k2 := range v2 {
  9266. if esep {
  9267. ee.WriteMapElemKey()
  9268. }
  9269. e.encode(uintptr(k2))
  9270. if esep {
  9271. ee.WriteMapElemValue()
  9272. }
  9273. ee.EncodeInt(int64(v[uintptr(k2)]))
  9274. }
  9275. } else {
  9276. for k2, v2 := range v {
  9277. if esep {
  9278. ee.WriteMapElemKey()
  9279. }
  9280. e.encode(k2)
  9281. if esep {
  9282. ee.WriteMapElemValue()
  9283. }
  9284. ee.EncodeInt(int64(v2))
  9285. }
  9286. }
  9287. ee.WriteMapEnd()
  9288. }
  9289. func (e *Encoder) fastpathEncMapUintptrInt64R(f *codecFnInfo, rv reflect.Value) {
  9290. fastpathTV.EncMapUintptrInt64V(rv2i(rv).(map[uintptr]int64), e)
  9291. }
  9292. func (_ fastpathT) EncMapUintptrInt64V(v map[uintptr]int64, e *Encoder) {
  9293. ee, esep := e.e, e.hh.hasElemSeparators()
  9294. ee.WriteMapStart(len(v))
  9295. if e.h.Canonical {
  9296. v2 := make([]uint64, len(v))
  9297. var i int
  9298. for k, _ := range v {
  9299. v2[i] = uint64(k)
  9300. i++
  9301. }
  9302. sort.Sort(uintSlice(v2))
  9303. for _, k2 := range v2 {
  9304. if esep {
  9305. ee.WriteMapElemKey()
  9306. }
  9307. e.encode(uintptr(k2))
  9308. if esep {
  9309. ee.WriteMapElemValue()
  9310. }
  9311. ee.EncodeInt(int64(v[uintptr(k2)]))
  9312. }
  9313. } else {
  9314. for k2, v2 := range v {
  9315. if esep {
  9316. ee.WriteMapElemKey()
  9317. }
  9318. e.encode(k2)
  9319. if esep {
  9320. ee.WriteMapElemValue()
  9321. }
  9322. ee.EncodeInt(int64(v2))
  9323. }
  9324. }
  9325. ee.WriteMapEnd()
  9326. }
  9327. func (e *Encoder) fastpathEncMapUintptrFloat32R(f *codecFnInfo, rv reflect.Value) {
  9328. fastpathTV.EncMapUintptrFloat32V(rv2i(rv).(map[uintptr]float32), e)
  9329. }
  9330. func (_ fastpathT) EncMapUintptrFloat32V(v map[uintptr]float32, e *Encoder) {
  9331. ee, esep := e.e, e.hh.hasElemSeparators()
  9332. ee.WriteMapStart(len(v))
  9333. if e.h.Canonical {
  9334. v2 := make([]uint64, len(v))
  9335. var i int
  9336. for k, _ := range v {
  9337. v2[i] = uint64(k)
  9338. i++
  9339. }
  9340. sort.Sort(uintSlice(v2))
  9341. for _, k2 := range v2 {
  9342. if esep {
  9343. ee.WriteMapElemKey()
  9344. }
  9345. e.encode(uintptr(k2))
  9346. if esep {
  9347. ee.WriteMapElemValue()
  9348. }
  9349. ee.EncodeFloat32(v[uintptr(k2)])
  9350. }
  9351. } else {
  9352. for k2, v2 := range v {
  9353. if esep {
  9354. ee.WriteMapElemKey()
  9355. }
  9356. e.encode(k2)
  9357. if esep {
  9358. ee.WriteMapElemValue()
  9359. }
  9360. ee.EncodeFloat32(v2)
  9361. }
  9362. }
  9363. ee.WriteMapEnd()
  9364. }
  9365. func (e *Encoder) fastpathEncMapUintptrFloat64R(f *codecFnInfo, rv reflect.Value) {
  9366. fastpathTV.EncMapUintptrFloat64V(rv2i(rv).(map[uintptr]float64), e)
  9367. }
  9368. func (_ fastpathT) EncMapUintptrFloat64V(v map[uintptr]float64, e *Encoder) {
  9369. ee, esep := e.e, e.hh.hasElemSeparators()
  9370. ee.WriteMapStart(len(v))
  9371. if e.h.Canonical {
  9372. v2 := make([]uint64, len(v))
  9373. var i int
  9374. for k, _ := range v {
  9375. v2[i] = uint64(k)
  9376. i++
  9377. }
  9378. sort.Sort(uintSlice(v2))
  9379. for _, k2 := range v2 {
  9380. if esep {
  9381. ee.WriteMapElemKey()
  9382. }
  9383. e.encode(uintptr(k2))
  9384. if esep {
  9385. ee.WriteMapElemValue()
  9386. }
  9387. ee.EncodeFloat64(v[uintptr(k2)])
  9388. }
  9389. } else {
  9390. for k2, v2 := range v {
  9391. if esep {
  9392. ee.WriteMapElemKey()
  9393. }
  9394. e.encode(k2)
  9395. if esep {
  9396. ee.WriteMapElemValue()
  9397. }
  9398. ee.EncodeFloat64(v2)
  9399. }
  9400. }
  9401. ee.WriteMapEnd()
  9402. }
  9403. func (e *Encoder) fastpathEncMapUintptrBoolR(f *codecFnInfo, rv reflect.Value) {
  9404. fastpathTV.EncMapUintptrBoolV(rv2i(rv).(map[uintptr]bool), e)
  9405. }
  9406. func (_ fastpathT) EncMapUintptrBoolV(v map[uintptr]bool, e *Encoder) {
  9407. ee, esep := e.e, e.hh.hasElemSeparators()
  9408. ee.WriteMapStart(len(v))
  9409. if e.h.Canonical {
  9410. v2 := make([]uint64, len(v))
  9411. var i int
  9412. for k, _ := range v {
  9413. v2[i] = uint64(k)
  9414. i++
  9415. }
  9416. sort.Sort(uintSlice(v2))
  9417. for _, k2 := range v2 {
  9418. if esep {
  9419. ee.WriteMapElemKey()
  9420. }
  9421. e.encode(uintptr(k2))
  9422. if esep {
  9423. ee.WriteMapElemValue()
  9424. }
  9425. ee.EncodeBool(v[uintptr(k2)])
  9426. }
  9427. } else {
  9428. for k2, v2 := range v {
  9429. if esep {
  9430. ee.WriteMapElemKey()
  9431. }
  9432. e.encode(k2)
  9433. if esep {
  9434. ee.WriteMapElemValue()
  9435. }
  9436. ee.EncodeBool(v2)
  9437. }
  9438. }
  9439. ee.WriteMapEnd()
  9440. }
  9441. func (e *Encoder) fastpathEncMapIntIntfR(f *codecFnInfo, rv reflect.Value) {
  9442. fastpathTV.EncMapIntIntfV(rv2i(rv).(map[int]interface{}), e)
  9443. }
  9444. func (_ fastpathT) EncMapIntIntfV(v map[int]interface{}, e *Encoder) {
  9445. ee, esep := e.e, e.hh.hasElemSeparators()
  9446. ee.WriteMapStart(len(v))
  9447. if e.h.Canonical {
  9448. v2 := make([]int64, len(v))
  9449. var i int
  9450. for k, _ := range v {
  9451. v2[i] = int64(k)
  9452. i++
  9453. }
  9454. sort.Sort(intSlice(v2))
  9455. for _, k2 := range v2 {
  9456. if esep {
  9457. ee.WriteMapElemKey()
  9458. }
  9459. ee.EncodeInt(int64(int(k2)))
  9460. if esep {
  9461. ee.WriteMapElemValue()
  9462. }
  9463. e.encode(v[int(k2)])
  9464. }
  9465. } else {
  9466. for k2, v2 := range v {
  9467. if esep {
  9468. ee.WriteMapElemKey()
  9469. }
  9470. ee.EncodeInt(int64(k2))
  9471. if esep {
  9472. ee.WriteMapElemValue()
  9473. }
  9474. e.encode(v2)
  9475. }
  9476. }
  9477. ee.WriteMapEnd()
  9478. }
  9479. func (e *Encoder) fastpathEncMapIntStringR(f *codecFnInfo, rv reflect.Value) {
  9480. fastpathTV.EncMapIntStringV(rv2i(rv).(map[int]string), e)
  9481. }
  9482. func (_ fastpathT) EncMapIntStringV(v map[int]string, e *Encoder) {
  9483. ee, esep := e.e, e.hh.hasElemSeparators()
  9484. ee.WriteMapStart(len(v))
  9485. if e.h.Canonical {
  9486. v2 := make([]int64, len(v))
  9487. var i int
  9488. for k, _ := range v {
  9489. v2[i] = int64(k)
  9490. i++
  9491. }
  9492. sort.Sort(intSlice(v2))
  9493. for _, k2 := range v2 {
  9494. if esep {
  9495. ee.WriteMapElemKey()
  9496. }
  9497. ee.EncodeInt(int64(int(k2)))
  9498. if esep {
  9499. ee.WriteMapElemValue()
  9500. }
  9501. ee.EncodeString(c_UTF8, v[int(k2)])
  9502. }
  9503. } else {
  9504. for k2, v2 := range v {
  9505. if esep {
  9506. ee.WriteMapElemKey()
  9507. }
  9508. ee.EncodeInt(int64(k2))
  9509. if esep {
  9510. ee.WriteMapElemValue()
  9511. }
  9512. ee.EncodeString(c_UTF8, v2)
  9513. }
  9514. }
  9515. ee.WriteMapEnd()
  9516. }
  9517. func (e *Encoder) fastpathEncMapIntUintR(f *codecFnInfo, rv reflect.Value) {
  9518. fastpathTV.EncMapIntUintV(rv2i(rv).(map[int]uint), e)
  9519. }
  9520. func (_ fastpathT) EncMapIntUintV(v map[int]uint, e *Encoder) {
  9521. ee, esep := e.e, e.hh.hasElemSeparators()
  9522. ee.WriteMapStart(len(v))
  9523. if e.h.Canonical {
  9524. v2 := make([]int64, len(v))
  9525. var i int
  9526. for k, _ := range v {
  9527. v2[i] = int64(k)
  9528. i++
  9529. }
  9530. sort.Sort(intSlice(v2))
  9531. for _, k2 := range v2 {
  9532. if esep {
  9533. ee.WriteMapElemKey()
  9534. }
  9535. ee.EncodeInt(int64(int(k2)))
  9536. if esep {
  9537. ee.WriteMapElemValue()
  9538. }
  9539. ee.EncodeUint(uint64(v[int(k2)]))
  9540. }
  9541. } else {
  9542. for k2, v2 := range v {
  9543. if esep {
  9544. ee.WriteMapElemKey()
  9545. }
  9546. ee.EncodeInt(int64(k2))
  9547. if esep {
  9548. ee.WriteMapElemValue()
  9549. }
  9550. ee.EncodeUint(uint64(v2))
  9551. }
  9552. }
  9553. ee.WriteMapEnd()
  9554. }
  9555. func (e *Encoder) fastpathEncMapIntUint8R(f *codecFnInfo, rv reflect.Value) {
  9556. fastpathTV.EncMapIntUint8V(rv2i(rv).(map[int]uint8), e)
  9557. }
  9558. func (_ fastpathT) EncMapIntUint8V(v map[int]uint8, e *Encoder) {
  9559. ee, esep := e.e, e.hh.hasElemSeparators()
  9560. ee.WriteMapStart(len(v))
  9561. if e.h.Canonical {
  9562. v2 := make([]int64, len(v))
  9563. var i int
  9564. for k, _ := range v {
  9565. v2[i] = int64(k)
  9566. i++
  9567. }
  9568. sort.Sort(intSlice(v2))
  9569. for _, k2 := range v2 {
  9570. if esep {
  9571. ee.WriteMapElemKey()
  9572. }
  9573. ee.EncodeInt(int64(int(k2)))
  9574. if esep {
  9575. ee.WriteMapElemValue()
  9576. }
  9577. ee.EncodeUint(uint64(v[int(k2)]))
  9578. }
  9579. } else {
  9580. for k2, v2 := range v {
  9581. if esep {
  9582. ee.WriteMapElemKey()
  9583. }
  9584. ee.EncodeInt(int64(k2))
  9585. if esep {
  9586. ee.WriteMapElemValue()
  9587. }
  9588. ee.EncodeUint(uint64(v2))
  9589. }
  9590. }
  9591. ee.WriteMapEnd()
  9592. }
  9593. func (e *Encoder) fastpathEncMapIntUint16R(f *codecFnInfo, rv reflect.Value) {
  9594. fastpathTV.EncMapIntUint16V(rv2i(rv).(map[int]uint16), e)
  9595. }
  9596. func (_ fastpathT) EncMapIntUint16V(v map[int]uint16, e *Encoder) {
  9597. ee, esep := e.e, e.hh.hasElemSeparators()
  9598. ee.WriteMapStart(len(v))
  9599. if e.h.Canonical {
  9600. v2 := make([]int64, len(v))
  9601. var i int
  9602. for k, _ := range v {
  9603. v2[i] = int64(k)
  9604. i++
  9605. }
  9606. sort.Sort(intSlice(v2))
  9607. for _, k2 := range v2 {
  9608. if esep {
  9609. ee.WriteMapElemKey()
  9610. }
  9611. ee.EncodeInt(int64(int(k2)))
  9612. if esep {
  9613. ee.WriteMapElemValue()
  9614. }
  9615. ee.EncodeUint(uint64(v[int(k2)]))
  9616. }
  9617. } else {
  9618. for k2, v2 := range v {
  9619. if esep {
  9620. ee.WriteMapElemKey()
  9621. }
  9622. ee.EncodeInt(int64(k2))
  9623. if esep {
  9624. ee.WriteMapElemValue()
  9625. }
  9626. ee.EncodeUint(uint64(v2))
  9627. }
  9628. }
  9629. ee.WriteMapEnd()
  9630. }
  9631. func (e *Encoder) fastpathEncMapIntUint32R(f *codecFnInfo, rv reflect.Value) {
  9632. fastpathTV.EncMapIntUint32V(rv2i(rv).(map[int]uint32), e)
  9633. }
  9634. func (_ fastpathT) EncMapIntUint32V(v map[int]uint32, e *Encoder) {
  9635. ee, esep := e.e, e.hh.hasElemSeparators()
  9636. ee.WriteMapStart(len(v))
  9637. if e.h.Canonical {
  9638. v2 := make([]int64, len(v))
  9639. var i int
  9640. for k, _ := range v {
  9641. v2[i] = int64(k)
  9642. i++
  9643. }
  9644. sort.Sort(intSlice(v2))
  9645. for _, k2 := range v2 {
  9646. if esep {
  9647. ee.WriteMapElemKey()
  9648. }
  9649. ee.EncodeInt(int64(int(k2)))
  9650. if esep {
  9651. ee.WriteMapElemValue()
  9652. }
  9653. ee.EncodeUint(uint64(v[int(k2)]))
  9654. }
  9655. } else {
  9656. for k2, v2 := range v {
  9657. if esep {
  9658. ee.WriteMapElemKey()
  9659. }
  9660. ee.EncodeInt(int64(k2))
  9661. if esep {
  9662. ee.WriteMapElemValue()
  9663. }
  9664. ee.EncodeUint(uint64(v2))
  9665. }
  9666. }
  9667. ee.WriteMapEnd()
  9668. }
  9669. func (e *Encoder) fastpathEncMapIntUint64R(f *codecFnInfo, rv reflect.Value) {
  9670. fastpathTV.EncMapIntUint64V(rv2i(rv).(map[int]uint64), e)
  9671. }
  9672. func (_ fastpathT) EncMapIntUint64V(v map[int]uint64, e *Encoder) {
  9673. ee, esep := e.e, e.hh.hasElemSeparators()
  9674. ee.WriteMapStart(len(v))
  9675. if e.h.Canonical {
  9676. v2 := make([]int64, len(v))
  9677. var i int
  9678. for k, _ := range v {
  9679. v2[i] = int64(k)
  9680. i++
  9681. }
  9682. sort.Sort(intSlice(v2))
  9683. for _, k2 := range v2 {
  9684. if esep {
  9685. ee.WriteMapElemKey()
  9686. }
  9687. ee.EncodeInt(int64(int(k2)))
  9688. if esep {
  9689. ee.WriteMapElemValue()
  9690. }
  9691. ee.EncodeUint(uint64(v[int(k2)]))
  9692. }
  9693. } else {
  9694. for k2, v2 := range v {
  9695. if esep {
  9696. ee.WriteMapElemKey()
  9697. }
  9698. ee.EncodeInt(int64(k2))
  9699. if esep {
  9700. ee.WriteMapElemValue()
  9701. }
  9702. ee.EncodeUint(uint64(v2))
  9703. }
  9704. }
  9705. ee.WriteMapEnd()
  9706. }
  9707. func (e *Encoder) fastpathEncMapIntUintptrR(f *codecFnInfo, rv reflect.Value) {
  9708. fastpathTV.EncMapIntUintptrV(rv2i(rv).(map[int]uintptr), e)
  9709. }
  9710. func (_ fastpathT) EncMapIntUintptrV(v map[int]uintptr, e *Encoder) {
  9711. ee, esep := e.e, e.hh.hasElemSeparators()
  9712. ee.WriteMapStart(len(v))
  9713. if e.h.Canonical {
  9714. v2 := make([]int64, len(v))
  9715. var i int
  9716. for k, _ := range v {
  9717. v2[i] = int64(k)
  9718. i++
  9719. }
  9720. sort.Sort(intSlice(v2))
  9721. for _, k2 := range v2 {
  9722. if esep {
  9723. ee.WriteMapElemKey()
  9724. }
  9725. ee.EncodeInt(int64(int(k2)))
  9726. if esep {
  9727. ee.WriteMapElemValue()
  9728. }
  9729. e.encode(v[int(k2)])
  9730. }
  9731. } else {
  9732. for k2, v2 := range v {
  9733. if esep {
  9734. ee.WriteMapElemKey()
  9735. }
  9736. ee.EncodeInt(int64(k2))
  9737. if esep {
  9738. ee.WriteMapElemValue()
  9739. }
  9740. e.encode(v2)
  9741. }
  9742. }
  9743. ee.WriteMapEnd()
  9744. }
  9745. func (e *Encoder) fastpathEncMapIntIntR(f *codecFnInfo, rv reflect.Value) {
  9746. fastpathTV.EncMapIntIntV(rv2i(rv).(map[int]int), e)
  9747. }
  9748. func (_ fastpathT) EncMapIntIntV(v map[int]int, e *Encoder) {
  9749. ee, esep := e.e, e.hh.hasElemSeparators()
  9750. ee.WriteMapStart(len(v))
  9751. if e.h.Canonical {
  9752. v2 := make([]int64, len(v))
  9753. var i int
  9754. for k, _ := range v {
  9755. v2[i] = int64(k)
  9756. i++
  9757. }
  9758. sort.Sort(intSlice(v2))
  9759. for _, k2 := range v2 {
  9760. if esep {
  9761. ee.WriteMapElemKey()
  9762. }
  9763. ee.EncodeInt(int64(int(k2)))
  9764. if esep {
  9765. ee.WriteMapElemValue()
  9766. }
  9767. ee.EncodeInt(int64(v[int(k2)]))
  9768. }
  9769. } else {
  9770. for k2, v2 := range v {
  9771. if esep {
  9772. ee.WriteMapElemKey()
  9773. }
  9774. ee.EncodeInt(int64(k2))
  9775. if esep {
  9776. ee.WriteMapElemValue()
  9777. }
  9778. ee.EncodeInt(int64(v2))
  9779. }
  9780. }
  9781. ee.WriteMapEnd()
  9782. }
  9783. func (e *Encoder) fastpathEncMapIntInt8R(f *codecFnInfo, rv reflect.Value) {
  9784. fastpathTV.EncMapIntInt8V(rv2i(rv).(map[int]int8), e)
  9785. }
  9786. func (_ fastpathT) EncMapIntInt8V(v map[int]int8, e *Encoder) {
  9787. ee, esep := e.e, e.hh.hasElemSeparators()
  9788. ee.WriteMapStart(len(v))
  9789. if e.h.Canonical {
  9790. v2 := make([]int64, len(v))
  9791. var i int
  9792. for k, _ := range v {
  9793. v2[i] = int64(k)
  9794. i++
  9795. }
  9796. sort.Sort(intSlice(v2))
  9797. for _, k2 := range v2 {
  9798. if esep {
  9799. ee.WriteMapElemKey()
  9800. }
  9801. ee.EncodeInt(int64(int(k2)))
  9802. if esep {
  9803. ee.WriteMapElemValue()
  9804. }
  9805. ee.EncodeInt(int64(v[int(k2)]))
  9806. }
  9807. } else {
  9808. for k2, v2 := range v {
  9809. if esep {
  9810. ee.WriteMapElemKey()
  9811. }
  9812. ee.EncodeInt(int64(k2))
  9813. if esep {
  9814. ee.WriteMapElemValue()
  9815. }
  9816. ee.EncodeInt(int64(v2))
  9817. }
  9818. }
  9819. ee.WriteMapEnd()
  9820. }
  9821. func (e *Encoder) fastpathEncMapIntInt16R(f *codecFnInfo, rv reflect.Value) {
  9822. fastpathTV.EncMapIntInt16V(rv2i(rv).(map[int]int16), e)
  9823. }
  9824. func (_ fastpathT) EncMapIntInt16V(v map[int]int16, e *Encoder) {
  9825. ee, esep := e.e, e.hh.hasElemSeparators()
  9826. ee.WriteMapStart(len(v))
  9827. if e.h.Canonical {
  9828. v2 := make([]int64, len(v))
  9829. var i int
  9830. for k, _ := range v {
  9831. v2[i] = int64(k)
  9832. i++
  9833. }
  9834. sort.Sort(intSlice(v2))
  9835. for _, k2 := range v2 {
  9836. if esep {
  9837. ee.WriteMapElemKey()
  9838. }
  9839. ee.EncodeInt(int64(int(k2)))
  9840. if esep {
  9841. ee.WriteMapElemValue()
  9842. }
  9843. ee.EncodeInt(int64(v[int(k2)]))
  9844. }
  9845. } else {
  9846. for k2, v2 := range v {
  9847. if esep {
  9848. ee.WriteMapElemKey()
  9849. }
  9850. ee.EncodeInt(int64(k2))
  9851. if esep {
  9852. ee.WriteMapElemValue()
  9853. }
  9854. ee.EncodeInt(int64(v2))
  9855. }
  9856. }
  9857. ee.WriteMapEnd()
  9858. }
  9859. func (e *Encoder) fastpathEncMapIntInt32R(f *codecFnInfo, rv reflect.Value) {
  9860. fastpathTV.EncMapIntInt32V(rv2i(rv).(map[int]int32), e)
  9861. }
  9862. func (_ fastpathT) EncMapIntInt32V(v map[int]int32, e *Encoder) {
  9863. ee, esep := e.e, e.hh.hasElemSeparators()
  9864. ee.WriteMapStart(len(v))
  9865. if e.h.Canonical {
  9866. v2 := make([]int64, len(v))
  9867. var i int
  9868. for k, _ := range v {
  9869. v2[i] = int64(k)
  9870. i++
  9871. }
  9872. sort.Sort(intSlice(v2))
  9873. for _, k2 := range v2 {
  9874. if esep {
  9875. ee.WriteMapElemKey()
  9876. }
  9877. ee.EncodeInt(int64(int(k2)))
  9878. if esep {
  9879. ee.WriteMapElemValue()
  9880. }
  9881. ee.EncodeInt(int64(v[int(k2)]))
  9882. }
  9883. } else {
  9884. for k2, v2 := range v {
  9885. if esep {
  9886. ee.WriteMapElemKey()
  9887. }
  9888. ee.EncodeInt(int64(k2))
  9889. if esep {
  9890. ee.WriteMapElemValue()
  9891. }
  9892. ee.EncodeInt(int64(v2))
  9893. }
  9894. }
  9895. ee.WriteMapEnd()
  9896. }
  9897. func (e *Encoder) fastpathEncMapIntInt64R(f *codecFnInfo, rv reflect.Value) {
  9898. fastpathTV.EncMapIntInt64V(rv2i(rv).(map[int]int64), e)
  9899. }
  9900. func (_ fastpathT) EncMapIntInt64V(v map[int]int64, e *Encoder) {
  9901. ee, esep := e.e, e.hh.hasElemSeparators()
  9902. ee.WriteMapStart(len(v))
  9903. if e.h.Canonical {
  9904. v2 := make([]int64, len(v))
  9905. var i int
  9906. for k, _ := range v {
  9907. v2[i] = int64(k)
  9908. i++
  9909. }
  9910. sort.Sort(intSlice(v2))
  9911. for _, k2 := range v2 {
  9912. if esep {
  9913. ee.WriteMapElemKey()
  9914. }
  9915. ee.EncodeInt(int64(int(k2)))
  9916. if esep {
  9917. ee.WriteMapElemValue()
  9918. }
  9919. ee.EncodeInt(int64(v[int(k2)]))
  9920. }
  9921. } else {
  9922. for k2, v2 := range v {
  9923. if esep {
  9924. ee.WriteMapElemKey()
  9925. }
  9926. ee.EncodeInt(int64(k2))
  9927. if esep {
  9928. ee.WriteMapElemValue()
  9929. }
  9930. ee.EncodeInt(int64(v2))
  9931. }
  9932. }
  9933. ee.WriteMapEnd()
  9934. }
  9935. func (e *Encoder) fastpathEncMapIntFloat32R(f *codecFnInfo, rv reflect.Value) {
  9936. fastpathTV.EncMapIntFloat32V(rv2i(rv).(map[int]float32), e)
  9937. }
  9938. func (_ fastpathT) EncMapIntFloat32V(v map[int]float32, e *Encoder) {
  9939. ee, esep := e.e, e.hh.hasElemSeparators()
  9940. ee.WriteMapStart(len(v))
  9941. if e.h.Canonical {
  9942. v2 := make([]int64, len(v))
  9943. var i int
  9944. for k, _ := range v {
  9945. v2[i] = int64(k)
  9946. i++
  9947. }
  9948. sort.Sort(intSlice(v2))
  9949. for _, k2 := range v2 {
  9950. if esep {
  9951. ee.WriteMapElemKey()
  9952. }
  9953. ee.EncodeInt(int64(int(k2)))
  9954. if esep {
  9955. ee.WriteMapElemValue()
  9956. }
  9957. ee.EncodeFloat32(v[int(k2)])
  9958. }
  9959. } else {
  9960. for k2, v2 := range v {
  9961. if esep {
  9962. ee.WriteMapElemKey()
  9963. }
  9964. ee.EncodeInt(int64(k2))
  9965. if esep {
  9966. ee.WriteMapElemValue()
  9967. }
  9968. ee.EncodeFloat32(v2)
  9969. }
  9970. }
  9971. ee.WriteMapEnd()
  9972. }
  9973. func (e *Encoder) fastpathEncMapIntFloat64R(f *codecFnInfo, rv reflect.Value) {
  9974. fastpathTV.EncMapIntFloat64V(rv2i(rv).(map[int]float64), e)
  9975. }
  9976. func (_ fastpathT) EncMapIntFloat64V(v map[int]float64, e *Encoder) {
  9977. ee, esep := e.e, e.hh.hasElemSeparators()
  9978. ee.WriteMapStart(len(v))
  9979. if e.h.Canonical {
  9980. v2 := make([]int64, len(v))
  9981. var i int
  9982. for k, _ := range v {
  9983. v2[i] = int64(k)
  9984. i++
  9985. }
  9986. sort.Sort(intSlice(v2))
  9987. for _, k2 := range v2 {
  9988. if esep {
  9989. ee.WriteMapElemKey()
  9990. }
  9991. ee.EncodeInt(int64(int(k2)))
  9992. if esep {
  9993. ee.WriteMapElemValue()
  9994. }
  9995. ee.EncodeFloat64(v[int(k2)])
  9996. }
  9997. } else {
  9998. for k2, v2 := range v {
  9999. if esep {
  10000. ee.WriteMapElemKey()
  10001. }
  10002. ee.EncodeInt(int64(k2))
  10003. if esep {
  10004. ee.WriteMapElemValue()
  10005. }
  10006. ee.EncodeFloat64(v2)
  10007. }
  10008. }
  10009. ee.WriteMapEnd()
  10010. }
  10011. func (e *Encoder) fastpathEncMapIntBoolR(f *codecFnInfo, rv reflect.Value) {
  10012. fastpathTV.EncMapIntBoolV(rv2i(rv).(map[int]bool), e)
  10013. }
  10014. func (_ fastpathT) EncMapIntBoolV(v map[int]bool, e *Encoder) {
  10015. ee, esep := e.e, e.hh.hasElemSeparators()
  10016. ee.WriteMapStart(len(v))
  10017. if e.h.Canonical {
  10018. v2 := make([]int64, len(v))
  10019. var i int
  10020. for k, _ := range v {
  10021. v2[i] = int64(k)
  10022. i++
  10023. }
  10024. sort.Sort(intSlice(v2))
  10025. for _, k2 := range v2 {
  10026. if esep {
  10027. ee.WriteMapElemKey()
  10028. }
  10029. ee.EncodeInt(int64(int(k2)))
  10030. if esep {
  10031. ee.WriteMapElemValue()
  10032. }
  10033. ee.EncodeBool(v[int(k2)])
  10034. }
  10035. } else {
  10036. for k2, v2 := range v {
  10037. if esep {
  10038. ee.WriteMapElemKey()
  10039. }
  10040. ee.EncodeInt(int64(k2))
  10041. if esep {
  10042. ee.WriteMapElemValue()
  10043. }
  10044. ee.EncodeBool(v2)
  10045. }
  10046. }
  10047. ee.WriteMapEnd()
  10048. }
  10049. func (e *Encoder) fastpathEncMapInt8IntfR(f *codecFnInfo, rv reflect.Value) {
  10050. fastpathTV.EncMapInt8IntfV(rv2i(rv).(map[int8]interface{}), e)
  10051. }
  10052. func (_ fastpathT) EncMapInt8IntfV(v map[int8]interface{}, e *Encoder) {
  10053. ee, esep := e.e, e.hh.hasElemSeparators()
  10054. ee.WriteMapStart(len(v))
  10055. if e.h.Canonical {
  10056. v2 := make([]int64, len(v))
  10057. var i int
  10058. for k, _ := range v {
  10059. v2[i] = int64(k)
  10060. i++
  10061. }
  10062. sort.Sort(intSlice(v2))
  10063. for _, k2 := range v2 {
  10064. if esep {
  10065. ee.WriteMapElemKey()
  10066. }
  10067. ee.EncodeInt(int64(int8(k2)))
  10068. if esep {
  10069. ee.WriteMapElemValue()
  10070. }
  10071. e.encode(v[int8(k2)])
  10072. }
  10073. } else {
  10074. for k2, v2 := range v {
  10075. if esep {
  10076. ee.WriteMapElemKey()
  10077. }
  10078. ee.EncodeInt(int64(k2))
  10079. if esep {
  10080. ee.WriteMapElemValue()
  10081. }
  10082. e.encode(v2)
  10083. }
  10084. }
  10085. ee.WriteMapEnd()
  10086. }
  10087. func (e *Encoder) fastpathEncMapInt8StringR(f *codecFnInfo, rv reflect.Value) {
  10088. fastpathTV.EncMapInt8StringV(rv2i(rv).(map[int8]string), e)
  10089. }
  10090. func (_ fastpathT) EncMapInt8StringV(v map[int8]string, e *Encoder) {
  10091. ee, esep := e.e, e.hh.hasElemSeparators()
  10092. ee.WriteMapStart(len(v))
  10093. if e.h.Canonical {
  10094. v2 := make([]int64, len(v))
  10095. var i int
  10096. for k, _ := range v {
  10097. v2[i] = int64(k)
  10098. i++
  10099. }
  10100. sort.Sort(intSlice(v2))
  10101. for _, k2 := range v2 {
  10102. if esep {
  10103. ee.WriteMapElemKey()
  10104. }
  10105. ee.EncodeInt(int64(int8(k2)))
  10106. if esep {
  10107. ee.WriteMapElemValue()
  10108. }
  10109. ee.EncodeString(c_UTF8, v[int8(k2)])
  10110. }
  10111. } else {
  10112. for k2, v2 := range v {
  10113. if esep {
  10114. ee.WriteMapElemKey()
  10115. }
  10116. ee.EncodeInt(int64(k2))
  10117. if esep {
  10118. ee.WriteMapElemValue()
  10119. }
  10120. ee.EncodeString(c_UTF8, v2)
  10121. }
  10122. }
  10123. ee.WriteMapEnd()
  10124. }
  10125. func (e *Encoder) fastpathEncMapInt8UintR(f *codecFnInfo, rv reflect.Value) {
  10126. fastpathTV.EncMapInt8UintV(rv2i(rv).(map[int8]uint), e)
  10127. }
  10128. func (_ fastpathT) EncMapInt8UintV(v map[int8]uint, e *Encoder) {
  10129. ee, esep := e.e, e.hh.hasElemSeparators()
  10130. ee.WriteMapStart(len(v))
  10131. if e.h.Canonical {
  10132. v2 := make([]int64, len(v))
  10133. var i int
  10134. for k, _ := range v {
  10135. v2[i] = int64(k)
  10136. i++
  10137. }
  10138. sort.Sort(intSlice(v2))
  10139. for _, k2 := range v2 {
  10140. if esep {
  10141. ee.WriteMapElemKey()
  10142. }
  10143. ee.EncodeInt(int64(int8(k2)))
  10144. if esep {
  10145. ee.WriteMapElemValue()
  10146. }
  10147. ee.EncodeUint(uint64(v[int8(k2)]))
  10148. }
  10149. } else {
  10150. for k2, v2 := range v {
  10151. if esep {
  10152. ee.WriteMapElemKey()
  10153. }
  10154. ee.EncodeInt(int64(k2))
  10155. if esep {
  10156. ee.WriteMapElemValue()
  10157. }
  10158. ee.EncodeUint(uint64(v2))
  10159. }
  10160. }
  10161. ee.WriteMapEnd()
  10162. }
  10163. func (e *Encoder) fastpathEncMapInt8Uint8R(f *codecFnInfo, rv reflect.Value) {
  10164. fastpathTV.EncMapInt8Uint8V(rv2i(rv).(map[int8]uint8), e)
  10165. }
  10166. func (_ fastpathT) EncMapInt8Uint8V(v map[int8]uint8, e *Encoder) {
  10167. ee, esep := e.e, e.hh.hasElemSeparators()
  10168. ee.WriteMapStart(len(v))
  10169. if e.h.Canonical {
  10170. v2 := make([]int64, len(v))
  10171. var i int
  10172. for k, _ := range v {
  10173. v2[i] = int64(k)
  10174. i++
  10175. }
  10176. sort.Sort(intSlice(v2))
  10177. for _, k2 := range v2 {
  10178. if esep {
  10179. ee.WriteMapElemKey()
  10180. }
  10181. ee.EncodeInt(int64(int8(k2)))
  10182. if esep {
  10183. ee.WriteMapElemValue()
  10184. }
  10185. ee.EncodeUint(uint64(v[int8(k2)]))
  10186. }
  10187. } else {
  10188. for k2, v2 := range v {
  10189. if esep {
  10190. ee.WriteMapElemKey()
  10191. }
  10192. ee.EncodeInt(int64(k2))
  10193. if esep {
  10194. ee.WriteMapElemValue()
  10195. }
  10196. ee.EncodeUint(uint64(v2))
  10197. }
  10198. }
  10199. ee.WriteMapEnd()
  10200. }
  10201. func (e *Encoder) fastpathEncMapInt8Uint16R(f *codecFnInfo, rv reflect.Value) {
  10202. fastpathTV.EncMapInt8Uint16V(rv2i(rv).(map[int8]uint16), e)
  10203. }
  10204. func (_ fastpathT) EncMapInt8Uint16V(v map[int8]uint16, e *Encoder) {
  10205. ee, esep := e.e, e.hh.hasElemSeparators()
  10206. ee.WriteMapStart(len(v))
  10207. if e.h.Canonical {
  10208. v2 := make([]int64, len(v))
  10209. var i int
  10210. for k, _ := range v {
  10211. v2[i] = int64(k)
  10212. i++
  10213. }
  10214. sort.Sort(intSlice(v2))
  10215. for _, k2 := range v2 {
  10216. if esep {
  10217. ee.WriteMapElemKey()
  10218. }
  10219. ee.EncodeInt(int64(int8(k2)))
  10220. if esep {
  10221. ee.WriteMapElemValue()
  10222. }
  10223. ee.EncodeUint(uint64(v[int8(k2)]))
  10224. }
  10225. } else {
  10226. for k2, v2 := range v {
  10227. if esep {
  10228. ee.WriteMapElemKey()
  10229. }
  10230. ee.EncodeInt(int64(k2))
  10231. if esep {
  10232. ee.WriteMapElemValue()
  10233. }
  10234. ee.EncodeUint(uint64(v2))
  10235. }
  10236. }
  10237. ee.WriteMapEnd()
  10238. }
  10239. func (e *Encoder) fastpathEncMapInt8Uint32R(f *codecFnInfo, rv reflect.Value) {
  10240. fastpathTV.EncMapInt8Uint32V(rv2i(rv).(map[int8]uint32), e)
  10241. }
  10242. func (_ fastpathT) EncMapInt8Uint32V(v map[int8]uint32, e *Encoder) {
  10243. ee, esep := e.e, e.hh.hasElemSeparators()
  10244. ee.WriteMapStart(len(v))
  10245. if e.h.Canonical {
  10246. v2 := make([]int64, len(v))
  10247. var i int
  10248. for k, _ := range v {
  10249. v2[i] = int64(k)
  10250. i++
  10251. }
  10252. sort.Sort(intSlice(v2))
  10253. for _, k2 := range v2 {
  10254. if esep {
  10255. ee.WriteMapElemKey()
  10256. }
  10257. ee.EncodeInt(int64(int8(k2)))
  10258. if esep {
  10259. ee.WriteMapElemValue()
  10260. }
  10261. ee.EncodeUint(uint64(v[int8(k2)]))
  10262. }
  10263. } else {
  10264. for k2, v2 := range v {
  10265. if esep {
  10266. ee.WriteMapElemKey()
  10267. }
  10268. ee.EncodeInt(int64(k2))
  10269. if esep {
  10270. ee.WriteMapElemValue()
  10271. }
  10272. ee.EncodeUint(uint64(v2))
  10273. }
  10274. }
  10275. ee.WriteMapEnd()
  10276. }
  10277. func (e *Encoder) fastpathEncMapInt8Uint64R(f *codecFnInfo, rv reflect.Value) {
  10278. fastpathTV.EncMapInt8Uint64V(rv2i(rv).(map[int8]uint64), e)
  10279. }
  10280. func (_ fastpathT) EncMapInt8Uint64V(v map[int8]uint64, e *Encoder) {
  10281. ee, esep := e.e, e.hh.hasElemSeparators()
  10282. ee.WriteMapStart(len(v))
  10283. if e.h.Canonical {
  10284. v2 := make([]int64, len(v))
  10285. var i int
  10286. for k, _ := range v {
  10287. v2[i] = int64(k)
  10288. i++
  10289. }
  10290. sort.Sort(intSlice(v2))
  10291. for _, k2 := range v2 {
  10292. if esep {
  10293. ee.WriteMapElemKey()
  10294. }
  10295. ee.EncodeInt(int64(int8(k2)))
  10296. if esep {
  10297. ee.WriteMapElemValue()
  10298. }
  10299. ee.EncodeUint(uint64(v[int8(k2)]))
  10300. }
  10301. } else {
  10302. for k2, v2 := range v {
  10303. if esep {
  10304. ee.WriteMapElemKey()
  10305. }
  10306. ee.EncodeInt(int64(k2))
  10307. if esep {
  10308. ee.WriteMapElemValue()
  10309. }
  10310. ee.EncodeUint(uint64(v2))
  10311. }
  10312. }
  10313. ee.WriteMapEnd()
  10314. }
  10315. func (e *Encoder) fastpathEncMapInt8UintptrR(f *codecFnInfo, rv reflect.Value) {
  10316. fastpathTV.EncMapInt8UintptrV(rv2i(rv).(map[int8]uintptr), e)
  10317. }
  10318. func (_ fastpathT) EncMapInt8UintptrV(v map[int8]uintptr, e *Encoder) {
  10319. ee, esep := e.e, e.hh.hasElemSeparators()
  10320. ee.WriteMapStart(len(v))
  10321. if e.h.Canonical {
  10322. v2 := make([]int64, len(v))
  10323. var i int
  10324. for k, _ := range v {
  10325. v2[i] = int64(k)
  10326. i++
  10327. }
  10328. sort.Sort(intSlice(v2))
  10329. for _, k2 := range v2 {
  10330. if esep {
  10331. ee.WriteMapElemKey()
  10332. }
  10333. ee.EncodeInt(int64(int8(k2)))
  10334. if esep {
  10335. ee.WriteMapElemValue()
  10336. }
  10337. e.encode(v[int8(k2)])
  10338. }
  10339. } else {
  10340. for k2, v2 := range v {
  10341. if esep {
  10342. ee.WriteMapElemKey()
  10343. }
  10344. ee.EncodeInt(int64(k2))
  10345. if esep {
  10346. ee.WriteMapElemValue()
  10347. }
  10348. e.encode(v2)
  10349. }
  10350. }
  10351. ee.WriteMapEnd()
  10352. }
  10353. func (e *Encoder) fastpathEncMapInt8IntR(f *codecFnInfo, rv reflect.Value) {
  10354. fastpathTV.EncMapInt8IntV(rv2i(rv).(map[int8]int), e)
  10355. }
  10356. func (_ fastpathT) EncMapInt8IntV(v map[int8]int, e *Encoder) {
  10357. ee, esep := e.e, e.hh.hasElemSeparators()
  10358. ee.WriteMapStart(len(v))
  10359. if e.h.Canonical {
  10360. v2 := make([]int64, len(v))
  10361. var i int
  10362. for k, _ := range v {
  10363. v2[i] = int64(k)
  10364. i++
  10365. }
  10366. sort.Sort(intSlice(v2))
  10367. for _, k2 := range v2 {
  10368. if esep {
  10369. ee.WriteMapElemKey()
  10370. }
  10371. ee.EncodeInt(int64(int8(k2)))
  10372. if esep {
  10373. ee.WriteMapElemValue()
  10374. }
  10375. ee.EncodeInt(int64(v[int8(k2)]))
  10376. }
  10377. } else {
  10378. for k2, v2 := range v {
  10379. if esep {
  10380. ee.WriteMapElemKey()
  10381. }
  10382. ee.EncodeInt(int64(k2))
  10383. if esep {
  10384. ee.WriteMapElemValue()
  10385. }
  10386. ee.EncodeInt(int64(v2))
  10387. }
  10388. }
  10389. ee.WriteMapEnd()
  10390. }
  10391. func (e *Encoder) fastpathEncMapInt8Int8R(f *codecFnInfo, rv reflect.Value) {
  10392. fastpathTV.EncMapInt8Int8V(rv2i(rv).(map[int8]int8), e)
  10393. }
  10394. func (_ fastpathT) EncMapInt8Int8V(v map[int8]int8, e *Encoder) {
  10395. ee, esep := e.e, e.hh.hasElemSeparators()
  10396. ee.WriteMapStart(len(v))
  10397. if e.h.Canonical {
  10398. v2 := make([]int64, len(v))
  10399. var i int
  10400. for k, _ := range v {
  10401. v2[i] = int64(k)
  10402. i++
  10403. }
  10404. sort.Sort(intSlice(v2))
  10405. for _, k2 := range v2 {
  10406. if esep {
  10407. ee.WriteMapElemKey()
  10408. }
  10409. ee.EncodeInt(int64(int8(k2)))
  10410. if esep {
  10411. ee.WriteMapElemValue()
  10412. }
  10413. ee.EncodeInt(int64(v[int8(k2)]))
  10414. }
  10415. } else {
  10416. for k2, v2 := range v {
  10417. if esep {
  10418. ee.WriteMapElemKey()
  10419. }
  10420. ee.EncodeInt(int64(k2))
  10421. if esep {
  10422. ee.WriteMapElemValue()
  10423. }
  10424. ee.EncodeInt(int64(v2))
  10425. }
  10426. }
  10427. ee.WriteMapEnd()
  10428. }
  10429. func (e *Encoder) fastpathEncMapInt8Int16R(f *codecFnInfo, rv reflect.Value) {
  10430. fastpathTV.EncMapInt8Int16V(rv2i(rv).(map[int8]int16), e)
  10431. }
  10432. func (_ fastpathT) EncMapInt8Int16V(v map[int8]int16, e *Encoder) {
  10433. ee, esep := e.e, e.hh.hasElemSeparators()
  10434. ee.WriteMapStart(len(v))
  10435. if e.h.Canonical {
  10436. v2 := make([]int64, len(v))
  10437. var i int
  10438. for k, _ := range v {
  10439. v2[i] = int64(k)
  10440. i++
  10441. }
  10442. sort.Sort(intSlice(v2))
  10443. for _, k2 := range v2 {
  10444. if esep {
  10445. ee.WriteMapElemKey()
  10446. }
  10447. ee.EncodeInt(int64(int8(k2)))
  10448. if esep {
  10449. ee.WriteMapElemValue()
  10450. }
  10451. ee.EncodeInt(int64(v[int8(k2)]))
  10452. }
  10453. } else {
  10454. for k2, v2 := range v {
  10455. if esep {
  10456. ee.WriteMapElemKey()
  10457. }
  10458. ee.EncodeInt(int64(k2))
  10459. if esep {
  10460. ee.WriteMapElemValue()
  10461. }
  10462. ee.EncodeInt(int64(v2))
  10463. }
  10464. }
  10465. ee.WriteMapEnd()
  10466. }
  10467. func (e *Encoder) fastpathEncMapInt8Int32R(f *codecFnInfo, rv reflect.Value) {
  10468. fastpathTV.EncMapInt8Int32V(rv2i(rv).(map[int8]int32), e)
  10469. }
  10470. func (_ fastpathT) EncMapInt8Int32V(v map[int8]int32, e *Encoder) {
  10471. ee, esep := e.e, e.hh.hasElemSeparators()
  10472. ee.WriteMapStart(len(v))
  10473. if e.h.Canonical {
  10474. v2 := make([]int64, len(v))
  10475. var i int
  10476. for k, _ := range v {
  10477. v2[i] = int64(k)
  10478. i++
  10479. }
  10480. sort.Sort(intSlice(v2))
  10481. for _, k2 := range v2 {
  10482. if esep {
  10483. ee.WriteMapElemKey()
  10484. }
  10485. ee.EncodeInt(int64(int8(k2)))
  10486. if esep {
  10487. ee.WriteMapElemValue()
  10488. }
  10489. ee.EncodeInt(int64(v[int8(k2)]))
  10490. }
  10491. } else {
  10492. for k2, v2 := range v {
  10493. if esep {
  10494. ee.WriteMapElemKey()
  10495. }
  10496. ee.EncodeInt(int64(k2))
  10497. if esep {
  10498. ee.WriteMapElemValue()
  10499. }
  10500. ee.EncodeInt(int64(v2))
  10501. }
  10502. }
  10503. ee.WriteMapEnd()
  10504. }
  10505. func (e *Encoder) fastpathEncMapInt8Int64R(f *codecFnInfo, rv reflect.Value) {
  10506. fastpathTV.EncMapInt8Int64V(rv2i(rv).(map[int8]int64), e)
  10507. }
  10508. func (_ fastpathT) EncMapInt8Int64V(v map[int8]int64, e *Encoder) {
  10509. ee, esep := e.e, e.hh.hasElemSeparators()
  10510. ee.WriteMapStart(len(v))
  10511. if e.h.Canonical {
  10512. v2 := make([]int64, len(v))
  10513. var i int
  10514. for k, _ := range v {
  10515. v2[i] = int64(k)
  10516. i++
  10517. }
  10518. sort.Sort(intSlice(v2))
  10519. for _, k2 := range v2 {
  10520. if esep {
  10521. ee.WriteMapElemKey()
  10522. }
  10523. ee.EncodeInt(int64(int8(k2)))
  10524. if esep {
  10525. ee.WriteMapElemValue()
  10526. }
  10527. ee.EncodeInt(int64(v[int8(k2)]))
  10528. }
  10529. } else {
  10530. for k2, v2 := range v {
  10531. if esep {
  10532. ee.WriteMapElemKey()
  10533. }
  10534. ee.EncodeInt(int64(k2))
  10535. if esep {
  10536. ee.WriteMapElemValue()
  10537. }
  10538. ee.EncodeInt(int64(v2))
  10539. }
  10540. }
  10541. ee.WriteMapEnd()
  10542. }
  10543. func (e *Encoder) fastpathEncMapInt8Float32R(f *codecFnInfo, rv reflect.Value) {
  10544. fastpathTV.EncMapInt8Float32V(rv2i(rv).(map[int8]float32), e)
  10545. }
  10546. func (_ fastpathT) EncMapInt8Float32V(v map[int8]float32, e *Encoder) {
  10547. ee, esep := e.e, e.hh.hasElemSeparators()
  10548. ee.WriteMapStart(len(v))
  10549. if e.h.Canonical {
  10550. v2 := make([]int64, len(v))
  10551. var i int
  10552. for k, _ := range v {
  10553. v2[i] = int64(k)
  10554. i++
  10555. }
  10556. sort.Sort(intSlice(v2))
  10557. for _, k2 := range v2 {
  10558. if esep {
  10559. ee.WriteMapElemKey()
  10560. }
  10561. ee.EncodeInt(int64(int8(k2)))
  10562. if esep {
  10563. ee.WriteMapElemValue()
  10564. }
  10565. ee.EncodeFloat32(v[int8(k2)])
  10566. }
  10567. } else {
  10568. for k2, v2 := range v {
  10569. if esep {
  10570. ee.WriteMapElemKey()
  10571. }
  10572. ee.EncodeInt(int64(k2))
  10573. if esep {
  10574. ee.WriteMapElemValue()
  10575. }
  10576. ee.EncodeFloat32(v2)
  10577. }
  10578. }
  10579. ee.WriteMapEnd()
  10580. }
  10581. func (e *Encoder) fastpathEncMapInt8Float64R(f *codecFnInfo, rv reflect.Value) {
  10582. fastpathTV.EncMapInt8Float64V(rv2i(rv).(map[int8]float64), e)
  10583. }
  10584. func (_ fastpathT) EncMapInt8Float64V(v map[int8]float64, e *Encoder) {
  10585. ee, esep := e.e, e.hh.hasElemSeparators()
  10586. ee.WriteMapStart(len(v))
  10587. if e.h.Canonical {
  10588. v2 := make([]int64, len(v))
  10589. var i int
  10590. for k, _ := range v {
  10591. v2[i] = int64(k)
  10592. i++
  10593. }
  10594. sort.Sort(intSlice(v2))
  10595. for _, k2 := range v2 {
  10596. if esep {
  10597. ee.WriteMapElemKey()
  10598. }
  10599. ee.EncodeInt(int64(int8(k2)))
  10600. if esep {
  10601. ee.WriteMapElemValue()
  10602. }
  10603. ee.EncodeFloat64(v[int8(k2)])
  10604. }
  10605. } else {
  10606. for k2, v2 := range v {
  10607. if esep {
  10608. ee.WriteMapElemKey()
  10609. }
  10610. ee.EncodeInt(int64(k2))
  10611. if esep {
  10612. ee.WriteMapElemValue()
  10613. }
  10614. ee.EncodeFloat64(v2)
  10615. }
  10616. }
  10617. ee.WriteMapEnd()
  10618. }
  10619. func (e *Encoder) fastpathEncMapInt8BoolR(f *codecFnInfo, rv reflect.Value) {
  10620. fastpathTV.EncMapInt8BoolV(rv2i(rv).(map[int8]bool), e)
  10621. }
  10622. func (_ fastpathT) EncMapInt8BoolV(v map[int8]bool, e *Encoder) {
  10623. ee, esep := e.e, e.hh.hasElemSeparators()
  10624. ee.WriteMapStart(len(v))
  10625. if e.h.Canonical {
  10626. v2 := make([]int64, len(v))
  10627. var i int
  10628. for k, _ := range v {
  10629. v2[i] = int64(k)
  10630. i++
  10631. }
  10632. sort.Sort(intSlice(v2))
  10633. for _, k2 := range v2 {
  10634. if esep {
  10635. ee.WriteMapElemKey()
  10636. }
  10637. ee.EncodeInt(int64(int8(k2)))
  10638. if esep {
  10639. ee.WriteMapElemValue()
  10640. }
  10641. ee.EncodeBool(v[int8(k2)])
  10642. }
  10643. } else {
  10644. for k2, v2 := range v {
  10645. if esep {
  10646. ee.WriteMapElemKey()
  10647. }
  10648. ee.EncodeInt(int64(k2))
  10649. if esep {
  10650. ee.WriteMapElemValue()
  10651. }
  10652. ee.EncodeBool(v2)
  10653. }
  10654. }
  10655. ee.WriteMapEnd()
  10656. }
  10657. func (e *Encoder) fastpathEncMapInt16IntfR(f *codecFnInfo, rv reflect.Value) {
  10658. fastpathTV.EncMapInt16IntfV(rv2i(rv).(map[int16]interface{}), e)
  10659. }
  10660. func (_ fastpathT) EncMapInt16IntfV(v map[int16]interface{}, e *Encoder) {
  10661. ee, esep := e.e, e.hh.hasElemSeparators()
  10662. ee.WriteMapStart(len(v))
  10663. if e.h.Canonical {
  10664. v2 := make([]int64, len(v))
  10665. var i int
  10666. for k, _ := range v {
  10667. v2[i] = int64(k)
  10668. i++
  10669. }
  10670. sort.Sort(intSlice(v2))
  10671. for _, k2 := range v2 {
  10672. if esep {
  10673. ee.WriteMapElemKey()
  10674. }
  10675. ee.EncodeInt(int64(int16(k2)))
  10676. if esep {
  10677. ee.WriteMapElemValue()
  10678. }
  10679. e.encode(v[int16(k2)])
  10680. }
  10681. } else {
  10682. for k2, v2 := range v {
  10683. if esep {
  10684. ee.WriteMapElemKey()
  10685. }
  10686. ee.EncodeInt(int64(k2))
  10687. if esep {
  10688. ee.WriteMapElemValue()
  10689. }
  10690. e.encode(v2)
  10691. }
  10692. }
  10693. ee.WriteMapEnd()
  10694. }
  10695. func (e *Encoder) fastpathEncMapInt16StringR(f *codecFnInfo, rv reflect.Value) {
  10696. fastpathTV.EncMapInt16StringV(rv2i(rv).(map[int16]string), e)
  10697. }
  10698. func (_ fastpathT) EncMapInt16StringV(v map[int16]string, e *Encoder) {
  10699. ee, esep := e.e, e.hh.hasElemSeparators()
  10700. ee.WriteMapStart(len(v))
  10701. if e.h.Canonical {
  10702. v2 := make([]int64, len(v))
  10703. var i int
  10704. for k, _ := range v {
  10705. v2[i] = int64(k)
  10706. i++
  10707. }
  10708. sort.Sort(intSlice(v2))
  10709. for _, k2 := range v2 {
  10710. if esep {
  10711. ee.WriteMapElemKey()
  10712. }
  10713. ee.EncodeInt(int64(int16(k2)))
  10714. if esep {
  10715. ee.WriteMapElemValue()
  10716. }
  10717. ee.EncodeString(c_UTF8, v[int16(k2)])
  10718. }
  10719. } else {
  10720. for k2, v2 := range v {
  10721. if esep {
  10722. ee.WriteMapElemKey()
  10723. }
  10724. ee.EncodeInt(int64(k2))
  10725. if esep {
  10726. ee.WriteMapElemValue()
  10727. }
  10728. ee.EncodeString(c_UTF8, v2)
  10729. }
  10730. }
  10731. ee.WriteMapEnd()
  10732. }
  10733. func (e *Encoder) fastpathEncMapInt16UintR(f *codecFnInfo, rv reflect.Value) {
  10734. fastpathTV.EncMapInt16UintV(rv2i(rv).(map[int16]uint), e)
  10735. }
  10736. func (_ fastpathT) EncMapInt16UintV(v map[int16]uint, e *Encoder) {
  10737. ee, esep := e.e, e.hh.hasElemSeparators()
  10738. ee.WriteMapStart(len(v))
  10739. if e.h.Canonical {
  10740. v2 := make([]int64, len(v))
  10741. var i int
  10742. for k, _ := range v {
  10743. v2[i] = int64(k)
  10744. i++
  10745. }
  10746. sort.Sort(intSlice(v2))
  10747. for _, k2 := range v2 {
  10748. if esep {
  10749. ee.WriteMapElemKey()
  10750. }
  10751. ee.EncodeInt(int64(int16(k2)))
  10752. if esep {
  10753. ee.WriteMapElemValue()
  10754. }
  10755. ee.EncodeUint(uint64(v[int16(k2)]))
  10756. }
  10757. } else {
  10758. for k2, v2 := range v {
  10759. if esep {
  10760. ee.WriteMapElemKey()
  10761. }
  10762. ee.EncodeInt(int64(k2))
  10763. if esep {
  10764. ee.WriteMapElemValue()
  10765. }
  10766. ee.EncodeUint(uint64(v2))
  10767. }
  10768. }
  10769. ee.WriteMapEnd()
  10770. }
  10771. func (e *Encoder) fastpathEncMapInt16Uint8R(f *codecFnInfo, rv reflect.Value) {
  10772. fastpathTV.EncMapInt16Uint8V(rv2i(rv).(map[int16]uint8), e)
  10773. }
  10774. func (_ fastpathT) EncMapInt16Uint8V(v map[int16]uint8, e *Encoder) {
  10775. ee, esep := e.e, e.hh.hasElemSeparators()
  10776. ee.WriteMapStart(len(v))
  10777. if e.h.Canonical {
  10778. v2 := make([]int64, len(v))
  10779. var i int
  10780. for k, _ := range v {
  10781. v2[i] = int64(k)
  10782. i++
  10783. }
  10784. sort.Sort(intSlice(v2))
  10785. for _, k2 := range v2 {
  10786. if esep {
  10787. ee.WriteMapElemKey()
  10788. }
  10789. ee.EncodeInt(int64(int16(k2)))
  10790. if esep {
  10791. ee.WriteMapElemValue()
  10792. }
  10793. ee.EncodeUint(uint64(v[int16(k2)]))
  10794. }
  10795. } else {
  10796. for k2, v2 := range v {
  10797. if esep {
  10798. ee.WriteMapElemKey()
  10799. }
  10800. ee.EncodeInt(int64(k2))
  10801. if esep {
  10802. ee.WriteMapElemValue()
  10803. }
  10804. ee.EncodeUint(uint64(v2))
  10805. }
  10806. }
  10807. ee.WriteMapEnd()
  10808. }
  10809. func (e *Encoder) fastpathEncMapInt16Uint16R(f *codecFnInfo, rv reflect.Value) {
  10810. fastpathTV.EncMapInt16Uint16V(rv2i(rv).(map[int16]uint16), e)
  10811. }
  10812. func (_ fastpathT) EncMapInt16Uint16V(v map[int16]uint16, e *Encoder) {
  10813. ee, esep := e.e, e.hh.hasElemSeparators()
  10814. ee.WriteMapStart(len(v))
  10815. if e.h.Canonical {
  10816. v2 := make([]int64, len(v))
  10817. var i int
  10818. for k, _ := range v {
  10819. v2[i] = int64(k)
  10820. i++
  10821. }
  10822. sort.Sort(intSlice(v2))
  10823. for _, k2 := range v2 {
  10824. if esep {
  10825. ee.WriteMapElemKey()
  10826. }
  10827. ee.EncodeInt(int64(int16(k2)))
  10828. if esep {
  10829. ee.WriteMapElemValue()
  10830. }
  10831. ee.EncodeUint(uint64(v[int16(k2)]))
  10832. }
  10833. } else {
  10834. for k2, v2 := range v {
  10835. if esep {
  10836. ee.WriteMapElemKey()
  10837. }
  10838. ee.EncodeInt(int64(k2))
  10839. if esep {
  10840. ee.WriteMapElemValue()
  10841. }
  10842. ee.EncodeUint(uint64(v2))
  10843. }
  10844. }
  10845. ee.WriteMapEnd()
  10846. }
  10847. func (e *Encoder) fastpathEncMapInt16Uint32R(f *codecFnInfo, rv reflect.Value) {
  10848. fastpathTV.EncMapInt16Uint32V(rv2i(rv).(map[int16]uint32), e)
  10849. }
  10850. func (_ fastpathT) EncMapInt16Uint32V(v map[int16]uint32, e *Encoder) {
  10851. ee, esep := e.e, e.hh.hasElemSeparators()
  10852. ee.WriteMapStart(len(v))
  10853. if e.h.Canonical {
  10854. v2 := make([]int64, len(v))
  10855. var i int
  10856. for k, _ := range v {
  10857. v2[i] = int64(k)
  10858. i++
  10859. }
  10860. sort.Sort(intSlice(v2))
  10861. for _, k2 := range v2 {
  10862. if esep {
  10863. ee.WriteMapElemKey()
  10864. }
  10865. ee.EncodeInt(int64(int16(k2)))
  10866. if esep {
  10867. ee.WriteMapElemValue()
  10868. }
  10869. ee.EncodeUint(uint64(v[int16(k2)]))
  10870. }
  10871. } else {
  10872. for k2, v2 := range v {
  10873. if esep {
  10874. ee.WriteMapElemKey()
  10875. }
  10876. ee.EncodeInt(int64(k2))
  10877. if esep {
  10878. ee.WriteMapElemValue()
  10879. }
  10880. ee.EncodeUint(uint64(v2))
  10881. }
  10882. }
  10883. ee.WriteMapEnd()
  10884. }
  10885. func (e *Encoder) fastpathEncMapInt16Uint64R(f *codecFnInfo, rv reflect.Value) {
  10886. fastpathTV.EncMapInt16Uint64V(rv2i(rv).(map[int16]uint64), e)
  10887. }
  10888. func (_ fastpathT) EncMapInt16Uint64V(v map[int16]uint64, e *Encoder) {
  10889. ee, esep := e.e, e.hh.hasElemSeparators()
  10890. ee.WriteMapStart(len(v))
  10891. if e.h.Canonical {
  10892. v2 := make([]int64, len(v))
  10893. var i int
  10894. for k, _ := range v {
  10895. v2[i] = int64(k)
  10896. i++
  10897. }
  10898. sort.Sort(intSlice(v2))
  10899. for _, k2 := range v2 {
  10900. if esep {
  10901. ee.WriteMapElemKey()
  10902. }
  10903. ee.EncodeInt(int64(int16(k2)))
  10904. if esep {
  10905. ee.WriteMapElemValue()
  10906. }
  10907. ee.EncodeUint(uint64(v[int16(k2)]))
  10908. }
  10909. } else {
  10910. for k2, v2 := range v {
  10911. if esep {
  10912. ee.WriteMapElemKey()
  10913. }
  10914. ee.EncodeInt(int64(k2))
  10915. if esep {
  10916. ee.WriteMapElemValue()
  10917. }
  10918. ee.EncodeUint(uint64(v2))
  10919. }
  10920. }
  10921. ee.WriteMapEnd()
  10922. }
  10923. func (e *Encoder) fastpathEncMapInt16UintptrR(f *codecFnInfo, rv reflect.Value) {
  10924. fastpathTV.EncMapInt16UintptrV(rv2i(rv).(map[int16]uintptr), e)
  10925. }
  10926. func (_ fastpathT) EncMapInt16UintptrV(v map[int16]uintptr, e *Encoder) {
  10927. ee, esep := e.e, e.hh.hasElemSeparators()
  10928. ee.WriteMapStart(len(v))
  10929. if e.h.Canonical {
  10930. v2 := make([]int64, len(v))
  10931. var i int
  10932. for k, _ := range v {
  10933. v2[i] = int64(k)
  10934. i++
  10935. }
  10936. sort.Sort(intSlice(v2))
  10937. for _, k2 := range v2 {
  10938. if esep {
  10939. ee.WriteMapElemKey()
  10940. }
  10941. ee.EncodeInt(int64(int16(k2)))
  10942. if esep {
  10943. ee.WriteMapElemValue()
  10944. }
  10945. e.encode(v[int16(k2)])
  10946. }
  10947. } else {
  10948. for k2, v2 := range v {
  10949. if esep {
  10950. ee.WriteMapElemKey()
  10951. }
  10952. ee.EncodeInt(int64(k2))
  10953. if esep {
  10954. ee.WriteMapElemValue()
  10955. }
  10956. e.encode(v2)
  10957. }
  10958. }
  10959. ee.WriteMapEnd()
  10960. }
  10961. func (e *Encoder) fastpathEncMapInt16IntR(f *codecFnInfo, rv reflect.Value) {
  10962. fastpathTV.EncMapInt16IntV(rv2i(rv).(map[int16]int), e)
  10963. }
  10964. func (_ fastpathT) EncMapInt16IntV(v map[int16]int, e *Encoder) {
  10965. ee, esep := e.e, e.hh.hasElemSeparators()
  10966. ee.WriteMapStart(len(v))
  10967. if e.h.Canonical {
  10968. v2 := make([]int64, len(v))
  10969. var i int
  10970. for k, _ := range v {
  10971. v2[i] = int64(k)
  10972. i++
  10973. }
  10974. sort.Sort(intSlice(v2))
  10975. for _, k2 := range v2 {
  10976. if esep {
  10977. ee.WriteMapElemKey()
  10978. }
  10979. ee.EncodeInt(int64(int16(k2)))
  10980. if esep {
  10981. ee.WriteMapElemValue()
  10982. }
  10983. ee.EncodeInt(int64(v[int16(k2)]))
  10984. }
  10985. } else {
  10986. for k2, v2 := range v {
  10987. if esep {
  10988. ee.WriteMapElemKey()
  10989. }
  10990. ee.EncodeInt(int64(k2))
  10991. if esep {
  10992. ee.WriteMapElemValue()
  10993. }
  10994. ee.EncodeInt(int64(v2))
  10995. }
  10996. }
  10997. ee.WriteMapEnd()
  10998. }
  10999. func (e *Encoder) fastpathEncMapInt16Int8R(f *codecFnInfo, rv reflect.Value) {
  11000. fastpathTV.EncMapInt16Int8V(rv2i(rv).(map[int16]int8), e)
  11001. }
  11002. func (_ fastpathT) EncMapInt16Int8V(v map[int16]int8, e *Encoder) {
  11003. ee, esep := e.e, e.hh.hasElemSeparators()
  11004. ee.WriteMapStart(len(v))
  11005. if e.h.Canonical {
  11006. v2 := make([]int64, len(v))
  11007. var i int
  11008. for k, _ := range v {
  11009. v2[i] = int64(k)
  11010. i++
  11011. }
  11012. sort.Sort(intSlice(v2))
  11013. for _, k2 := range v2 {
  11014. if esep {
  11015. ee.WriteMapElemKey()
  11016. }
  11017. ee.EncodeInt(int64(int16(k2)))
  11018. if esep {
  11019. ee.WriteMapElemValue()
  11020. }
  11021. ee.EncodeInt(int64(v[int16(k2)]))
  11022. }
  11023. } else {
  11024. for k2, v2 := range v {
  11025. if esep {
  11026. ee.WriteMapElemKey()
  11027. }
  11028. ee.EncodeInt(int64(k2))
  11029. if esep {
  11030. ee.WriteMapElemValue()
  11031. }
  11032. ee.EncodeInt(int64(v2))
  11033. }
  11034. }
  11035. ee.WriteMapEnd()
  11036. }
  11037. func (e *Encoder) fastpathEncMapInt16Int16R(f *codecFnInfo, rv reflect.Value) {
  11038. fastpathTV.EncMapInt16Int16V(rv2i(rv).(map[int16]int16), e)
  11039. }
  11040. func (_ fastpathT) EncMapInt16Int16V(v map[int16]int16, e *Encoder) {
  11041. ee, esep := e.e, e.hh.hasElemSeparators()
  11042. ee.WriteMapStart(len(v))
  11043. if e.h.Canonical {
  11044. v2 := make([]int64, len(v))
  11045. var i int
  11046. for k, _ := range v {
  11047. v2[i] = int64(k)
  11048. i++
  11049. }
  11050. sort.Sort(intSlice(v2))
  11051. for _, k2 := range v2 {
  11052. if esep {
  11053. ee.WriteMapElemKey()
  11054. }
  11055. ee.EncodeInt(int64(int16(k2)))
  11056. if esep {
  11057. ee.WriteMapElemValue()
  11058. }
  11059. ee.EncodeInt(int64(v[int16(k2)]))
  11060. }
  11061. } else {
  11062. for k2, v2 := range v {
  11063. if esep {
  11064. ee.WriteMapElemKey()
  11065. }
  11066. ee.EncodeInt(int64(k2))
  11067. if esep {
  11068. ee.WriteMapElemValue()
  11069. }
  11070. ee.EncodeInt(int64(v2))
  11071. }
  11072. }
  11073. ee.WriteMapEnd()
  11074. }
  11075. func (e *Encoder) fastpathEncMapInt16Int32R(f *codecFnInfo, rv reflect.Value) {
  11076. fastpathTV.EncMapInt16Int32V(rv2i(rv).(map[int16]int32), e)
  11077. }
  11078. func (_ fastpathT) EncMapInt16Int32V(v map[int16]int32, e *Encoder) {
  11079. ee, esep := e.e, e.hh.hasElemSeparators()
  11080. ee.WriteMapStart(len(v))
  11081. if e.h.Canonical {
  11082. v2 := make([]int64, len(v))
  11083. var i int
  11084. for k, _ := range v {
  11085. v2[i] = int64(k)
  11086. i++
  11087. }
  11088. sort.Sort(intSlice(v2))
  11089. for _, k2 := range v2 {
  11090. if esep {
  11091. ee.WriteMapElemKey()
  11092. }
  11093. ee.EncodeInt(int64(int16(k2)))
  11094. if esep {
  11095. ee.WriteMapElemValue()
  11096. }
  11097. ee.EncodeInt(int64(v[int16(k2)]))
  11098. }
  11099. } else {
  11100. for k2, v2 := range v {
  11101. if esep {
  11102. ee.WriteMapElemKey()
  11103. }
  11104. ee.EncodeInt(int64(k2))
  11105. if esep {
  11106. ee.WriteMapElemValue()
  11107. }
  11108. ee.EncodeInt(int64(v2))
  11109. }
  11110. }
  11111. ee.WriteMapEnd()
  11112. }
  11113. func (e *Encoder) fastpathEncMapInt16Int64R(f *codecFnInfo, rv reflect.Value) {
  11114. fastpathTV.EncMapInt16Int64V(rv2i(rv).(map[int16]int64), e)
  11115. }
  11116. func (_ fastpathT) EncMapInt16Int64V(v map[int16]int64, e *Encoder) {
  11117. ee, esep := e.e, e.hh.hasElemSeparators()
  11118. ee.WriteMapStart(len(v))
  11119. if e.h.Canonical {
  11120. v2 := make([]int64, len(v))
  11121. var i int
  11122. for k, _ := range v {
  11123. v2[i] = int64(k)
  11124. i++
  11125. }
  11126. sort.Sort(intSlice(v2))
  11127. for _, k2 := range v2 {
  11128. if esep {
  11129. ee.WriteMapElemKey()
  11130. }
  11131. ee.EncodeInt(int64(int16(k2)))
  11132. if esep {
  11133. ee.WriteMapElemValue()
  11134. }
  11135. ee.EncodeInt(int64(v[int16(k2)]))
  11136. }
  11137. } else {
  11138. for k2, v2 := range v {
  11139. if esep {
  11140. ee.WriteMapElemKey()
  11141. }
  11142. ee.EncodeInt(int64(k2))
  11143. if esep {
  11144. ee.WriteMapElemValue()
  11145. }
  11146. ee.EncodeInt(int64(v2))
  11147. }
  11148. }
  11149. ee.WriteMapEnd()
  11150. }
  11151. func (e *Encoder) fastpathEncMapInt16Float32R(f *codecFnInfo, rv reflect.Value) {
  11152. fastpathTV.EncMapInt16Float32V(rv2i(rv).(map[int16]float32), e)
  11153. }
  11154. func (_ fastpathT) EncMapInt16Float32V(v map[int16]float32, e *Encoder) {
  11155. ee, esep := e.e, e.hh.hasElemSeparators()
  11156. ee.WriteMapStart(len(v))
  11157. if e.h.Canonical {
  11158. v2 := make([]int64, len(v))
  11159. var i int
  11160. for k, _ := range v {
  11161. v2[i] = int64(k)
  11162. i++
  11163. }
  11164. sort.Sort(intSlice(v2))
  11165. for _, k2 := range v2 {
  11166. if esep {
  11167. ee.WriteMapElemKey()
  11168. }
  11169. ee.EncodeInt(int64(int16(k2)))
  11170. if esep {
  11171. ee.WriteMapElemValue()
  11172. }
  11173. ee.EncodeFloat32(v[int16(k2)])
  11174. }
  11175. } else {
  11176. for k2, v2 := range v {
  11177. if esep {
  11178. ee.WriteMapElemKey()
  11179. }
  11180. ee.EncodeInt(int64(k2))
  11181. if esep {
  11182. ee.WriteMapElemValue()
  11183. }
  11184. ee.EncodeFloat32(v2)
  11185. }
  11186. }
  11187. ee.WriteMapEnd()
  11188. }
  11189. func (e *Encoder) fastpathEncMapInt16Float64R(f *codecFnInfo, rv reflect.Value) {
  11190. fastpathTV.EncMapInt16Float64V(rv2i(rv).(map[int16]float64), e)
  11191. }
  11192. func (_ fastpathT) EncMapInt16Float64V(v map[int16]float64, e *Encoder) {
  11193. ee, esep := e.e, e.hh.hasElemSeparators()
  11194. ee.WriteMapStart(len(v))
  11195. if e.h.Canonical {
  11196. v2 := make([]int64, len(v))
  11197. var i int
  11198. for k, _ := range v {
  11199. v2[i] = int64(k)
  11200. i++
  11201. }
  11202. sort.Sort(intSlice(v2))
  11203. for _, k2 := range v2 {
  11204. if esep {
  11205. ee.WriteMapElemKey()
  11206. }
  11207. ee.EncodeInt(int64(int16(k2)))
  11208. if esep {
  11209. ee.WriteMapElemValue()
  11210. }
  11211. ee.EncodeFloat64(v[int16(k2)])
  11212. }
  11213. } else {
  11214. for k2, v2 := range v {
  11215. if esep {
  11216. ee.WriteMapElemKey()
  11217. }
  11218. ee.EncodeInt(int64(k2))
  11219. if esep {
  11220. ee.WriteMapElemValue()
  11221. }
  11222. ee.EncodeFloat64(v2)
  11223. }
  11224. }
  11225. ee.WriteMapEnd()
  11226. }
  11227. func (e *Encoder) fastpathEncMapInt16BoolR(f *codecFnInfo, rv reflect.Value) {
  11228. fastpathTV.EncMapInt16BoolV(rv2i(rv).(map[int16]bool), e)
  11229. }
  11230. func (_ fastpathT) EncMapInt16BoolV(v map[int16]bool, e *Encoder) {
  11231. ee, esep := e.e, e.hh.hasElemSeparators()
  11232. ee.WriteMapStart(len(v))
  11233. if e.h.Canonical {
  11234. v2 := make([]int64, len(v))
  11235. var i int
  11236. for k, _ := range v {
  11237. v2[i] = int64(k)
  11238. i++
  11239. }
  11240. sort.Sort(intSlice(v2))
  11241. for _, k2 := range v2 {
  11242. if esep {
  11243. ee.WriteMapElemKey()
  11244. }
  11245. ee.EncodeInt(int64(int16(k2)))
  11246. if esep {
  11247. ee.WriteMapElemValue()
  11248. }
  11249. ee.EncodeBool(v[int16(k2)])
  11250. }
  11251. } else {
  11252. for k2, v2 := range v {
  11253. if esep {
  11254. ee.WriteMapElemKey()
  11255. }
  11256. ee.EncodeInt(int64(k2))
  11257. if esep {
  11258. ee.WriteMapElemValue()
  11259. }
  11260. ee.EncodeBool(v2)
  11261. }
  11262. }
  11263. ee.WriteMapEnd()
  11264. }
  11265. func (e *Encoder) fastpathEncMapInt32IntfR(f *codecFnInfo, rv reflect.Value) {
  11266. fastpathTV.EncMapInt32IntfV(rv2i(rv).(map[int32]interface{}), e)
  11267. }
  11268. func (_ fastpathT) EncMapInt32IntfV(v map[int32]interface{}, e *Encoder) {
  11269. ee, esep := e.e, e.hh.hasElemSeparators()
  11270. ee.WriteMapStart(len(v))
  11271. if e.h.Canonical {
  11272. v2 := make([]int64, len(v))
  11273. var i int
  11274. for k, _ := range v {
  11275. v2[i] = int64(k)
  11276. i++
  11277. }
  11278. sort.Sort(intSlice(v2))
  11279. for _, k2 := range v2 {
  11280. if esep {
  11281. ee.WriteMapElemKey()
  11282. }
  11283. ee.EncodeInt(int64(int32(k2)))
  11284. if esep {
  11285. ee.WriteMapElemValue()
  11286. }
  11287. e.encode(v[int32(k2)])
  11288. }
  11289. } else {
  11290. for k2, v2 := range v {
  11291. if esep {
  11292. ee.WriteMapElemKey()
  11293. }
  11294. ee.EncodeInt(int64(k2))
  11295. if esep {
  11296. ee.WriteMapElemValue()
  11297. }
  11298. e.encode(v2)
  11299. }
  11300. }
  11301. ee.WriteMapEnd()
  11302. }
  11303. func (e *Encoder) fastpathEncMapInt32StringR(f *codecFnInfo, rv reflect.Value) {
  11304. fastpathTV.EncMapInt32StringV(rv2i(rv).(map[int32]string), e)
  11305. }
  11306. func (_ fastpathT) EncMapInt32StringV(v map[int32]string, e *Encoder) {
  11307. ee, esep := e.e, e.hh.hasElemSeparators()
  11308. ee.WriteMapStart(len(v))
  11309. if e.h.Canonical {
  11310. v2 := make([]int64, len(v))
  11311. var i int
  11312. for k, _ := range v {
  11313. v2[i] = int64(k)
  11314. i++
  11315. }
  11316. sort.Sort(intSlice(v2))
  11317. for _, k2 := range v2 {
  11318. if esep {
  11319. ee.WriteMapElemKey()
  11320. }
  11321. ee.EncodeInt(int64(int32(k2)))
  11322. if esep {
  11323. ee.WriteMapElemValue()
  11324. }
  11325. ee.EncodeString(c_UTF8, v[int32(k2)])
  11326. }
  11327. } else {
  11328. for k2, v2 := range v {
  11329. if esep {
  11330. ee.WriteMapElemKey()
  11331. }
  11332. ee.EncodeInt(int64(k2))
  11333. if esep {
  11334. ee.WriteMapElemValue()
  11335. }
  11336. ee.EncodeString(c_UTF8, v2)
  11337. }
  11338. }
  11339. ee.WriteMapEnd()
  11340. }
  11341. func (e *Encoder) fastpathEncMapInt32UintR(f *codecFnInfo, rv reflect.Value) {
  11342. fastpathTV.EncMapInt32UintV(rv2i(rv).(map[int32]uint), e)
  11343. }
  11344. func (_ fastpathT) EncMapInt32UintV(v map[int32]uint, e *Encoder) {
  11345. ee, esep := e.e, e.hh.hasElemSeparators()
  11346. ee.WriteMapStart(len(v))
  11347. if e.h.Canonical {
  11348. v2 := make([]int64, len(v))
  11349. var i int
  11350. for k, _ := range v {
  11351. v2[i] = int64(k)
  11352. i++
  11353. }
  11354. sort.Sort(intSlice(v2))
  11355. for _, k2 := range v2 {
  11356. if esep {
  11357. ee.WriteMapElemKey()
  11358. }
  11359. ee.EncodeInt(int64(int32(k2)))
  11360. if esep {
  11361. ee.WriteMapElemValue()
  11362. }
  11363. ee.EncodeUint(uint64(v[int32(k2)]))
  11364. }
  11365. } else {
  11366. for k2, v2 := range v {
  11367. if esep {
  11368. ee.WriteMapElemKey()
  11369. }
  11370. ee.EncodeInt(int64(k2))
  11371. if esep {
  11372. ee.WriteMapElemValue()
  11373. }
  11374. ee.EncodeUint(uint64(v2))
  11375. }
  11376. }
  11377. ee.WriteMapEnd()
  11378. }
  11379. func (e *Encoder) fastpathEncMapInt32Uint8R(f *codecFnInfo, rv reflect.Value) {
  11380. fastpathTV.EncMapInt32Uint8V(rv2i(rv).(map[int32]uint8), e)
  11381. }
  11382. func (_ fastpathT) EncMapInt32Uint8V(v map[int32]uint8, e *Encoder) {
  11383. ee, esep := e.e, e.hh.hasElemSeparators()
  11384. ee.WriteMapStart(len(v))
  11385. if e.h.Canonical {
  11386. v2 := make([]int64, len(v))
  11387. var i int
  11388. for k, _ := range v {
  11389. v2[i] = int64(k)
  11390. i++
  11391. }
  11392. sort.Sort(intSlice(v2))
  11393. for _, k2 := range v2 {
  11394. if esep {
  11395. ee.WriteMapElemKey()
  11396. }
  11397. ee.EncodeInt(int64(int32(k2)))
  11398. if esep {
  11399. ee.WriteMapElemValue()
  11400. }
  11401. ee.EncodeUint(uint64(v[int32(k2)]))
  11402. }
  11403. } else {
  11404. for k2, v2 := range v {
  11405. if esep {
  11406. ee.WriteMapElemKey()
  11407. }
  11408. ee.EncodeInt(int64(k2))
  11409. if esep {
  11410. ee.WriteMapElemValue()
  11411. }
  11412. ee.EncodeUint(uint64(v2))
  11413. }
  11414. }
  11415. ee.WriteMapEnd()
  11416. }
  11417. func (e *Encoder) fastpathEncMapInt32Uint16R(f *codecFnInfo, rv reflect.Value) {
  11418. fastpathTV.EncMapInt32Uint16V(rv2i(rv).(map[int32]uint16), e)
  11419. }
  11420. func (_ fastpathT) EncMapInt32Uint16V(v map[int32]uint16, e *Encoder) {
  11421. ee, esep := e.e, e.hh.hasElemSeparators()
  11422. ee.WriteMapStart(len(v))
  11423. if e.h.Canonical {
  11424. v2 := make([]int64, len(v))
  11425. var i int
  11426. for k, _ := range v {
  11427. v2[i] = int64(k)
  11428. i++
  11429. }
  11430. sort.Sort(intSlice(v2))
  11431. for _, k2 := range v2 {
  11432. if esep {
  11433. ee.WriteMapElemKey()
  11434. }
  11435. ee.EncodeInt(int64(int32(k2)))
  11436. if esep {
  11437. ee.WriteMapElemValue()
  11438. }
  11439. ee.EncodeUint(uint64(v[int32(k2)]))
  11440. }
  11441. } else {
  11442. for k2, v2 := range v {
  11443. if esep {
  11444. ee.WriteMapElemKey()
  11445. }
  11446. ee.EncodeInt(int64(k2))
  11447. if esep {
  11448. ee.WriteMapElemValue()
  11449. }
  11450. ee.EncodeUint(uint64(v2))
  11451. }
  11452. }
  11453. ee.WriteMapEnd()
  11454. }
  11455. func (e *Encoder) fastpathEncMapInt32Uint32R(f *codecFnInfo, rv reflect.Value) {
  11456. fastpathTV.EncMapInt32Uint32V(rv2i(rv).(map[int32]uint32), e)
  11457. }
  11458. func (_ fastpathT) EncMapInt32Uint32V(v map[int32]uint32, e *Encoder) {
  11459. ee, esep := e.e, e.hh.hasElemSeparators()
  11460. ee.WriteMapStart(len(v))
  11461. if e.h.Canonical {
  11462. v2 := make([]int64, len(v))
  11463. var i int
  11464. for k, _ := range v {
  11465. v2[i] = int64(k)
  11466. i++
  11467. }
  11468. sort.Sort(intSlice(v2))
  11469. for _, k2 := range v2 {
  11470. if esep {
  11471. ee.WriteMapElemKey()
  11472. }
  11473. ee.EncodeInt(int64(int32(k2)))
  11474. if esep {
  11475. ee.WriteMapElemValue()
  11476. }
  11477. ee.EncodeUint(uint64(v[int32(k2)]))
  11478. }
  11479. } else {
  11480. for k2, v2 := range v {
  11481. if esep {
  11482. ee.WriteMapElemKey()
  11483. }
  11484. ee.EncodeInt(int64(k2))
  11485. if esep {
  11486. ee.WriteMapElemValue()
  11487. }
  11488. ee.EncodeUint(uint64(v2))
  11489. }
  11490. }
  11491. ee.WriteMapEnd()
  11492. }
  11493. func (e *Encoder) fastpathEncMapInt32Uint64R(f *codecFnInfo, rv reflect.Value) {
  11494. fastpathTV.EncMapInt32Uint64V(rv2i(rv).(map[int32]uint64), e)
  11495. }
  11496. func (_ fastpathT) EncMapInt32Uint64V(v map[int32]uint64, e *Encoder) {
  11497. ee, esep := e.e, e.hh.hasElemSeparators()
  11498. ee.WriteMapStart(len(v))
  11499. if e.h.Canonical {
  11500. v2 := make([]int64, len(v))
  11501. var i int
  11502. for k, _ := range v {
  11503. v2[i] = int64(k)
  11504. i++
  11505. }
  11506. sort.Sort(intSlice(v2))
  11507. for _, k2 := range v2 {
  11508. if esep {
  11509. ee.WriteMapElemKey()
  11510. }
  11511. ee.EncodeInt(int64(int32(k2)))
  11512. if esep {
  11513. ee.WriteMapElemValue()
  11514. }
  11515. ee.EncodeUint(uint64(v[int32(k2)]))
  11516. }
  11517. } else {
  11518. for k2, v2 := range v {
  11519. if esep {
  11520. ee.WriteMapElemKey()
  11521. }
  11522. ee.EncodeInt(int64(k2))
  11523. if esep {
  11524. ee.WriteMapElemValue()
  11525. }
  11526. ee.EncodeUint(uint64(v2))
  11527. }
  11528. }
  11529. ee.WriteMapEnd()
  11530. }
  11531. func (e *Encoder) fastpathEncMapInt32UintptrR(f *codecFnInfo, rv reflect.Value) {
  11532. fastpathTV.EncMapInt32UintptrV(rv2i(rv).(map[int32]uintptr), e)
  11533. }
  11534. func (_ fastpathT) EncMapInt32UintptrV(v map[int32]uintptr, e *Encoder) {
  11535. ee, esep := e.e, e.hh.hasElemSeparators()
  11536. ee.WriteMapStart(len(v))
  11537. if e.h.Canonical {
  11538. v2 := make([]int64, len(v))
  11539. var i int
  11540. for k, _ := range v {
  11541. v2[i] = int64(k)
  11542. i++
  11543. }
  11544. sort.Sort(intSlice(v2))
  11545. for _, k2 := range v2 {
  11546. if esep {
  11547. ee.WriteMapElemKey()
  11548. }
  11549. ee.EncodeInt(int64(int32(k2)))
  11550. if esep {
  11551. ee.WriteMapElemValue()
  11552. }
  11553. e.encode(v[int32(k2)])
  11554. }
  11555. } else {
  11556. for k2, v2 := range v {
  11557. if esep {
  11558. ee.WriteMapElemKey()
  11559. }
  11560. ee.EncodeInt(int64(k2))
  11561. if esep {
  11562. ee.WriteMapElemValue()
  11563. }
  11564. e.encode(v2)
  11565. }
  11566. }
  11567. ee.WriteMapEnd()
  11568. }
  11569. func (e *Encoder) fastpathEncMapInt32IntR(f *codecFnInfo, rv reflect.Value) {
  11570. fastpathTV.EncMapInt32IntV(rv2i(rv).(map[int32]int), e)
  11571. }
  11572. func (_ fastpathT) EncMapInt32IntV(v map[int32]int, e *Encoder) {
  11573. ee, esep := e.e, e.hh.hasElemSeparators()
  11574. ee.WriteMapStart(len(v))
  11575. if e.h.Canonical {
  11576. v2 := make([]int64, len(v))
  11577. var i int
  11578. for k, _ := range v {
  11579. v2[i] = int64(k)
  11580. i++
  11581. }
  11582. sort.Sort(intSlice(v2))
  11583. for _, k2 := range v2 {
  11584. if esep {
  11585. ee.WriteMapElemKey()
  11586. }
  11587. ee.EncodeInt(int64(int32(k2)))
  11588. if esep {
  11589. ee.WriteMapElemValue()
  11590. }
  11591. ee.EncodeInt(int64(v[int32(k2)]))
  11592. }
  11593. } else {
  11594. for k2, v2 := range v {
  11595. if esep {
  11596. ee.WriteMapElemKey()
  11597. }
  11598. ee.EncodeInt(int64(k2))
  11599. if esep {
  11600. ee.WriteMapElemValue()
  11601. }
  11602. ee.EncodeInt(int64(v2))
  11603. }
  11604. }
  11605. ee.WriteMapEnd()
  11606. }
  11607. func (e *Encoder) fastpathEncMapInt32Int8R(f *codecFnInfo, rv reflect.Value) {
  11608. fastpathTV.EncMapInt32Int8V(rv2i(rv).(map[int32]int8), e)
  11609. }
  11610. func (_ fastpathT) EncMapInt32Int8V(v map[int32]int8, e *Encoder) {
  11611. ee, esep := e.e, e.hh.hasElemSeparators()
  11612. ee.WriteMapStart(len(v))
  11613. if e.h.Canonical {
  11614. v2 := make([]int64, len(v))
  11615. var i int
  11616. for k, _ := range v {
  11617. v2[i] = int64(k)
  11618. i++
  11619. }
  11620. sort.Sort(intSlice(v2))
  11621. for _, k2 := range v2 {
  11622. if esep {
  11623. ee.WriteMapElemKey()
  11624. }
  11625. ee.EncodeInt(int64(int32(k2)))
  11626. if esep {
  11627. ee.WriteMapElemValue()
  11628. }
  11629. ee.EncodeInt(int64(v[int32(k2)]))
  11630. }
  11631. } else {
  11632. for k2, v2 := range v {
  11633. if esep {
  11634. ee.WriteMapElemKey()
  11635. }
  11636. ee.EncodeInt(int64(k2))
  11637. if esep {
  11638. ee.WriteMapElemValue()
  11639. }
  11640. ee.EncodeInt(int64(v2))
  11641. }
  11642. }
  11643. ee.WriteMapEnd()
  11644. }
  11645. func (e *Encoder) fastpathEncMapInt32Int16R(f *codecFnInfo, rv reflect.Value) {
  11646. fastpathTV.EncMapInt32Int16V(rv2i(rv).(map[int32]int16), e)
  11647. }
  11648. func (_ fastpathT) EncMapInt32Int16V(v map[int32]int16, e *Encoder) {
  11649. ee, esep := e.e, e.hh.hasElemSeparators()
  11650. ee.WriteMapStart(len(v))
  11651. if e.h.Canonical {
  11652. v2 := make([]int64, len(v))
  11653. var i int
  11654. for k, _ := range v {
  11655. v2[i] = int64(k)
  11656. i++
  11657. }
  11658. sort.Sort(intSlice(v2))
  11659. for _, k2 := range v2 {
  11660. if esep {
  11661. ee.WriteMapElemKey()
  11662. }
  11663. ee.EncodeInt(int64(int32(k2)))
  11664. if esep {
  11665. ee.WriteMapElemValue()
  11666. }
  11667. ee.EncodeInt(int64(v[int32(k2)]))
  11668. }
  11669. } else {
  11670. for k2, v2 := range v {
  11671. if esep {
  11672. ee.WriteMapElemKey()
  11673. }
  11674. ee.EncodeInt(int64(k2))
  11675. if esep {
  11676. ee.WriteMapElemValue()
  11677. }
  11678. ee.EncodeInt(int64(v2))
  11679. }
  11680. }
  11681. ee.WriteMapEnd()
  11682. }
  11683. func (e *Encoder) fastpathEncMapInt32Int32R(f *codecFnInfo, rv reflect.Value) {
  11684. fastpathTV.EncMapInt32Int32V(rv2i(rv).(map[int32]int32), e)
  11685. }
  11686. func (_ fastpathT) EncMapInt32Int32V(v map[int32]int32, e *Encoder) {
  11687. ee, esep := e.e, e.hh.hasElemSeparators()
  11688. ee.WriteMapStart(len(v))
  11689. if e.h.Canonical {
  11690. v2 := make([]int64, len(v))
  11691. var i int
  11692. for k, _ := range v {
  11693. v2[i] = int64(k)
  11694. i++
  11695. }
  11696. sort.Sort(intSlice(v2))
  11697. for _, k2 := range v2 {
  11698. if esep {
  11699. ee.WriteMapElemKey()
  11700. }
  11701. ee.EncodeInt(int64(int32(k2)))
  11702. if esep {
  11703. ee.WriteMapElemValue()
  11704. }
  11705. ee.EncodeInt(int64(v[int32(k2)]))
  11706. }
  11707. } else {
  11708. for k2, v2 := range v {
  11709. if esep {
  11710. ee.WriteMapElemKey()
  11711. }
  11712. ee.EncodeInt(int64(k2))
  11713. if esep {
  11714. ee.WriteMapElemValue()
  11715. }
  11716. ee.EncodeInt(int64(v2))
  11717. }
  11718. }
  11719. ee.WriteMapEnd()
  11720. }
  11721. func (e *Encoder) fastpathEncMapInt32Int64R(f *codecFnInfo, rv reflect.Value) {
  11722. fastpathTV.EncMapInt32Int64V(rv2i(rv).(map[int32]int64), e)
  11723. }
  11724. func (_ fastpathT) EncMapInt32Int64V(v map[int32]int64, e *Encoder) {
  11725. ee, esep := e.e, e.hh.hasElemSeparators()
  11726. ee.WriteMapStart(len(v))
  11727. if e.h.Canonical {
  11728. v2 := make([]int64, len(v))
  11729. var i int
  11730. for k, _ := range v {
  11731. v2[i] = int64(k)
  11732. i++
  11733. }
  11734. sort.Sort(intSlice(v2))
  11735. for _, k2 := range v2 {
  11736. if esep {
  11737. ee.WriteMapElemKey()
  11738. }
  11739. ee.EncodeInt(int64(int32(k2)))
  11740. if esep {
  11741. ee.WriteMapElemValue()
  11742. }
  11743. ee.EncodeInt(int64(v[int32(k2)]))
  11744. }
  11745. } else {
  11746. for k2, v2 := range v {
  11747. if esep {
  11748. ee.WriteMapElemKey()
  11749. }
  11750. ee.EncodeInt(int64(k2))
  11751. if esep {
  11752. ee.WriteMapElemValue()
  11753. }
  11754. ee.EncodeInt(int64(v2))
  11755. }
  11756. }
  11757. ee.WriteMapEnd()
  11758. }
  11759. func (e *Encoder) fastpathEncMapInt32Float32R(f *codecFnInfo, rv reflect.Value) {
  11760. fastpathTV.EncMapInt32Float32V(rv2i(rv).(map[int32]float32), e)
  11761. }
  11762. func (_ fastpathT) EncMapInt32Float32V(v map[int32]float32, e *Encoder) {
  11763. ee, esep := e.e, e.hh.hasElemSeparators()
  11764. ee.WriteMapStart(len(v))
  11765. if e.h.Canonical {
  11766. v2 := make([]int64, len(v))
  11767. var i int
  11768. for k, _ := range v {
  11769. v2[i] = int64(k)
  11770. i++
  11771. }
  11772. sort.Sort(intSlice(v2))
  11773. for _, k2 := range v2 {
  11774. if esep {
  11775. ee.WriteMapElemKey()
  11776. }
  11777. ee.EncodeInt(int64(int32(k2)))
  11778. if esep {
  11779. ee.WriteMapElemValue()
  11780. }
  11781. ee.EncodeFloat32(v[int32(k2)])
  11782. }
  11783. } else {
  11784. for k2, v2 := range v {
  11785. if esep {
  11786. ee.WriteMapElemKey()
  11787. }
  11788. ee.EncodeInt(int64(k2))
  11789. if esep {
  11790. ee.WriteMapElemValue()
  11791. }
  11792. ee.EncodeFloat32(v2)
  11793. }
  11794. }
  11795. ee.WriteMapEnd()
  11796. }
  11797. func (e *Encoder) fastpathEncMapInt32Float64R(f *codecFnInfo, rv reflect.Value) {
  11798. fastpathTV.EncMapInt32Float64V(rv2i(rv).(map[int32]float64), e)
  11799. }
  11800. func (_ fastpathT) EncMapInt32Float64V(v map[int32]float64, e *Encoder) {
  11801. ee, esep := e.e, e.hh.hasElemSeparators()
  11802. ee.WriteMapStart(len(v))
  11803. if e.h.Canonical {
  11804. v2 := make([]int64, len(v))
  11805. var i int
  11806. for k, _ := range v {
  11807. v2[i] = int64(k)
  11808. i++
  11809. }
  11810. sort.Sort(intSlice(v2))
  11811. for _, k2 := range v2 {
  11812. if esep {
  11813. ee.WriteMapElemKey()
  11814. }
  11815. ee.EncodeInt(int64(int32(k2)))
  11816. if esep {
  11817. ee.WriteMapElemValue()
  11818. }
  11819. ee.EncodeFloat64(v[int32(k2)])
  11820. }
  11821. } else {
  11822. for k2, v2 := range v {
  11823. if esep {
  11824. ee.WriteMapElemKey()
  11825. }
  11826. ee.EncodeInt(int64(k2))
  11827. if esep {
  11828. ee.WriteMapElemValue()
  11829. }
  11830. ee.EncodeFloat64(v2)
  11831. }
  11832. }
  11833. ee.WriteMapEnd()
  11834. }
  11835. func (e *Encoder) fastpathEncMapInt32BoolR(f *codecFnInfo, rv reflect.Value) {
  11836. fastpathTV.EncMapInt32BoolV(rv2i(rv).(map[int32]bool), e)
  11837. }
  11838. func (_ fastpathT) EncMapInt32BoolV(v map[int32]bool, e *Encoder) {
  11839. ee, esep := e.e, e.hh.hasElemSeparators()
  11840. ee.WriteMapStart(len(v))
  11841. if e.h.Canonical {
  11842. v2 := make([]int64, len(v))
  11843. var i int
  11844. for k, _ := range v {
  11845. v2[i] = int64(k)
  11846. i++
  11847. }
  11848. sort.Sort(intSlice(v2))
  11849. for _, k2 := range v2 {
  11850. if esep {
  11851. ee.WriteMapElemKey()
  11852. }
  11853. ee.EncodeInt(int64(int32(k2)))
  11854. if esep {
  11855. ee.WriteMapElemValue()
  11856. }
  11857. ee.EncodeBool(v[int32(k2)])
  11858. }
  11859. } else {
  11860. for k2, v2 := range v {
  11861. if esep {
  11862. ee.WriteMapElemKey()
  11863. }
  11864. ee.EncodeInt(int64(k2))
  11865. if esep {
  11866. ee.WriteMapElemValue()
  11867. }
  11868. ee.EncodeBool(v2)
  11869. }
  11870. }
  11871. ee.WriteMapEnd()
  11872. }
  11873. func (e *Encoder) fastpathEncMapInt64IntfR(f *codecFnInfo, rv reflect.Value) {
  11874. fastpathTV.EncMapInt64IntfV(rv2i(rv).(map[int64]interface{}), e)
  11875. }
  11876. func (_ fastpathT) EncMapInt64IntfV(v map[int64]interface{}, e *Encoder) {
  11877. ee, esep := e.e, e.hh.hasElemSeparators()
  11878. ee.WriteMapStart(len(v))
  11879. if e.h.Canonical {
  11880. v2 := make([]int64, len(v))
  11881. var i int
  11882. for k, _ := range v {
  11883. v2[i] = int64(k)
  11884. i++
  11885. }
  11886. sort.Sort(intSlice(v2))
  11887. for _, k2 := range v2 {
  11888. if esep {
  11889. ee.WriteMapElemKey()
  11890. }
  11891. ee.EncodeInt(int64(int64(k2)))
  11892. if esep {
  11893. ee.WriteMapElemValue()
  11894. }
  11895. e.encode(v[int64(k2)])
  11896. }
  11897. } else {
  11898. for k2, v2 := range v {
  11899. if esep {
  11900. ee.WriteMapElemKey()
  11901. }
  11902. ee.EncodeInt(int64(k2))
  11903. if esep {
  11904. ee.WriteMapElemValue()
  11905. }
  11906. e.encode(v2)
  11907. }
  11908. }
  11909. ee.WriteMapEnd()
  11910. }
  11911. func (e *Encoder) fastpathEncMapInt64StringR(f *codecFnInfo, rv reflect.Value) {
  11912. fastpathTV.EncMapInt64StringV(rv2i(rv).(map[int64]string), e)
  11913. }
  11914. func (_ fastpathT) EncMapInt64StringV(v map[int64]string, e *Encoder) {
  11915. ee, esep := e.e, e.hh.hasElemSeparators()
  11916. ee.WriteMapStart(len(v))
  11917. if e.h.Canonical {
  11918. v2 := make([]int64, len(v))
  11919. var i int
  11920. for k, _ := range v {
  11921. v2[i] = int64(k)
  11922. i++
  11923. }
  11924. sort.Sort(intSlice(v2))
  11925. for _, k2 := range v2 {
  11926. if esep {
  11927. ee.WriteMapElemKey()
  11928. }
  11929. ee.EncodeInt(int64(int64(k2)))
  11930. if esep {
  11931. ee.WriteMapElemValue()
  11932. }
  11933. ee.EncodeString(c_UTF8, v[int64(k2)])
  11934. }
  11935. } else {
  11936. for k2, v2 := range v {
  11937. if esep {
  11938. ee.WriteMapElemKey()
  11939. }
  11940. ee.EncodeInt(int64(k2))
  11941. if esep {
  11942. ee.WriteMapElemValue()
  11943. }
  11944. ee.EncodeString(c_UTF8, v2)
  11945. }
  11946. }
  11947. ee.WriteMapEnd()
  11948. }
  11949. func (e *Encoder) fastpathEncMapInt64UintR(f *codecFnInfo, rv reflect.Value) {
  11950. fastpathTV.EncMapInt64UintV(rv2i(rv).(map[int64]uint), e)
  11951. }
  11952. func (_ fastpathT) EncMapInt64UintV(v map[int64]uint, e *Encoder) {
  11953. ee, esep := e.e, e.hh.hasElemSeparators()
  11954. ee.WriteMapStart(len(v))
  11955. if e.h.Canonical {
  11956. v2 := make([]int64, len(v))
  11957. var i int
  11958. for k, _ := range v {
  11959. v2[i] = int64(k)
  11960. i++
  11961. }
  11962. sort.Sort(intSlice(v2))
  11963. for _, k2 := range v2 {
  11964. if esep {
  11965. ee.WriteMapElemKey()
  11966. }
  11967. ee.EncodeInt(int64(int64(k2)))
  11968. if esep {
  11969. ee.WriteMapElemValue()
  11970. }
  11971. ee.EncodeUint(uint64(v[int64(k2)]))
  11972. }
  11973. } else {
  11974. for k2, v2 := range v {
  11975. if esep {
  11976. ee.WriteMapElemKey()
  11977. }
  11978. ee.EncodeInt(int64(k2))
  11979. if esep {
  11980. ee.WriteMapElemValue()
  11981. }
  11982. ee.EncodeUint(uint64(v2))
  11983. }
  11984. }
  11985. ee.WriteMapEnd()
  11986. }
  11987. func (e *Encoder) fastpathEncMapInt64Uint8R(f *codecFnInfo, rv reflect.Value) {
  11988. fastpathTV.EncMapInt64Uint8V(rv2i(rv).(map[int64]uint8), e)
  11989. }
  11990. func (_ fastpathT) EncMapInt64Uint8V(v map[int64]uint8, e *Encoder) {
  11991. ee, esep := e.e, e.hh.hasElemSeparators()
  11992. ee.WriteMapStart(len(v))
  11993. if e.h.Canonical {
  11994. v2 := make([]int64, len(v))
  11995. var i int
  11996. for k, _ := range v {
  11997. v2[i] = int64(k)
  11998. i++
  11999. }
  12000. sort.Sort(intSlice(v2))
  12001. for _, k2 := range v2 {
  12002. if esep {
  12003. ee.WriteMapElemKey()
  12004. }
  12005. ee.EncodeInt(int64(int64(k2)))
  12006. if esep {
  12007. ee.WriteMapElemValue()
  12008. }
  12009. ee.EncodeUint(uint64(v[int64(k2)]))
  12010. }
  12011. } else {
  12012. for k2, v2 := range v {
  12013. if esep {
  12014. ee.WriteMapElemKey()
  12015. }
  12016. ee.EncodeInt(int64(k2))
  12017. if esep {
  12018. ee.WriteMapElemValue()
  12019. }
  12020. ee.EncodeUint(uint64(v2))
  12021. }
  12022. }
  12023. ee.WriteMapEnd()
  12024. }
  12025. func (e *Encoder) fastpathEncMapInt64Uint16R(f *codecFnInfo, rv reflect.Value) {
  12026. fastpathTV.EncMapInt64Uint16V(rv2i(rv).(map[int64]uint16), e)
  12027. }
  12028. func (_ fastpathT) EncMapInt64Uint16V(v map[int64]uint16, e *Encoder) {
  12029. ee, esep := e.e, e.hh.hasElemSeparators()
  12030. ee.WriteMapStart(len(v))
  12031. if e.h.Canonical {
  12032. v2 := make([]int64, len(v))
  12033. var i int
  12034. for k, _ := range v {
  12035. v2[i] = int64(k)
  12036. i++
  12037. }
  12038. sort.Sort(intSlice(v2))
  12039. for _, k2 := range v2 {
  12040. if esep {
  12041. ee.WriteMapElemKey()
  12042. }
  12043. ee.EncodeInt(int64(int64(k2)))
  12044. if esep {
  12045. ee.WriteMapElemValue()
  12046. }
  12047. ee.EncodeUint(uint64(v[int64(k2)]))
  12048. }
  12049. } else {
  12050. for k2, v2 := range v {
  12051. if esep {
  12052. ee.WriteMapElemKey()
  12053. }
  12054. ee.EncodeInt(int64(k2))
  12055. if esep {
  12056. ee.WriteMapElemValue()
  12057. }
  12058. ee.EncodeUint(uint64(v2))
  12059. }
  12060. }
  12061. ee.WriteMapEnd()
  12062. }
  12063. func (e *Encoder) fastpathEncMapInt64Uint32R(f *codecFnInfo, rv reflect.Value) {
  12064. fastpathTV.EncMapInt64Uint32V(rv2i(rv).(map[int64]uint32), e)
  12065. }
  12066. func (_ fastpathT) EncMapInt64Uint32V(v map[int64]uint32, e *Encoder) {
  12067. ee, esep := e.e, e.hh.hasElemSeparators()
  12068. ee.WriteMapStart(len(v))
  12069. if e.h.Canonical {
  12070. v2 := make([]int64, len(v))
  12071. var i int
  12072. for k, _ := range v {
  12073. v2[i] = int64(k)
  12074. i++
  12075. }
  12076. sort.Sort(intSlice(v2))
  12077. for _, k2 := range v2 {
  12078. if esep {
  12079. ee.WriteMapElemKey()
  12080. }
  12081. ee.EncodeInt(int64(int64(k2)))
  12082. if esep {
  12083. ee.WriteMapElemValue()
  12084. }
  12085. ee.EncodeUint(uint64(v[int64(k2)]))
  12086. }
  12087. } else {
  12088. for k2, v2 := range v {
  12089. if esep {
  12090. ee.WriteMapElemKey()
  12091. }
  12092. ee.EncodeInt(int64(k2))
  12093. if esep {
  12094. ee.WriteMapElemValue()
  12095. }
  12096. ee.EncodeUint(uint64(v2))
  12097. }
  12098. }
  12099. ee.WriteMapEnd()
  12100. }
  12101. func (e *Encoder) fastpathEncMapInt64Uint64R(f *codecFnInfo, rv reflect.Value) {
  12102. fastpathTV.EncMapInt64Uint64V(rv2i(rv).(map[int64]uint64), e)
  12103. }
  12104. func (_ fastpathT) EncMapInt64Uint64V(v map[int64]uint64, e *Encoder) {
  12105. ee, esep := e.e, e.hh.hasElemSeparators()
  12106. ee.WriteMapStart(len(v))
  12107. if e.h.Canonical {
  12108. v2 := make([]int64, len(v))
  12109. var i int
  12110. for k, _ := range v {
  12111. v2[i] = int64(k)
  12112. i++
  12113. }
  12114. sort.Sort(intSlice(v2))
  12115. for _, k2 := range v2 {
  12116. if esep {
  12117. ee.WriteMapElemKey()
  12118. }
  12119. ee.EncodeInt(int64(int64(k2)))
  12120. if esep {
  12121. ee.WriteMapElemValue()
  12122. }
  12123. ee.EncodeUint(uint64(v[int64(k2)]))
  12124. }
  12125. } else {
  12126. for k2, v2 := range v {
  12127. if esep {
  12128. ee.WriteMapElemKey()
  12129. }
  12130. ee.EncodeInt(int64(k2))
  12131. if esep {
  12132. ee.WriteMapElemValue()
  12133. }
  12134. ee.EncodeUint(uint64(v2))
  12135. }
  12136. }
  12137. ee.WriteMapEnd()
  12138. }
  12139. func (e *Encoder) fastpathEncMapInt64UintptrR(f *codecFnInfo, rv reflect.Value) {
  12140. fastpathTV.EncMapInt64UintptrV(rv2i(rv).(map[int64]uintptr), e)
  12141. }
  12142. func (_ fastpathT) EncMapInt64UintptrV(v map[int64]uintptr, e *Encoder) {
  12143. ee, esep := e.e, e.hh.hasElemSeparators()
  12144. ee.WriteMapStart(len(v))
  12145. if e.h.Canonical {
  12146. v2 := make([]int64, len(v))
  12147. var i int
  12148. for k, _ := range v {
  12149. v2[i] = int64(k)
  12150. i++
  12151. }
  12152. sort.Sort(intSlice(v2))
  12153. for _, k2 := range v2 {
  12154. if esep {
  12155. ee.WriteMapElemKey()
  12156. }
  12157. ee.EncodeInt(int64(int64(k2)))
  12158. if esep {
  12159. ee.WriteMapElemValue()
  12160. }
  12161. e.encode(v[int64(k2)])
  12162. }
  12163. } else {
  12164. for k2, v2 := range v {
  12165. if esep {
  12166. ee.WriteMapElemKey()
  12167. }
  12168. ee.EncodeInt(int64(k2))
  12169. if esep {
  12170. ee.WriteMapElemValue()
  12171. }
  12172. e.encode(v2)
  12173. }
  12174. }
  12175. ee.WriteMapEnd()
  12176. }
  12177. func (e *Encoder) fastpathEncMapInt64IntR(f *codecFnInfo, rv reflect.Value) {
  12178. fastpathTV.EncMapInt64IntV(rv2i(rv).(map[int64]int), e)
  12179. }
  12180. func (_ fastpathT) EncMapInt64IntV(v map[int64]int, e *Encoder) {
  12181. ee, esep := e.e, e.hh.hasElemSeparators()
  12182. ee.WriteMapStart(len(v))
  12183. if e.h.Canonical {
  12184. v2 := make([]int64, len(v))
  12185. var i int
  12186. for k, _ := range v {
  12187. v2[i] = int64(k)
  12188. i++
  12189. }
  12190. sort.Sort(intSlice(v2))
  12191. for _, k2 := range v2 {
  12192. if esep {
  12193. ee.WriteMapElemKey()
  12194. }
  12195. ee.EncodeInt(int64(int64(k2)))
  12196. if esep {
  12197. ee.WriteMapElemValue()
  12198. }
  12199. ee.EncodeInt(int64(v[int64(k2)]))
  12200. }
  12201. } else {
  12202. for k2, v2 := range v {
  12203. if esep {
  12204. ee.WriteMapElemKey()
  12205. }
  12206. ee.EncodeInt(int64(k2))
  12207. if esep {
  12208. ee.WriteMapElemValue()
  12209. }
  12210. ee.EncodeInt(int64(v2))
  12211. }
  12212. }
  12213. ee.WriteMapEnd()
  12214. }
  12215. func (e *Encoder) fastpathEncMapInt64Int8R(f *codecFnInfo, rv reflect.Value) {
  12216. fastpathTV.EncMapInt64Int8V(rv2i(rv).(map[int64]int8), e)
  12217. }
  12218. func (_ fastpathT) EncMapInt64Int8V(v map[int64]int8, e *Encoder) {
  12219. ee, esep := e.e, e.hh.hasElemSeparators()
  12220. ee.WriteMapStart(len(v))
  12221. if e.h.Canonical {
  12222. v2 := make([]int64, len(v))
  12223. var i int
  12224. for k, _ := range v {
  12225. v2[i] = int64(k)
  12226. i++
  12227. }
  12228. sort.Sort(intSlice(v2))
  12229. for _, k2 := range v2 {
  12230. if esep {
  12231. ee.WriteMapElemKey()
  12232. }
  12233. ee.EncodeInt(int64(int64(k2)))
  12234. if esep {
  12235. ee.WriteMapElemValue()
  12236. }
  12237. ee.EncodeInt(int64(v[int64(k2)]))
  12238. }
  12239. } else {
  12240. for k2, v2 := range v {
  12241. if esep {
  12242. ee.WriteMapElemKey()
  12243. }
  12244. ee.EncodeInt(int64(k2))
  12245. if esep {
  12246. ee.WriteMapElemValue()
  12247. }
  12248. ee.EncodeInt(int64(v2))
  12249. }
  12250. }
  12251. ee.WriteMapEnd()
  12252. }
  12253. func (e *Encoder) fastpathEncMapInt64Int16R(f *codecFnInfo, rv reflect.Value) {
  12254. fastpathTV.EncMapInt64Int16V(rv2i(rv).(map[int64]int16), e)
  12255. }
  12256. func (_ fastpathT) EncMapInt64Int16V(v map[int64]int16, e *Encoder) {
  12257. ee, esep := e.e, e.hh.hasElemSeparators()
  12258. ee.WriteMapStart(len(v))
  12259. if e.h.Canonical {
  12260. v2 := make([]int64, len(v))
  12261. var i int
  12262. for k, _ := range v {
  12263. v2[i] = int64(k)
  12264. i++
  12265. }
  12266. sort.Sort(intSlice(v2))
  12267. for _, k2 := range v2 {
  12268. if esep {
  12269. ee.WriteMapElemKey()
  12270. }
  12271. ee.EncodeInt(int64(int64(k2)))
  12272. if esep {
  12273. ee.WriteMapElemValue()
  12274. }
  12275. ee.EncodeInt(int64(v[int64(k2)]))
  12276. }
  12277. } else {
  12278. for k2, v2 := range v {
  12279. if esep {
  12280. ee.WriteMapElemKey()
  12281. }
  12282. ee.EncodeInt(int64(k2))
  12283. if esep {
  12284. ee.WriteMapElemValue()
  12285. }
  12286. ee.EncodeInt(int64(v2))
  12287. }
  12288. }
  12289. ee.WriteMapEnd()
  12290. }
  12291. func (e *Encoder) fastpathEncMapInt64Int32R(f *codecFnInfo, rv reflect.Value) {
  12292. fastpathTV.EncMapInt64Int32V(rv2i(rv).(map[int64]int32), e)
  12293. }
  12294. func (_ fastpathT) EncMapInt64Int32V(v map[int64]int32, e *Encoder) {
  12295. ee, esep := e.e, e.hh.hasElemSeparators()
  12296. ee.WriteMapStart(len(v))
  12297. if e.h.Canonical {
  12298. v2 := make([]int64, len(v))
  12299. var i int
  12300. for k, _ := range v {
  12301. v2[i] = int64(k)
  12302. i++
  12303. }
  12304. sort.Sort(intSlice(v2))
  12305. for _, k2 := range v2 {
  12306. if esep {
  12307. ee.WriteMapElemKey()
  12308. }
  12309. ee.EncodeInt(int64(int64(k2)))
  12310. if esep {
  12311. ee.WriteMapElemValue()
  12312. }
  12313. ee.EncodeInt(int64(v[int64(k2)]))
  12314. }
  12315. } else {
  12316. for k2, v2 := range v {
  12317. if esep {
  12318. ee.WriteMapElemKey()
  12319. }
  12320. ee.EncodeInt(int64(k2))
  12321. if esep {
  12322. ee.WriteMapElemValue()
  12323. }
  12324. ee.EncodeInt(int64(v2))
  12325. }
  12326. }
  12327. ee.WriteMapEnd()
  12328. }
  12329. func (e *Encoder) fastpathEncMapInt64Int64R(f *codecFnInfo, rv reflect.Value) {
  12330. fastpathTV.EncMapInt64Int64V(rv2i(rv).(map[int64]int64), e)
  12331. }
  12332. func (_ fastpathT) EncMapInt64Int64V(v map[int64]int64, e *Encoder) {
  12333. ee, esep := e.e, e.hh.hasElemSeparators()
  12334. ee.WriteMapStart(len(v))
  12335. if e.h.Canonical {
  12336. v2 := make([]int64, len(v))
  12337. var i int
  12338. for k, _ := range v {
  12339. v2[i] = int64(k)
  12340. i++
  12341. }
  12342. sort.Sort(intSlice(v2))
  12343. for _, k2 := range v2 {
  12344. if esep {
  12345. ee.WriteMapElemKey()
  12346. }
  12347. ee.EncodeInt(int64(int64(k2)))
  12348. if esep {
  12349. ee.WriteMapElemValue()
  12350. }
  12351. ee.EncodeInt(int64(v[int64(k2)]))
  12352. }
  12353. } else {
  12354. for k2, v2 := range v {
  12355. if esep {
  12356. ee.WriteMapElemKey()
  12357. }
  12358. ee.EncodeInt(int64(k2))
  12359. if esep {
  12360. ee.WriteMapElemValue()
  12361. }
  12362. ee.EncodeInt(int64(v2))
  12363. }
  12364. }
  12365. ee.WriteMapEnd()
  12366. }
  12367. func (e *Encoder) fastpathEncMapInt64Float32R(f *codecFnInfo, rv reflect.Value) {
  12368. fastpathTV.EncMapInt64Float32V(rv2i(rv).(map[int64]float32), e)
  12369. }
  12370. func (_ fastpathT) EncMapInt64Float32V(v map[int64]float32, e *Encoder) {
  12371. ee, esep := e.e, e.hh.hasElemSeparators()
  12372. ee.WriteMapStart(len(v))
  12373. if e.h.Canonical {
  12374. v2 := make([]int64, len(v))
  12375. var i int
  12376. for k, _ := range v {
  12377. v2[i] = int64(k)
  12378. i++
  12379. }
  12380. sort.Sort(intSlice(v2))
  12381. for _, k2 := range v2 {
  12382. if esep {
  12383. ee.WriteMapElemKey()
  12384. }
  12385. ee.EncodeInt(int64(int64(k2)))
  12386. if esep {
  12387. ee.WriteMapElemValue()
  12388. }
  12389. ee.EncodeFloat32(v[int64(k2)])
  12390. }
  12391. } else {
  12392. for k2, v2 := range v {
  12393. if esep {
  12394. ee.WriteMapElemKey()
  12395. }
  12396. ee.EncodeInt(int64(k2))
  12397. if esep {
  12398. ee.WriteMapElemValue()
  12399. }
  12400. ee.EncodeFloat32(v2)
  12401. }
  12402. }
  12403. ee.WriteMapEnd()
  12404. }
  12405. func (e *Encoder) fastpathEncMapInt64Float64R(f *codecFnInfo, rv reflect.Value) {
  12406. fastpathTV.EncMapInt64Float64V(rv2i(rv).(map[int64]float64), e)
  12407. }
  12408. func (_ fastpathT) EncMapInt64Float64V(v map[int64]float64, e *Encoder) {
  12409. ee, esep := e.e, e.hh.hasElemSeparators()
  12410. ee.WriteMapStart(len(v))
  12411. if e.h.Canonical {
  12412. v2 := make([]int64, len(v))
  12413. var i int
  12414. for k, _ := range v {
  12415. v2[i] = int64(k)
  12416. i++
  12417. }
  12418. sort.Sort(intSlice(v2))
  12419. for _, k2 := range v2 {
  12420. if esep {
  12421. ee.WriteMapElemKey()
  12422. }
  12423. ee.EncodeInt(int64(int64(k2)))
  12424. if esep {
  12425. ee.WriteMapElemValue()
  12426. }
  12427. ee.EncodeFloat64(v[int64(k2)])
  12428. }
  12429. } else {
  12430. for k2, v2 := range v {
  12431. if esep {
  12432. ee.WriteMapElemKey()
  12433. }
  12434. ee.EncodeInt(int64(k2))
  12435. if esep {
  12436. ee.WriteMapElemValue()
  12437. }
  12438. ee.EncodeFloat64(v2)
  12439. }
  12440. }
  12441. ee.WriteMapEnd()
  12442. }
  12443. func (e *Encoder) fastpathEncMapInt64BoolR(f *codecFnInfo, rv reflect.Value) {
  12444. fastpathTV.EncMapInt64BoolV(rv2i(rv).(map[int64]bool), e)
  12445. }
  12446. func (_ fastpathT) EncMapInt64BoolV(v map[int64]bool, e *Encoder) {
  12447. ee, esep := e.e, e.hh.hasElemSeparators()
  12448. ee.WriteMapStart(len(v))
  12449. if e.h.Canonical {
  12450. v2 := make([]int64, len(v))
  12451. var i int
  12452. for k, _ := range v {
  12453. v2[i] = int64(k)
  12454. i++
  12455. }
  12456. sort.Sort(intSlice(v2))
  12457. for _, k2 := range v2 {
  12458. if esep {
  12459. ee.WriteMapElemKey()
  12460. }
  12461. ee.EncodeInt(int64(int64(k2)))
  12462. if esep {
  12463. ee.WriteMapElemValue()
  12464. }
  12465. ee.EncodeBool(v[int64(k2)])
  12466. }
  12467. } else {
  12468. for k2, v2 := range v {
  12469. if esep {
  12470. ee.WriteMapElemKey()
  12471. }
  12472. ee.EncodeInt(int64(k2))
  12473. if esep {
  12474. ee.WriteMapElemValue()
  12475. }
  12476. ee.EncodeBool(v2)
  12477. }
  12478. }
  12479. ee.WriteMapEnd()
  12480. }
  12481. func (e *Encoder) fastpathEncMapBoolIntfR(f *codecFnInfo, rv reflect.Value) {
  12482. fastpathTV.EncMapBoolIntfV(rv2i(rv).(map[bool]interface{}), e)
  12483. }
  12484. func (_ fastpathT) EncMapBoolIntfV(v map[bool]interface{}, e *Encoder) {
  12485. ee, esep := e.e, e.hh.hasElemSeparators()
  12486. ee.WriteMapStart(len(v))
  12487. if e.h.Canonical {
  12488. v2 := make([]bool, len(v))
  12489. var i int
  12490. for k, _ := range v {
  12491. v2[i] = bool(k)
  12492. i++
  12493. }
  12494. sort.Sort(boolSlice(v2))
  12495. for _, k2 := range v2 {
  12496. if esep {
  12497. ee.WriteMapElemKey()
  12498. }
  12499. ee.EncodeBool(bool(k2))
  12500. if esep {
  12501. ee.WriteMapElemValue()
  12502. }
  12503. e.encode(v[bool(k2)])
  12504. }
  12505. } else {
  12506. for k2, v2 := range v {
  12507. if esep {
  12508. ee.WriteMapElemKey()
  12509. }
  12510. ee.EncodeBool(k2)
  12511. if esep {
  12512. ee.WriteMapElemValue()
  12513. }
  12514. e.encode(v2)
  12515. }
  12516. }
  12517. ee.WriteMapEnd()
  12518. }
  12519. func (e *Encoder) fastpathEncMapBoolStringR(f *codecFnInfo, rv reflect.Value) {
  12520. fastpathTV.EncMapBoolStringV(rv2i(rv).(map[bool]string), e)
  12521. }
  12522. func (_ fastpathT) EncMapBoolStringV(v map[bool]string, e *Encoder) {
  12523. ee, esep := e.e, e.hh.hasElemSeparators()
  12524. ee.WriteMapStart(len(v))
  12525. if e.h.Canonical {
  12526. v2 := make([]bool, len(v))
  12527. var i int
  12528. for k, _ := range v {
  12529. v2[i] = bool(k)
  12530. i++
  12531. }
  12532. sort.Sort(boolSlice(v2))
  12533. for _, k2 := range v2 {
  12534. if esep {
  12535. ee.WriteMapElemKey()
  12536. }
  12537. ee.EncodeBool(bool(k2))
  12538. if esep {
  12539. ee.WriteMapElemValue()
  12540. }
  12541. ee.EncodeString(c_UTF8, v[bool(k2)])
  12542. }
  12543. } else {
  12544. for k2, v2 := range v {
  12545. if esep {
  12546. ee.WriteMapElemKey()
  12547. }
  12548. ee.EncodeBool(k2)
  12549. if esep {
  12550. ee.WriteMapElemValue()
  12551. }
  12552. ee.EncodeString(c_UTF8, v2)
  12553. }
  12554. }
  12555. ee.WriteMapEnd()
  12556. }
  12557. func (e *Encoder) fastpathEncMapBoolUintR(f *codecFnInfo, rv reflect.Value) {
  12558. fastpathTV.EncMapBoolUintV(rv2i(rv).(map[bool]uint), e)
  12559. }
  12560. func (_ fastpathT) EncMapBoolUintV(v map[bool]uint, e *Encoder) {
  12561. ee, esep := e.e, e.hh.hasElemSeparators()
  12562. ee.WriteMapStart(len(v))
  12563. if e.h.Canonical {
  12564. v2 := make([]bool, len(v))
  12565. var i int
  12566. for k, _ := range v {
  12567. v2[i] = bool(k)
  12568. i++
  12569. }
  12570. sort.Sort(boolSlice(v2))
  12571. for _, k2 := range v2 {
  12572. if esep {
  12573. ee.WriteMapElemKey()
  12574. }
  12575. ee.EncodeBool(bool(k2))
  12576. if esep {
  12577. ee.WriteMapElemValue()
  12578. }
  12579. ee.EncodeUint(uint64(v[bool(k2)]))
  12580. }
  12581. } else {
  12582. for k2, v2 := range v {
  12583. if esep {
  12584. ee.WriteMapElemKey()
  12585. }
  12586. ee.EncodeBool(k2)
  12587. if esep {
  12588. ee.WriteMapElemValue()
  12589. }
  12590. ee.EncodeUint(uint64(v2))
  12591. }
  12592. }
  12593. ee.WriteMapEnd()
  12594. }
  12595. func (e *Encoder) fastpathEncMapBoolUint8R(f *codecFnInfo, rv reflect.Value) {
  12596. fastpathTV.EncMapBoolUint8V(rv2i(rv).(map[bool]uint8), e)
  12597. }
  12598. func (_ fastpathT) EncMapBoolUint8V(v map[bool]uint8, e *Encoder) {
  12599. ee, esep := e.e, e.hh.hasElemSeparators()
  12600. ee.WriteMapStart(len(v))
  12601. if e.h.Canonical {
  12602. v2 := make([]bool, len(v))
  12603. var i int
  12604. for k, _ := range v {
  12605. v2[i] = bool(k)
  12606. i++
  12607. }
  12608. sort.Sort(boolSlice(v2))
  12609. for _, k2 := range v2 {
  12610. if esep {
  12611. ee.WriteMapElemKey()
  12612. }
  12613. ee.EncodeBool(bool(k2))
  12614. if esep {
  12615. ee.WriteMapElemValue()
  12616. }
  12617. ee.EncodeUint(uint64(v[bool(k2)]))
  12618. }
  12619. } else {
  12620. for k2, v2 := range v {
  12621. if esep {
  12622. ee.WriteMapElemKey()
  12623. }
  12624. ee.EncodeBool(k2)
  12625. if esep {
  12626. ee.WriteMapElemValue()
  12627. }
  12628. ee.EncodeUint(uint64(v2))
  12629. }
  12630. }
  12631. ee.WriteMapEnd()
  12632. }
  12633. func (e *Encoder) fastpathEncMapBoolUint16R(f *codecFnInfo, rv reflect.Value) {
  12634. fastpathTV.EncMapBoolUint16V(rv2i(rv).(map[bool]uint16), e)
  12635. }
  12636. func (_ fastpathT) EncMapBoolUint16V(v map[bool]uint16, e *Encoder) {
  12637. ee, esep := e.e, e.hh.hasElemSeparators()
  12638. ee.WriteMapStart(len(v))
  12639. if e.h.Canonical {
  12640. v2 := make([]bool, len(v))
  12641. var i int
  12642. for k, _ := range v {
  12643. v2[i] = bool(k)
  12644. i++
  12645. }
  12646. sort.Sort(boolSlice(v2))
  12647. for _, k2 := range v2 {
  12648. if esep {
  12649. ee.WriteMapElemKey()
  12650. }
  12651. ee.EncodeBool(bool(k2))
  12652. if esep {
  12653. ee.WriteMapElemValue()
  12654. }
  12655. ee.EncodeUint(uint64(v[bool(k2)]))
  12656. }
  12657. } else {
  12658. for k2, v2 := range v {
  12659. if esep {
  12660. ee.WriteMapElemKey()
  12661. }
  12662. ee.EncodeBool(k2)
  12663. if esep {
  12664. ee.WriteMapElemValue()
  12665. }
  12666. ee.EncodeUint(uint64(v2))
  12667. }
  12668. }
  12669. ee.WriteMapEnd()
  12670. }
  12671. func (e *Encoder) fastpathEncMapBoolUint32R(f *codecFnInfo, rv reflect.Value) {
  12672. fastpathTV.EncMapBoolUint32V(rv2i(rv).(map[bool]uint32), e)
  12673. }
  12674. func (_ fastpathT) EncMapBoolUint32V(v map[bool]uint32, e *Encoder) {
  12675. ee, esep := e.e, e.hh.hasElemSeparators()
  12676. ee.WriteMapStart(len(v))
  12677. if e.h.Canonical {
  12678. v2 := make([]bool, len(v))
  12679. var i int
  12680. for k, _ := range v {
  12681. v2[i] = bool(k)
  12682. i++
  12683. }
  12684. sort.Sort(boolSlice(v2))
  12685. for _, k2 := range v2 {
  12686. if esep {
  12687. ee.WriteMapElemKey()
  12688. }
  12689. ee.EncodeBool(bool(k2))
  12690. if esep {
  12691. ee.WriteMapElemValue()
  12692. }
  12693. ee.EncodeUint(uint64(v[bool(k2)]))
  12694. }
  12695. } else {
  12696. for k2, v2 := range v {
  12697. if esep {
  12698. ee.WriteMapElemKey()
  12699. }
  12700. ee.EncodeBool(k2)
  12701. if esep {
  12702. ee.WriteMapElemValue()
  12703. }
  12704. ee.EncodeUint(uint64(v2))
  12705. }
  12706. }
  12707. ee.WriteMapEnd()
  12708. }
  12709. func (e *Encoder) fastpathEncMapBoolUint64R(f *codecFnInfo, rv reflect.Value) {
  12710. fastpathTV.EncMapBoolUint64V(rv2i(rv).(map[bool]uint64), e)
  12711. }
  12712. func (_ fastpathT) EncMapBoolUint64V(v map[bool]uint64, e *Encoder) {
  12713. ee, esep := e.e, e.hh.hasElemSeparators()
  12714. ee.WriteMapStart(len(v))
  12715. if e.h.Canonical {
  12716. v2 := make([]bool, len(v))
  12717. var i int
  12718. for k, _ := range v {
  12719. v2[i] = bool(k)
  12720. i++
  12721. }
  12722. sort.Sort(boolSlice(v2))
  12723. for _, k2 := range v2 {
  12724. if esep {
  12725. ee.WriteMapElemKey()
  12726. }
  12727. ee.EncodeBool(bool(k2))
  12728. if esep {
  12729. ee.WriteMapElemValue()
  12730. }
  12731. ee.EncodeUint(uint64(v[bool(k2)]))
  12732. }
  12733. } else {
  12734. for k2, v2 := range v {
  12735. if esep {
  12736. ee.WriteMapElemKey()
  12737. }
  12738. ee.EncodeBool(k2)
  12739. if esep {
  12740. ee.WriteMapElemValue()
  12741. }
  12742. ee.EncodeUint(uint64(v2))
  12743. }
  12744. }
  12745. ee.WriteMapEnd()
  12746. }
  12747. func (e *Encoder) fastpathEncMapBoolUintptrR(f *codecFnInfo, rv reflect.Value) {
  12748. fastpathTV.EncMapBoolUintptrV(rv2i(rv).(map[bool]uintptr), e)
  12749. }
  12750. func (_ fastpathT) EncMapBoolUintptrV(v map[bool]uintptr, e *Encoder) {
  12751. ee, esep := e.e, e.hh.hasElemSeparators()
  12752. ee.WriteMapStart(len(v))
  12753. if e.h.Canonical {
  12754. v2 := make([]bool, len(v))
  12755. var i int
  12756. for k, _ := range v {
  12757. v2[i] = bool(k)
  12758. i++
  12759. }
  12760. sort.Sort(boolSlice(v2))
  12761. for _, k2 := range v2 {
  12762. if esep {
  12763. ee.WriteMapElemKey()
  12764. }
  12765. ee.EncodeBool(bool(k2))
  12766. if esep {
  12767. ee.WriteMapElemValue()
  12768. }
  12769. e.encode(v[bool(k2)])
  12770. }
  12771. } else {
  12772. for k2, v2 := range v {
  12773. if esep {
  12774. ee.WriteMapElemKey()
  12775. }
  12776. ee.EncodeBool(k2)
  12777. if esep {
  12778. ee.WriteMapElemValue()
  12779. }
  12780. e.encode(v2)
  12781. }
  12782. }
  12783. ee.WriteMapEnd()
  12784. }
  12785. func (e *Encoder) fastpathEncMapBoolIntR(f *codecFnInfo, rv reflect.Value) {
  12786. fastpathTV.EncMapBoolIntV(rv2i(rv).(map[bool]int), e)
  12787. }
  12788. func (_ fastpathT) EncMapBoolIntV(v map[bool]int, e *Encoder) {
  12789. ee, esep := e.e, e.hh.hasElemSeparators()
  12790. ee.WriteMapStart(len(v))
  12791. if e.h.Canonical {
  12792. v2 := make([]bool, len(v))
  12793. var i int
  12794. for k, _ := range v {
  12795. v2[i] = bool(k)
  12796. i++
  12797. }
  12798. sort.Sort(boolSlice(v2))
  12799. for _, k2 := range v2 {
  12800. if esep {
  12801. ee.WriteMapElemKey()
  12802. }
  12803. ee.EncodeBool(bool(k2))
  12804. if esep {
  12805. ee.WriteMapElemValue()
  12806. }
  12807. ee.EncodeInt(int64(v[bool(k2)]))
  12808. }
  12809. } else {
  12810. for k2, v2 := range v {
  12811. if esep {
  12812. ee.WriteMapElemKey()
  12813. }
  12814. ee.EncodeBool(k2)
  12815. if esep {
  12816. ee.WriteMapElemValue()
  12817. }
  12818. ee.EncodeInt(int64(v2))
  12819. }
  12820. }
  12821. ee.WriteMapEnd()
  12822. }
  12823. func (e *Encoder) fastpathEncMapBoolInt8R(f *codecFnInfo, rv reflect.Value) {
  12824. fastpathTV.EncMapBoolInt8V(rv2i(rv).(map[bool]int8), e)
  12825. }
  12826. func (_ fastpathT) EncMapBoolInt8V(v map[bool]int8, e *Encoder) {
  12827. ee, esep := e.e, e.hh.hasElemSeparators()
  12828. ee.WriteMapStart(len(v))
  12829. if e.h.Canonical {
  12830. v2 := make([]bool, len(v))
  12831. var i int
  12832. for k, _ := range v {
  12833. v2[i] = bool(k)
  12834. i++
  12835. }
  12836. sort.Sort(boolSlice(v2))
  12837. for _, k2 := range v2 {
  12838. if esep {
  12839. ee.WriteMapElemKey()
  12840. }
  12841. ee.EncodeBool(bool(k2))
  12842. if esep {
  12843. ee.WriteMapElemValue()
  12844. }
  12845. ee.EncodeInt(int64(v[bool(k2)]))
  12846. }
  12847. } else {
  12848. for k2, v2 := range v {
  12849. if esep {
  12850. ee.WriteMapElemKey()
  12851. }
  12852. ee.EncodeBool(k2)
  12853. if esep {
  12854. ee.WriteMapElemValue()
  12855. }
  12856. ee.EncodeInt(int64(v2))
  12857. }
  12858. }
  12859. ee.WriteMapEnd()
  12860. }
  12861. func (e *Encoder) fastpathEncMapBoolInt16R(f *codecFnInfo, rv reflect.Value) {
  12862. fastpathTV.EncMapBoolInt16V(rv2i(rv).(map[bool]int16), e)
  12863. }
  12864. func (_ fastpathT) EncMapBoolInt16V(v map[bool]int16, e *Encoder) {
  12865. ee, esep := e.e, e.hh.hasElemSeparators()
  12866. ee.WriteMapStart(len(v))
  12867. if e.h.Canonical {
  12868. v2 := make([]bool, len(v))
  12869. var i int
  12870. for k, _ := range v {
  12871. v2[i] = bool(k)
  12872. i++
  12873. }
  12874. sort.Sort(boolSlice(v2))
  12875. for _, k2 := range v2 {
  12876. if esep {
  12877. ee.WriteMapElemKey()
  12878. }
  12879. ee.EncodeBool(bool(k2))
  12880. if esep {
  12881. ee.WriteMapElemValue()
  12882. }
  12883. ee.EncodeInt(int64(v[bool(k2)]))
  12884. }
  12885. } else {
  12886. for k2, v2 := range v {
  12887. if esep {
  12888. ee.WriteMapElemKey()
  12889. }
  12890. ee.EncodeBool(k2)
  12891. if esep {
  12892. ee.WriteMapElemValue()
  12893. }
  12894. ee.EncodeInt(int64(v2))
  12895. }
  12896. }
  12897. ee.WriteMapEnd()
  12898. }
  12899. func (e *Encoder) fastpathEncMapBoolInt32R(f *codecFnInfo, rv reflect.Value) {
  12900. fastpathTV.EncMapBoolInt32V(rv2i(rv).(map[bool]int32), e)
  12901. }
  12902. func (_ fastpathT) EncMapBoolInt32V(v map[bool]int32, e *Encoder) {
  12903. ee, esep := e.e, e.hh.hasElemSeparators()
  12904. ee.WriteMapStart(len(v))
  12905. if e.h.Canonical {
  12906. v2 := make([]bool, len(v))
  12907. var i int
  12908. for k, _ := range v {
  12909. v2[i] = bool(k)
  12910. i++
  12911. }
  12912. sort.Sort(boolSlice(v2))
  12913. for _, k2 := range v2 {
  12914. if esep {
  12915. ee.WriteMapElemKey()
  12916. }
  12917. ee.EncodeBool(bool(k2))
  12918. if esep {
  12919. ee.WriteMapElemValue()
  12920. }
  12921. ee.EncodeInt(int64(v[bool(k2)]))
  12922. }
  12923. } else {
  12924. for k2, v2 := range v {
  12925. if esep {
  12926. ee.WriteMapElemKey()
  12927. }
  12928. ee.EncodeBool(k2)
  12929. if esep {
  12930. ee.WriteMapElemValue()
  12931. }
  12932. ee.EncodeInt(int64(v2))
  12933. }
  12934. }
  12935. ee.WriteMapEnd()
  12936. }
  12937. func (e *Encoder) fastpathEncMapBoolInt64R(f *codecFnInfo, rv reflect.Value) {
  12938. fastpathTV.EncMapBoolInt64V(rv2i(rv).(map[bool]int64), e)
  12939. }
  12940. func (_ fastpathT) EncMapBoolInt64V(v map[bool]int64, e *Encoder) {
  12941. ee, esep := e.e, e.hh.hasElemSeparators()
  12942. ee.WriteMapStart(len(v))
  12943. if e.h.Canonical {
  12944. v2 := make([]bool, len(v))
  12945. var i int
  12946. for k, _ := range v {
  12947. v2[i] = bool(k)
  12948. i++
  12949. }
  12950. sort.Sort(boolSlice(v2))
  12951. for _, k2 := range v2 {
  12952. if esep {
  12953. ee.WriteMapElemKey()
  12954. }
  12955. ee.EncodeBool(bool(k2))
  12956. if esep {
  12957. ee.WriteMapElemValue()
  12958. }
  12959. ee.EncodeInt(int64(v[bool(k2)]))
  12960. }
  12961. } else {
  12962. for k2, v2 := range v {
  12963. if esep {
  12964. ee.WriteMapElemKey()
  12965. }
  12966. ee.EncodeBool(k2)
  12967. if esep {
  12968. ee.WriteMapElemValue()
  12969. }
  12970. ee.EncodeInt(int64(v2))
  12971. }
  12972. }
  12973. ee.WriteMapEnd()
  12974. }
  12975. func (e *Encoder) fastpathEncMapBoolFloat32R(f *codecFnInfo, rv reflect.Value) {
  12976. fastpathTV.EncMapBoolFloat32V(rv2i(rv).(map[bool]float32), e)
  12977. }
  12978. func (_ fastpathT) EncMapBoolFloat32V(v map[bool]float32, e *Encoder) {
  12979. ee, esep := e.e, e.hh.hasElemSeparators()
  12980. ee.WriteMapStart(len(v))
  12981. if e.h.Canonical {
  12982. v2 := make([]bool, len(v))
  12983. var i int
  12984. for k, _ := range v {
  12985. v2[i] = bool(k)
  12986. i++
  12987. }
  12988. sort.Sort(boolSlice(v2))
  12989. for _, k2 := range v2 {
  12990. if esep {
  12991. ee.WriteMapElemKey()
  12992. }
  12993. ee.EncodeBool(bool(k2))
  12994. if esep {
  12995. ee.WriteMapElemValue()
  12996. }
  12997. ee.EncodeFloat32(v[bool(k2)])
  12998. }
  12999. } else {
  13000. for k2, v2 := range v {
  13001. if esep {
  13002. ee.WriteMapElemKey()
  13003. }
  13004. ee.EncodeBool(k2)
  13005. if esep {
  13006. ee.WriteMapElemValue()
  13007. }
  13008. ee.EncodeFloat32(v2)
  13009. }
  13010. }
  13011. ee.WriteMapEnd()
  13012. }
  13013. func (e *Encoder) fastpathEncMapBoolFloat64R(f *codecFnInfo, rv reflect.Value) {
  13014. fastpathTV.EncMapBoolFloat64V(rv2i(rv).(map[bool]float64), e)
  13015. }
  13016. func (_ fastpathT) EncMapBoolFloat64V(v map[bool]float64, e *Encoder) {
  13017. ee, esep := e.e, e.hh.hasElemSeparators()
  13018. ee.WriteMapStart(len(v))
  13019. if e.h.Canonical {
  13020. v2 := make([]bool, len(v))
  13021. var i int
  13022. for k, _ := range v {
  13023. v2[i] = bool(k)
  13024. i++
  13025. }
  13026. sort.Sort(boolSlice(v2))
  13027. for _, k2 := range v2 {
  13028. if esep {
  13029. ee.WriteMapElemKey()
  13030. }
  13031. ee.EncodeBool(bool(k2))
  13032. if esep {
  13033. ee.WriteMapElemValue()
  13034. }
  13035. ee.EncodeFloat64(v[bool(k2)])
  13036. }
  13037. } else {
  13038. for k2, v2 := range v {
  13039. if esep {
  13040. ee.WriteMapElemKey()
  13041. }
  13042. ee.EncodeBool(k2)
  13043. if esep {
  13044. ee.WriteMapElemValue()
  13045. }
  13046. ee.EncodeFloat64(v2)
  13047. }
  13048. }
  13049. ee.WriteMapEnd()
  13050. }
  13051. func (e *Encoder) fastpathEncMapBoolBoolR(f *codecFnInfo, rv reflect.Value) {
  13052. fastpathTV.EncMapBoolBoolV(rv2i(rv).(map[bool]bool), e)
  13053. }
  13054. func (_ fastpathT) EncMapBoolBoolV(v map[bool]bool, e *Encoder) {
  13055. ee, esep := e.e, e.hh.hasElemSeparators()
  13056. ee.WriteMapStart(len(v))
  13057. if e.h.Canonical {
  13058. v2 := make([]bool, len(v))
  13059. var i int
  13060. for k, _ := range v {
  13061. v2[i] = bool(k)
  13062. i++
  13063. }
  13064. sort.Sort(boolSlice(v2))
  13065. for _, k2 := range v2 {
  13066. if esep {
  13067. ee.WriteMapElemKey()
  13068. }
  13069. ee.EncodeBool(bool(k2))
  13070. if esep {
  13071. ee.WriteMapElemValue()
  13072. }
  13073. ee.EncodeBool(v[bool(k2)])
  13074. }
  13075. } else {
  13076. for k2, v2 := range v {
  13077. if esep {
  13078. ee.WriteMapElemKey()
  13079. }
  13080. ee.EncodeBool(k2)
  13081. if esep {
  13082. ee.WriteMapElemValue()
  13083. }
  13084. ee.EncodeBool(v2)
  13085. }
  13086. }
  13087. ee.WriteMapEnd()
  13088. }
  13089. // -- decode
  13090. // -- -- fast path type switch
  13091. func fastpathDecodeTypeSwitch(iv interface{}, d *Decoder) bool {
  13092. switch v := iv.(type) {
  13093. case []interface{}:
  13094. fastpathTV.DecSliceIntfV(v, false, d)
  13095. case *[]interface{}:
  13096. if v2, changed2 := fastpathTV.DecSliceIntfV(*v, true, d); changed2 {
  13097. *v = v2
  13098. }
  13099. case map[interface{}]interface{}:
  13100. fastpathTV.DecMapIntfIntfV(v, false, d)
  13101. case *map[interface{}]interface{}:
  13102. if v2, changed2 := fastpathTV.DecMapIntfIntfV(*v, true, d); changed2 {
  13103. *v = v2
  13104. }
  13105. case map[interface{}]string:
  13106. fastpathTV.DecMapIntfStringV(v, false, d)
  13107. case *map[interface{}]string:
  13108. if v2, changed2 := fastpathTV.DecMapIntfStringV(*v, true, d); changed2 {
  13109. *v = v2
  13110. }
  13111. case map[interface{}]uint:
  13112. fastpathTV.DecMapIntfUintV(v, false, d)
  13113. case *map[interface{}]uint:
  13114. if v2, changed2 := fastpathTV.DecMapIntfUintV(*v, true, d); changed2 {
  13115. *v = v2
  13116. }
  13117. case map[interface{}]uint8:
  13118. fastpathTV.DecMapIntfUint8V(v, false, d)
  13119. case *map[interface{}]uint8:
  13120. if v2, changed2 := fastpathTV.DecMapIntfUint8V(*v, true, d); changed2 {
  13121. *v = v2
  13122. }
  13123. case map[interface{}]uint16:
  13124. fastpathTV.DecMapIntfUint16V(v, false, d)
  13125. case *map[interface{}]uint16:
  13126. if v2, changed2 := fastpathTV.DecMapIntfUint16V(*v, true, d); changed2 {
  13127. *v = v2
  13128. }
  13129. case map[interface{}]uint32:
  13130. fastpathTV.DecMapIntfUint32V(v, false, d)
  13131. case *map[interface{}]uint32:
  13132. if v2, changed2 := fastpathTV.DecMapIntfUint32V(*v, true, d); changed2 {
  13133. *v = v2
  13134. }
  13135. case map[interface{}]uint64:
  13136. fastpathTV.DecMapIntfUint64V(v, false, d)
  13137. case *map[interface{}]uint64:
  13138. if v2, changed2 := fastpathTV.DecMapIntfUint64V(*v, true, d); changed2 {
  13139. *v = v2
  13140. }
  13141. case map[interface{}]uintptr:
  13142. fastpathTV.DecMapIntfUintptrV(v, false, d)
  13143. case *map[interface{}]uintptr:
  13144. if v2, changed2 := fastpathTV.DecMapIntfUintptrV(*v, true, d); changed2 {
  13145. *v = v2
  13146. }
  13147. case map[interface{}]int:
  13148. fastpathTV.DecMapIntfIntV(v, false, d)
  13149. case *map[interface{}]int:
  13150. if v2, changed2 := fastpathTV.DecMapIntfIntV(*v, true, d); changed2 {
  13151. *v = v2
  13152. }
  13153. case map[interface{}]int8:
  13154. fastpathTV.DecMapIntfInt8V(v, false, d)
  13155. case *map[interface{}]int8:
  13156. if v2, changed2 := fastpathTV.DecMapIntfInt8V(*v, true, d); changed2 {
  13157. *v = v2
  13158. }
  13159. case map[interface{}]int16:
  13160. fastpathTV.DecMapIntfInt16V(v, false, d)
  13161. case *map[interface{}]int16:
  13162. if v2, changed2 := fastpathTV.DecMapIntfInt16V(*v, true, d); changed2 {
  13163. *v = v2
  13164. }
  13165. case map[interface{}]int32:
  13166. fastpathTV.DecMapIntfInt32V(v, false, d)
  13167. case *map[interface{}]int32:
  13168. if v2, changed2 := fastpathTV.DecMapIntfInt32V(*v, true, d); changed2 {
  13169. *v = v2
  13170. }
  13171. case map[interface{}]int64:
  13172. fastpathTV.DecMapIntfInt64V(v, false, d)
  13173. case *map[interface{}]int64:
  13174. if v2, changed2 := fastpathTV.DecMapIntfInt64V(*v, true, d); changed2 {
  13175. *v = v2
  13176. }
  13177. case map[interface{}]float32:
  13178. fastpathTV.DecMapIntfFloat32V(v, false, d)
  13179. case *map[interface{}]float32:
  13180. if v2, changed2 := fastpathTV.DecMapIntfFloat32V(*v, true, d); changed2 {
  13181. *v = v2
  13182. }
  13183. case map[interface{}]float64:
  13184. fastpathTV.DecMapIntfFloat64V(v, false, d)
  13185. case *map[interface{}]float64:
  13186. if v2, changed2 := fastpathTV.DecMapIntfFloat64V(*v, true, d); changed2 {
  13187. *v = v2
  13188. }
  13189. case map[interface{}]bool:
  13190. fastpathTV.DecMapIntfBoolV(v, false, d)
  13191. case *map[interface{}]bool:
  13192. if v2, changed2 := fastpathTV.DecMapIntfBoolV(*v, true, d); changed2 {
  13193. *v = v2
  13194. }
  13195. case []string:
  13196. fastpathTV.DecSliceStringV(v, false, d)
  13197. case *[]string:
  13198. if v2, changed2 := fastpathTV.DecSliceStringV(*v, true, d); changed2 {
  13199. *v = v2
  13200. }
  13201. case map[string]interface{}:
  13202. fastpathTV.DecMapStringIntfV(v, false, d)
  13203. case *map[string]interface{}:
  13204. if v2, changed2 := fastpathTV.DecMapStringIntfV(*v, true, d); changed2 {
  13205. *v = v2
  13206. }
  13207. case map[string]string:
  13208. fastpathTV.DecMapStringStringV(v, false, d)
  13209. case *map[string]string:
  13210. if v2, changed2 := fastpathTV.DecMapStringStringV(*v, true, d); changed2 {
  13211. *v = v2
  13212. }
  13213. case map[string]uint:
  13214. fastpathTV.DecMapStringUintV(v, false, d)
  13215. case *map[string]uint:
  13216. if v2, changed2 := fastpathTV.DecMapStringUintV(*v, true, d); changed2 {
  13217. *v = v2
  13218. }
  13219. case map[string]uint8:
  13220. fastpathTV.DecMapStringUint8V(v, false, d)
  13221. case *map[string]uint8:
  13222. if v2, changed2 := fastpathTV.DecMapStringUint8V(*v, true, d); changed2 {
  13223. *v = v2
  13224. }
  13225. case map[string]uint16:
  13226. fastpathTV.DecMapStringUint16V(v, false, d)
  13227. case *map[string]uint16:
  13228. if v2, changed2 := fastpathTV.DecMapStringUint16V(*v, true, d); changed2 {
  13229. *v = v2
  13230. }
  13231. case map[string]uint32:
  13232. fastpathTV.DecMapStringUint32V(v, false, d)
  13233. case *map[string]uint32:
  13234. if v2, changed2 := fastpathTV.DecMapStringUint32V(*v, true, d); changed2 {
  13235. *v = v2
  13236. }
  13237. case map[string]uint64:
  13238. fastpathTV.DecMapStringUint64V(v, false, d)
  13239. case *map[string]uint64:
  13240. if v2, changed2 := fastpathTV.DecMapStringUint64V(*v, true, d); changed2 {
  13241. *v = v2
  13242. }
  13243. case map[string]uintptr:
  13244. fastpathTV.DecMapStringUintptrV(v, false, d)
  13245. case *map[string]uintptr:
  13246. if v2, changed2 := fastpathTV.DecMapStringUintptrV(*v, true, d); changed2 {
  13247. *v = v2
  13248. }
  13249. case map[string]int:
  13250. fastpathTV.DecMapStringIntV(v, false, d)
  13251. case *map[string]int:
  13252. if v2, changed2 := fastpathTV.DecMapStringIntV(*v, true, d); changed2 {
  13253. *v = v2
  13254. }
  13255. case map[string]int8:
  13256. fastpathTV.DecMapStringInt8V(v, false, d)
  13257. case *map[string]int8:
  13258. if v2, changed2 := fastpathTV.DecMapStringInt8V(*v, true, d); changed2 {
  13259. *v = v2
  13260. }
  13261. case map[string]int16:
  13262. fastpathTV.DecMapStringInt16V(v, false, d)
  13263. case *map[string]int16:
  13264. if v2, changed2 := fastpathTV.DecMapStringInt16V(*v, true, d); changed2 {
  13265. *v = v2
  13266. }
  13267. case map[string]int32:
  13268. fastpathTV.DecMapStringInt32V(v, false, d)
  13269. case *map[string]int32:
  13270. if v2, changed2 := fastpathTV.DecMapStringInt32V(*v, true, d); changed2 {
  13271. *v = v2
  13272. }
  13273. case map[string]int64:
  13274. fastpathTV.DecMapStringInt64V(v, false, d)
  13275. case *map[string]int64:
  13276. if v2, changed2 := fastpathTV.DecMapStringInt64V(*v, true, d); changed2 {
  13277. *v = v2
  13278. }
  13279. case map[string]float32:
  13280. fastpathTV.DecMapStringFloat32V(v, false, d)
  13281. case *map[string]float32:
  13282. if v2, changed2 := fastpathTV.DecMapStringFloat32V(*v, true, d); changed2 {
  13283. *v = v2
  13284. }
  13285. case map[string]float64:
  13286. fastpathTV.DecMapStringFloat64V(v, false, d)
  13287. case *map[string]float64:
  13288. if v2, changed2 := fastpathTV.DecMapStringFloat64V(*v, true, d); changed2 {
  13289. *v = v2
  13290. }
  13291. case map[string]bool:
  13292. fastpathTV.DecMapStringBoolV(v, false, d)
  13293. case *map[string]bool:
  13294. if v2, changed2 := fastpathTV.DecMapStringBoolV(*v, true, d); changed2 {
  13295. *v = v2
  13296. }
  13297. case []float32:
  13298. fastpathTV.DecSliceFloat32V(v, false, d)
  13299. case *[]float32:
  13300. if v2, changed2 := fastpathTV.DecSliceFloat32V(*v, true, d); changed2 {
  13301. *v = v2
  13302. }
  13303. case map[float32]interface{}:
  13304. fastpathTV.DecMapFloat32IntfV(v, false, d)
  13305. case *map[float32]interface{}:
  13306. if v2, changed2 := fastpathTV.DecMapFloat32IntfV(*v, true, d); changed2 {
  13307. *v = v2
  13308. }
  13309. case map[float32]string:
  13310. fastpathTV.DecMapFloat32StringV(v, false, d)
  13311. case *map[float32]string:
  13312. if v2, changed2 := fastpathTV.DecMapFloat32StringV(*v, true, d); changed2 {
  13313. *v = v2
  13314. }
  13315. case map[float32]uint:
  13316. fastpathTV.DecMapFloat32UintV(v, false, d)
  13317. case *map[float32]uint:
  13318. if v2, changed2 := fastpathTV.DecMapFloat32UintV(*v, true, d); changed2 {
  13319. *v = v2
  13320. }
  13321. case map[float32]uint8:
  13322. fastpathTV.DecMapFloat32Uint8V(v, false, d)
  13323. case *map[float32]uint8:
  13324. if v2, changed2 := fastpathTV.DecMapFloat32Uint8V(*v, true, d); changed2 {
  13325. *v = v2
  13326. }
  13327. case map[float32]uint16:
  13328. fastpathTV.DecMapFloat32Uint16V(v, false, d)
  13329. case *map[float32]uint16:
  13330. if v2, changed2 := fastpathTV.DecMapFloat32Uint16V(*v, true, d); changed2 {
  13331. *v = v2
  13332. }
  13333. case map[float32]uint32:
  13334. fastpathTV.DecMapFloat32Uint32V(v, false, d)
  13335. case *map[float32]uint32:
  13336. if v2, changed2 := fastpathTV.DecMapFloat32Uint32V(*v, true, d); changed2 {
  13337. *v = v2
  13338. }
  13339. case map[float32]uint64:
  13340. fastpathTV.DecMapFloat32Uint64V(v, false, d)
  13341. case *map[float32]uint64:
  13342. if v2, changed2 := fastpathTV.DecMapFloat32Uint64V(*v, true, d); changed2 {
  13343. *v = v2
  13344. }
  13345. case map[float32]uintptr:
  13346. fastpathTV.DecMapFloat32UintptrV(v, false, d)
  13347. case *map[float32]uintptr:
  13348. if v2, changed2 := fastpathTV.DecMapFloat32UintptrV(*v, true, d); changed2 {
  13349. *v = v2
  13350. }
  13351. case map[float32]int:
  13352. fastpathTV.DecMapFloat32IntV(v, false, d)
  13353. case *map[float32]int:
  13354. if v2, changed2 := fastpathTV.DecMapFloat32IntV(*v, true, d); changed2 {
  13355. *v = v2
  13356. }
  13357. case map[float32]int8:
  13358. fastpathTV.DecMapFloat32Int8V(v, false, d)
  13359. case *map[float32]int8:
  13360. if v2, changed2 := fastpathTV.DecMapFloat32Int8V(*v, true, d); changed2 {
  13361. *v = v2
  13362. }
  13363. case map[float32]int16:
  13364. fastpathTV.DecMapFloat32Int16V(v, false, d)
  13365. case *map[float32]int16:
  13366. if v2, changed2 := fastpathTV.DecMapFloat32Int16V(*v, true, d); changed2 {
  13367. *v = v2
  13368. }
  13369. case map[float32]int32:
  13370. fastpathTV.DecMapFloat32Int32V(v, false, d)
  13371. case *map[float32]int32:
  13372. if v2, changed2 := fastpathTV.DecMapFloat32Int32V(*v, true, d); changed2 {
  13373. *v = v2
  13374. }
  13375. case map[float32]int64:
  13376. fastpathTV.DecMapFloat32Int64V(v, false, d)
  13377. case *map[float32]int64:
  13378. if v2, changed2 := fastpathTV.DecMapFloat32Int64V(*v, true, d); changed2 {
  13379. *v = v2
  13380. }
  13381. case map[float32]float32:
  13382. fastpathTV.DecMapFloat32Float32V(v, false, d)
  13383. case *map[float32]float32:
  13384. if v2, changed2 := fastpathTV.DecMapFloat32Float32V(*v, true, d); changed2 {
  13385. *v = v2
  13386. }
  13387. case map[float32]float64:
  13388. fastpathTV.DecMapFloat32Float64V(v, false, d)
  13389. case *map[float32]float64:
  13390. if v2, changed2 := fastpathTV.DecMapFloat32Float64V(*v, true, d); changed2 {
  13391. *v = v2
  13392. }
  13393. case map[float32]bool:
  13394. fastpathTV.DecMapFloat32BoolV(v, false, d)
  13395. case *map[float32]bool:
  13396. if v2, changed2 := fastpathTV.DecMapFloat32BoolV(*v, true, d); changed2 {
  13397. *v = v2
  13398. }
  13399. case []float64:
  13400. fastpathTV.DecSliceFloat64V(v, false, d)
  13401. case *[]float64:
  13402. if v2, changed2 := fastpathTV.DecSliceFloat64V(*v, true, d); changed2 {
  13403. *v = v2
  13404. }
  13405. case map[float64]interface{}:
  13406. fastpathTV.DecMapFloat64IntfV(v, false, d)
  13407. case *map[float64]interface{}:
  13408. if v2, changed2 := fastpathTV.DecMapFloat64IntfV(*v, true, d); changed2 {
  13409. *v = v2
  13410. }
  13411. case map[float64]string:
  13412. fastpathTV.DecMapFloat64StringV(v, false, d)
  13413. case *map[float64]string:
  13414. if v2, changed2 := fastpathTV.DecMapFloat64StringV(*v, true, d); changed2 {
  13415. *v = v2
  13416. }
  13417. case map[float64]uint:
  13418. fastpathTV.DecMapFloat64UintV(v, false, d)
  13419. case *map[float64]uint:
  13420. if v2, changed2 := fastpathTV.DecMapFloat64UintV(*v, true, d); changed2 {
  13421. *v = v2
  13422. }
  13423. case map[float64]uint8:
  13424. fastpathTV.DecMapFloat64Uint8V(v, false, d)
  13425. case *map[float64]uint8:
  13426. if v2, changed2 := fastpathTV.DecMapFloat64Uint8V(*v, true, d); changed2 {
  13427. *v = v2
  13428. }
  13429. case map[float64]uint16:
  13430. fastpathTV.DecMapFloat64Uint16V(v, false, d)
  13431. case *map[float64]uint16:
  13432. if v2, changed2 := fastpathTV.DecMapFloat64Uint16V(*v, true, d); changed2 {
  13433. *v = v2
  13434. }
  13435. case map[float64]uint32:
  13436. fastpathTV.DecMapFloat64Uint32V(v, false, d)
  13437. case *map[float64]uint32:
  13438. if v2, changed2 := fastpathTV.DecMapFloat64Uint32V(*v, true, d); changed2 {
  13439. *v = v2
  13440. }
  13441. case map[float64]uint64:
  13442. fastpathTV.DecMapFloat64Uint64V(v, false, d)
  13443. case *map[float64]uint64:
  13444. if v2, changed2 := fastpathTV.DecMapFloat64Uint64V(*v, true, d); changed2 {
  13445. *v = v2
  13446. }
  13447. case map[float64]uintptr:
  13448. fastpathTV.DecMapFloat64UintptrV(v, false, d)
  13449. case *map[float64]uintptr:
  13450. if v2, changed2 := fastpathTV.DecMapFloat64UintptrV(*v, true, d); changed2 {
  13451. *v = v2
  13452. }
  13453. case map[float64]int:
  13454. fastpathTV.DecMapFloat64IntV(v, false, d)
  13455. case *map[float64]int:
  13456. if v2, changed2 := fastpathTV.DecMapFloat64IntV(*v, true, d); changed2 {
  13457. *v = v2
  13458. }
  13459. case map[float64]int8:
  13460. fastpathTV.DecMapFloat64Int8V(v, false, d)
  13461. case *map[float64]int8:
  13462. if v2, changed2 := fastpathTV.DecMapFloat64Int8V(*v, true, d); changed2 {
  13463. *v = v2
  13464. }
  13465. case map[float64]int16:
  13466. fastpathTV.DecMapFloat64Int16V(v, false, d)
  13467. case *map[float64]int16:
  13468. if v2, changed2 := fastpathTV.DecMapFloat64Int16V(*v, true, d); changed2 {
  13469. *v = v2
  13470. }
  13471. case map[float64]int32:
  13472. fastpathTV.DecMapFloat64Int32V(v, false, d)
  13473. case *map[float64]int32:
  13474. if v2, changed2 := fastpathTV.DecMapFloat64Int32V(*v, true, d); changed2 {
  13475. *v = v2
  13476. }
  13477. case map[float64]int64:
  13478. fastpathTV.DecMapFloat64Int64V(v, false, d)
  13479. case *map[float64]int64:
  13480. if v2, changed2 := fastpathTV.DecMapFloat64Int64V(*v, true, d); changed2 {
  13481. *v = v2
  13482. }
  13483. case map[float64]float32:
  13484. fastpathTV.DecMapFloat64Float32V(v, false, d)
  13485. case *map[float64]float32:
  13486. if v2, changed2 := fastpathTV.DecMapFloat64Float32V(*v, true, d); changed2 {
  13487. *v = v2
  13488. }
  13489. case map[float64]float64:
  13490. fastpathTV.DecMapFloat64Float64V(v, false, d)
  13491. case *map[float64]float64:
  13492. if v2, changed2 := fastpathTV.DecMapFloat64Float64V(*v, true, d); changed2 {
  13493. *v = v2
  13494. }
  13495. case map[float64]bool:
  13496. fastpathTV.DecMapFloat64BoolV(v, false, d)
  13497. case *map[float64]bool:
  13498. if v2, changed2 := fastpathTV.DecMapFloat64BoolV(*v, true, d); changed2 {
  13499. *v = v2
  13500. }
  13501. case []uint:
  13502. fastpathTV.DecSliceUintV(v, false, d)
  13503. case *[]uint:
  13504. if v2, changed2 := fastpathTV.DecSliceUintV(*v, true, d); changed2 {
  13505. *v = v2
  13506. }
  13507. case map[uint]interface{}:
  13508. fastpathTV.DecMapUintIntfV(v, false, d)
  13509. case *map[uint]interface{}:
  13510. if v2, changed2 := fastpathTV.DecMapUintIntfV(*v, true, d); changed2 {
  13511. *v = v2
  13512. }
  13513. case map[uint]string:
  13514. fastpathTV.DecMapUintStringV(v, false, d)
  13515. case *map[uint]string:
  13516. if v2, changed2 := fastpathTV.DecMapUintStringV(*v, true, d); changed2 {
  13517. *v = v2
  13518. }
  13519. case map[uint]uint:
  13520. fastpathTV.DecMapUintUintV(v, false, d)
  13521. case *map[uint]uint:
  13522. if v2, changed2 := fastpathTV.DecMapUintUintV(*v, true, d); changed2 {
  13523. *v = v2
  13524. }
  13525. case map[uint]uint8:
  13526. fastpathTV.DecMapUintUint8V(v, false, d)
  13527. case *map[uint]uint8:
  13528. if v2, changed2 := fastpathTV.DecMapUintUint8V(*v, true, d); changed2 {
  13529. *v = v2
  13530. }
  13531. case map[uint]uint16:
  13532. fastpathTV.DecMapUintUint16V(v, false, d)
  13533. case *map[uint]uint16:
  13534. if v2, changed2 := fastpathTV.DecMapUintUint16V(*v, true, d); changed2 {
  13535. *v = v2
  13536. }
  13537. case map[uint]uint32:
  13538. fastpathTV.DecMapUintUint32V(v, false, d)
  13539. case *map[uint]uint32:
  13540. if v2, changed2 := fastpathTV.DecMapUintUint32V(*v, true, d); changed2 {
  13541. *v = v2
  13542. }
  13543. case map[uint]uint64:
  13544. fastpathTV.DecMapUintUint64V(v, false, d)
  13545. case *map[uint]uint64:
  13546. if v2, changed2 := fastpathTV.DecMapUintUint64V(*v, true, d); changed2 {
  13547. *v = v2
  13548. }
  13549. case map[uint]uintptr:
  13550. fastpathTV.DecMapUintUintptrV(v, false, d)
  13551. case *map[uint]uintptr:
  13552. if v2, changed2 := fastpathTV.DecMapUintUintptrV(*v, true, d); changed2 {
  13553. *v = v2
  13554. }
  13555. case map[uint]int:
  13556. fastpathTV.DecMapUintIntV(v, false, d)
  13557. case *map[uint]int:
  13558. if v2, changed2 := fastpathTV.DecMapUintIntV(*v, true, d); changed2 {
  13559. *v = v2
  13560. }
  13561. case map[uint]int8:
  13562. fastpathTV.DecMapUintInt8V(v, false, d)
  13563. case *map[uint]int8:
  13564. if v2, changed2 := fastpathTV.DecMapUintInt8V(*v, true, d); changed2 {
  13565. *v = v2
  13566. }
  13567. case map[uint]int16:
  13568. fastpathTV.DecMapUintInt16V(v, false, d)
  13569. case *map[uint]int16:
  13570. if v2, changed2 := fastpathTV.DecMapUintInt16V(*v, true, d); changed2 {
  13571. *v = v2
  13572. }
  13573. case map[uint]int32:
  13574. fastpathTV.DecMapUintInt32V(v, false, d)
  13575. case *map[uint]int32:
  13576. if v2, changed2 := fastpathTV.DecMapUintInt32V(*v, true, d); changed2 {
  13577. *v = v2
  13578. }
  13579. case map[uint]int64:
  13580. fastpathTV.DecMapUintInt64V(v, false, d)
  13581. case *map[uint]int64:
  13582. if v2, changed2 := fastpathTV.DecMapUintInt64V(*v, true, d); changed2 {
  13583. *v = v2
  13584. }
  13585. case map[uint]float32:
  13586. fastpathTV.DecMapUintFloat32V(v, false, d)
  13587. case *map[uint]float32:
  13588. if v2, changed2 := fastpathTV.DecMapUintFloat32V(*v, true, d); changed2 {
  13589. *v = v2
  13590. }
  13591. case map[uint]float64:
  13592. fastpathTV.DecMapUintFloat64V(v, false, d)
  13593. case *map[uint]float64:
  13594. if v2, changed2 := fastpathTV.DecMapUintFloat64V(*v, true, d); changed2 {
  13595. *v = v2
  13596. }
  13597. case map[uint]bool:
  13598. fastpathTV.DecMapUintBoolV(v, false, d)
  13599. case *map[uint]bool:
  13600. if v2, changed2 := fastpathTV.DecMapUintBoolV(*v, true, d); changed2 {
  13601. *v = v2
  13602. }
  13603. case map[uint8]interface{}:
  13604. fastpathTV.DecMapUint8IntfV(v, false, d)
  13605. case *map[uint8]interface{}:
  13606. if v2, changed2 := fastpathTV.DecMapUint8IntfV(*v, true, d); changed2 {
  13607. *v = v2
  13608. }
  13609. case map[uint8]string:
  13610. fastpathTV.DecMapUint8StringV(v, false, d)
  13611. case *map[uint8]string:
  13612. if v2, changed2 := fastpathTV.DecMapUint8StringV(*v, true, d); changed2 {
  13613. *v = v2
  13614. }
  13615. case map[uint8]uint:
  13616. fastpathTV.DecMapUint8UintV(v, false, d)
  13617. case *map[uint8]uint:
  13618. if v2, changed2 := fastpathTV.DecMapUint8UintV(*v, true, d); changed2 {
  13619. *v = v2
  13620. }
  13621. case map[uint8]uint8:
  13622. fastpathTV.DecMapUint8Uint8V(v, false, d)
  13623. case *map[uint8]uint8:
  13624. if v2, changed2 := fastpathTV.DecMapUint8Uint8V(*v, true, d); changed2 {
  13625. *v = v2
  13626. }
  13627. case map[uint8]uint16:
  13628. fastpathTV.DecMapUint8Uint16V(v, false, d)
  13629. case *map[uint8]uint16:
  13630. if v2, changed2 := fastpathTV.DecMapUint8Uint16V(*v, true, d); changed2 {
  13631. *v = v2
  13632. }
  13633. case map[uint8]uint32:
  13634. fastpathTV.DecMapUint8Uint32V(v, false, d)
  13635. case *map[uint8]uint32:
  13636. if v2, changed2 := fastpathTV.DecMapUint8Uint32V(*v, true, d); changed2 {
  13637. *v = v2
  13638. }
  13639. case map[uint8]uint64:
  13640. fastpathTV.DecMapUint8Uint64V(v, false, d)
  13641. case *map[uint8]uint64:
  13642. if v2, changed2 := fastpathTV.DecMapUint8Uint64V(*v, true, d); changed2 {
  13643. *v = v2
  13644. }
  13645. case map[uint8]uintptr:
  13646. fastpathTV.DecMapUint8UintptrV(v, false, d)
  13647. case *map[uint8]uintptr:
  13648. if v2, changed2 := fastpathTV.DecMapUint8UintptrV(*v, true, d); changed2 {
  13649. *v = v2
  13650. }
  13651. case map[uint8]int:
  13652. fastpathTV.DecMapUint8IntV(v, false, d)
  13653. case *map[uint8]int:
  13654. if v2, changed2 := fastpathTV.DecMapUint8IntV(*v, true, d); changed2 {
  13655. *v = v2
  13656. }
  13657. case map[uint8]int8:
  13658. fastpathTV.DecMapUint8Int8V(v, false, d)
  13659. case *map[uint8]int8:
  13660. if v2, changed2 := fastpathTV.DecMapUint8Int8V(*v, true, d); changed2 {
  13661. *v = v2
  13662. }
  13663. case map[uint8]int16:
  13664. fastpathTV.DecMapUint8Int16V(v, false, d)
  13665. case *map[uint8]int16:
  13666. if v2, changed2 := fastpathTV.DecMapUint8Int16V(*v, true, d); changed2 {
  13667. *v = v2
  13668. }
  13669. case map[uint8]int32:
  13670. fastpathTV.DecMapUint8Int32V(v, false, d)
  13671. case *map[uint8]int32:
  13672. if v2, changed2 := fastpathTV.DecMapUint8Int32V(*v, true, d); changed2 {
  13673. *v = v2
  13674. }
  13675. case map[uint8]int64:
  13676. fastpathTV.DecMapUint8Int64V(v, false, d)
  13677. case *map[uint8]int64:
  13678. if v2, changed2 := fastpathTV.DecMapUint8Int64V(*v, true, d); changed2 {
  13679. *v = v2
  13680. }
  13681. case map[uint8]float32:
  13682. fastpathTV.DecMapUint8Float32V(v, false, d)
  13683. case *map[uint8]float32:
  13684. if v2, changed2 := fastpathTV.DecMapUint8Float32V(*v, true, d); changed2 {
  13685. *v = v2
  13686. }
  13687. case map[uint8]float64:
  13688. fastpathTV.DecMapUint8Float64V(v, false, d)
  13689. case *map[uint8]float64:
  13690. if v2, changed2 := fastpathTV.DecMapUint8Float64V(*v, true, d); changed2 {
  13691. *v = v2
  13692. }
  13693. case map[uint8]bool:
  13694. fastpathTV.DecMapUint8BoolV(v, false, d)
  13695. case *map[uint8]bool:
  13696. if v2, changed2 := fastpathTV.DecMapUint8BoolV(*v, true, d); changed2 {
  13697. *v = v2
  13698. }
  13699. case []uint16:
  13700. fastpathTV.DecSliceUint16V(v, false, d)
  13701. case *[]uint16:
  13702. if v2, changed2 := fastpathTV.DecSliceUint16V(*v, true, d); changed2 {
  13703. *v = v2
  13704. }
  13705. case map[uint16]interface{}:
  13706. fastpathTV.DecMapUint16IntfV(v, false, d)
  13707. case *map[uint16]interface{}:
  13708. if v2, changed2 := fastpathTV.DecMapUint16IntfV(*v, true, d); changed2 {
  13709. *v = v2
  13710. }
  13711. case map[uint16]string:
  13712. fastpathTV.DecMapUint16StringV(v, false, d)
  13713. case *map[uint16]string:
  13714. if v2, changed2 := fastpathTV.DecMapUint16StringV(*v, true, d); changed2 {
  13715. *v = v2
  13716. }
  13717. case map[uint16]uint:
  13718. fastpathTV.DecMapUint16UintV(v, false, d)
  13719. case *map[uint16]uint:
  13720. if v2, changed2 := fastpathTV.DecMapUint16UintV(*v, true, d); changed2 {
  13721. *v = v2
  13722. }
  13723. case map[uint16]uint8:
  13724. fastpathTV.DecMapUint16Uint8V(v, false, d)
  13725. case *map[uint16]uint8:
  13726. if v2, changed2 := fastpathTV.DecMapUint16Uint8V(*v, true, d); changed2 {
  13727. *v = v2
  13728. }
  13729. case map[uint16]uint16:
  13730. fastpathTV.DecMapUint16Uint16V(v, false, d)
  13731. case *map[uint16]uint16:
  13732. if v2, changed2 := fastpathTV.DecMapUint16Uint16V(*v, true, d); changed2 {
  13733. *v = v2
  13734. }
  13735. case map[uint16]uint32:
  13736. fastpathTV.DecMapUint16Uint32V(v, false, d)
  13737. case *map[uint16]uint32:
  13738. if v2, changed2 := fastpathTV.DecMapUint16Uint32V(*v, true, d); changed2 {
  13739. *v = v2
  13740. }
  13741. case map[uint16]uint64:
  13742. fastpathTV.DecMapUint16Uint64V(v, false, d)
  13743. case *map[uint16]uint64:
  13744. if v2, changed2 := fastpathTV.DecMapUint16Uint64V(*v, true, d); changed2 {
  13745. *v = v2
  13746. }
  13747. case map[uint16]uintptr:
  13748. fastpathTV.DecMapUint16UintptrV(v, false, d)
  13749. case *map[uint16]uintptr:
  13750. if v2, changed2 := fastpathTV.DecMapUint16UintptrV(*v, true, d); changed2 {
  13751. *v = v2
  13752. }
  13753. case map[uint16]int:
  13754. fastpathTV.DecMapUint16IntV(v, false, d)
  13755. case *map[uint16]int:
  13756. if v2, changed2 := fastpathTV.DecMapUint16IntV(*v, true, d); changed2 {
  13757. *v = v2
  13758. }
  13759. case map[uint16]int8:
  13760. fastpathTV.DecMapUint16Int8V(v, false, d)
  13761. case *map[uint16]int8:
  13762. if v2, changed2 := fastpathTV.DecMapUint16Int8V(*v, true, d); changed2 {
  13763. *v = v2
  13764. }
  13765. case map[uint16]int16:
  13766. fastpathTV.DecMapUint16Int16V(v, false, d)
  13767. case *map[uint16]int16:
  13768. if v2, changed2 := fastpathTV.DecMapUint16Int16V(*v, true, d); changed2 {
  13769. *v = v2
  13770. }
  13771. case map[uint16]int32:
  13772. fastpathTV.DecMapUint16Int32V(v, false, d)
  13773. case *map[uint16]int32:
  13774. if v2, changed2 := fastpathTV.DecMapUint16Int32V(*v, true, d); changed2 {
  13775. *v = v2
  13776. }
  13777. case map[uint16]int64:
  13778. fastpathTV.DecMapUint16Int64V(v, false, d)
  13779. case *map[uint16]int64:
  13780. if v2, changed2 := fastpathTV.DecMapUint16Int64V(*v, true, d); changed2 {
  13781. *v = v2
  13782. }
  13783. case map[uint16]float32:
  13784. fastpathTV.DecMapUint16Float32V(v, false, d)
  13785. case *map[uint16]float32:
  13786. if v2, changed2 := fastpathTV.DecMapUint16Float32V(*v, true, d); changed2 {
  13787. *v = v2
  13788. }
  13789. case map[uint16]float64:
  13790. fastpathTV.DecMapUint16Float64V(v, false, d)
  13791. case *map[uint16]float64:
  13792. if v2, changed2 := fastpathTV.DecMapUint16Float64V(*v, true, d); changed2 {
  13793. *v = v2
  13794. }
  13795. case map[uint16]bool:
  13796. fastpathTV.DecMapUint16BoolV(v, false, d)
  13797. case *map[uint16]bool:
  13798. if v2, changed2 := fastpathTV.DecMapUint16BoolV(*v, true, d); changed2 {
  13799. *v = v2
  13800. }
  13801. case []uint32:
  13802. fastpathTV.DecSliceUint32V(v, false, d)
  13803. case *[]uint32:
  13804. if v2, changed2 := fastpathTV.DecSliceUint32V(*v, true, d); changed2 {
  13805. *v = v2
  13806. }
  13807. case map[uint32]interface{}:
  13808. fastpathTV.DecMapUint32IntfV(v, false, d)
  13809. case *map[uint32]interface{}:
  13810. if v2, changed2 := fastpathTV.DecMapUint32IntfV(*v, true, d); changed2 {
  13811. *v = v2
  13812. }
  13813. case map[uint32]string:
  13814. fastpathTV.DecMapUint32StringV(v, false, d)
  13815. case *map[uint32]string:
  13816. if v2, changed2 := fastpathTV.DecMapUint32StringV(*v, true, d); changed2 {
  13817. *v = v2
  13818. }
  13819. case map[uint32]uint:
  13820. fastpathTV.DecMapUint32UintV(v, false, d)
  13821. case *map[uint32]uint:
  13822. if v2, changed2 := fastpathTV.DecMapUint32UintV(*v, true, d); changed2 {
  13823. *v = v2
  13824. }
  13825. case map[uint32]uint8:
  13826. fastpathTV.DecMapUint32Uint8V(v, false, d)
  13827. case *map[uint32]uint8:
  13828. if v2, changed2 := fastpathTV.DecMapUint32Uint8V(*v, true, d); changed2 {
  13829. *v = v2
  13830. }
  13831. case map[uint32]uint16:
  13832. fastpathTV.DecMapUint32Uint16V(v, false, d)
  13833. case *map[uint32]uint16:
  13834. if v2, changed2 := fastpathTV.DecMapUint32Uint16V(*v, true, d); changed2 {
  13835. *v = v2
  13836. }
  13837. case map[uint32]uint32:
  13838. fastpathTV.DecMapUint32Uint32V(v, false, d)
  13839. case *map[uint32]uint32:
  13840. if v2, changed2 := fastpathTV.DecMapUint32Uint32V(*v, true, d); changed2 {
  13841. *v = v2
  13842. }
  13843. case map[uint32]uint64:
  13844. fastpathTV.DecMapUint32Uint64V(v, false, d)
  13845. case *map[uint32]uint64:
  13846. if v2, changed2 := fastpathTV.DecMapUint32Uint64V(*v, true, d); changed2 {
  13847. *v = v2
  13848. }
  13849. case map[uint32]uintptr:
  13850. fastpathTV.DecMapUint32UintptrV(v, false, d)
  13851. case *map[uint32]uintptr:
  13852. if v2, changed2 := fastpathTV.DecMapUint32UintptrV(*v, true, d); changed2 {
  13853. *v = v2
  13854. }
  13855. case map[uint32]int:
  13856. fastpathTV.DecMapUint32IntV(v, false, d)
  13857. case *map[uint32]int:
  13858. if v2, changed2 := fastpathTV.DecMapUint32IntV(*v, true, d); changed2 {
  13859. *v = v2
  13860. }
  13861. case map[uint32]int8:
  13862. fastpathTV.DecMapUint32Int8V(v, false, d)
  13863. case *map[uint32]int8:
  13864. if v2, changed2 := fastpathTV.DecMapUint32Int8V(*v, true, d); changed2 {
  13865. *v = v2
  13866. }
  13867. case map[uint32]int16:
  13868. fastpathTV.DecMapUint32Int16V(v, false, d)
  13869. case *map[uint32]int16:
  13870. if v2, changed2 := fastpathTV.DecMapUint32Int16V(*v, true, d); changed2 {
  13871. *v = v2
  13872. }
  13873. case map[uint32]int32:
  13874. fastpathTV.DecMapUint32Int32V(v, false, d)
  13875. case *map[uint32]int32:
  13876. if v2, changed2 := fastpathTV.DecMapUint32Int32V(*v, true, d); changed2 {
  13877. *v = v2
  13878. }
  13879. case map[uint32]int64:
  13880. fastpathTV.DecMapUint32Int64V(v, false, d)
  13881. case *map[uint32]int64:
  13882. if v2, changed2 := fastpathTV.DecMapUint32Int64V(*v, true, d); changed2 {
  13883. *v = v2
  13884. }
  13885. case map[uint32]float32:
  13886. fastpathTV.DecMapUint32Float32V(v, false, d)
  13887. case *map[uint32]float32:
  13888. if v2, changed2 := fastpathTV.DecMapUint32Float32V(*v, true, d); changed2 {
  13889. *v = v2
  13890. }
  13891. case map[uint32]float64:
  13892. fastpathTV.DecMapUint32Float64V(v, false, d)
  13893. case *map[uint32]float64:
  13894. if v2, changed2 := fastpathTV.DecMapUint32Float64V(*v, true, d); changed2 {
  13895. *v = v2
  13896. }
  13897. case map[uint32]bool:
  13898. fastpathTV.DecMapUint32BoolV(v, false, d)
  13899. case *map[uint32]bool:
  13900. if v2, changed2 := fastpathTV.DecMapUint32BoolV(*v, true, d); changed2 {
  13901. *v = v2
  13902. }
  13903. case []uint64:
  13904. fastpathTV.DecSliceUint64V(v, false, d)
  13905. case *[]uint64:
  13906. if v2, changed2 := fastpathTV.DecSliceUint64V(*v, true, d); changed2 {
  13907. *v = v2
  13908. }
  13909. case map[uint64]interface{}:
  13910. fastpathTV.DecMapUint64IntfV(v, false, d)
  13911. case *map[uint64]interface{}:
  13912. if v2, changed2 := fastpathTV.DecMapUint64IntfV(*v, true, d); changed2 {
  13913. *v = v2
  13914. }
  13915. case map[uint64]string:
  13916. fastpathTV.DecMapUint64StringV(v, false, d)
  13917. case *map[uint64]string:
  13918. if v2, changed2 := fastpathTV.DecMapUint64StringV(*v, true, d); changed2 {
  13919. *v = v2
  13920. }
  13921. case map[uint64]uint:
  13922. fastpathTV.DecMapUint64UintV(v, false, d)
  13923. case *map[uint64]uint:
  13924. if v2, changed2 := fastpathTV.DecMapUint64UintV(*v, true, d); changed2 {
  13925. *v = v2
  13926. }
  13927. case map[uint64]uint8:
  13928. fastpathTV.DecMapUint64Uint8V(v, false, d)
  13929. case *map[uint64]uint8:
  13930. if v2, changed2 := fastpathTV.DecMapUint64Uint8V(*v, true, d); changed2 {
  13931. *v = v2
  13932. }
  13933. case map[uint64]uint16:
  13934. fastpathTV.DecMapUint64Uint16V(v, false, d)
  13935. case *map[uint64]uint16:
  13936. if v2, changed2 := fastpathTV.DecMapUint64Uint16V(*v, true, d); changed2 {
  13937. *v = v2
  13938. }
  13939. case map[uint64]uint32:
  13940. fastpathTV.DecMapUint64Uint32V(v, false, d)
  13941. case *map[uint64]uint32:
  13942. if v2, changed2 := fastpathTV.DecMapUint64Uint32V(*v, true, d); changed2 {
  13943. *v = v2
  13944. }
  13945. case map[uint64]uint64:
  13946. fastpathTV.DecMapUint64Uint64V(v, false, d)
  13947. case *map[uint64]uint64:
  13948. if v2, changed2 := fastpathTV.DecMapUint64Uint64V(*v, true, d); changed2 {
  13949. *v = v2
  13950. }
  13951. case map[uint64]uintptr:
  13952. fastpathTV.DecMapUint64UintptrV(v, false, d)
  13953. case *map[uint64]uintptr:
  13954. if v2, changed2 := fastpathTV.DecMapUint64UintptrV(*v, true, d); changed2 {
  13955. *v = v2
  13956. }
  13957. case map[uint64]int:
  13958. fastpathTV.DecMapUint64IntV(v, false, d)
  13959. case *map[uint64]int:
  13960. if v2, changed2 := fastpathTV.DecMapUint64IntV(*v, true, d); changed2 {
  13961. *v = v2
  13962. }
  13963. case map[uint64]int8:
  13964. fastpathTV.DecMapUint64Int8V(v, false, d)
  13965. case *map[uint64]int8:
  13966. if v2, changed2 := fastpathTV.DecMapUint64Int8V(*v, true, d); changed2 {
  13967. *v = v2
  13968. }
  13969. case map[uint64]int16:
  13970. fastpathTV.DecMapUint64Int16V(v, false, d)
  13971. case *map[uint64]int16:
  13972. if v2, changed2 := fastpathTV.DecMapUint64Int16V(*v, true, d); changed2 {
  13973. *v = v2
  13974. }
  13975. case map[uint64]int32:
  13976. fastpathTV.DecMapUint64Int32V(v, false, d)
  13977. case *map[uint64]int32:
  13978. if v2, changed2 := fastpathTV.DecMapUint64Int32V(*v, true, d); changed2 {
  13979. *v = v2
  13980. }
  13981. case map[uint64]int64:
  13982. fastpathTV.DecMapUint64Int64V(v, false, d)
  13983. case *map[uint64]int64:
  13984. if v2, changed2 := fastpathTV.DecMapUint64Int64V(*v, true, d); changed2 {
  13985. *v = v2
  13986. }
  13987. case map[uint64]float32:
  13988. fastpathTV.DecMapUint64Float32V(v, false, d)
  13989. case *map[uint64]float32:
  13990. if v2, changed2 := fastpathTV.DecMapUint64Float32V(*v, true, d); changed2 {
  13991. *v = v2
  13992. }
  13993. case map[uint64]float64:
  13994. fastpathTV.DecMapUint64Float64V(v, false, d)
  13995. case *map[uint64]float64:
  13996. if v2, changed2 := fastpathTV.DecMapUint64Float64V(*v, true, d); changed2 {
  13997. *v = v2
  13998. }
  13999. case map[uint64]bool:
  14000. fastpathTV.DecMapUint64BoolV(v, false, d)
  14001. case *map[uint64]bool:
  14002. if v2, changed2 := fastpathTV.DecMapUint64BoolV(*v, true, d); changed2 {
  14003. *v = v2
  14004. }
  14005. case []uintptr:
  14006. fastpathTV.DecSliceUintptrV(v, false, d)
  14007. case *[]uintptr:
  14008. if v2, changed2 := fastpathTV.DecSliceUintptrV(*v, true, d); changed2 {
  14009. *v = v2
  14010. }
  14011. case map[uintptr]interface{}:
  14012. fastpathTV.DecMapUintptrIntfV(v, false, d)
  14013. case *map[uintptr]interface{}:
  14014. if v2, changed2 := fastpathTV.DecMapUintptrIntfV(*v, true, d); changed2 {
  14015. *v = v2
  14016. }
  14017. case map[uintptr]string:
  14018. fastpathTV.DecMapUintptrStringV(v, false, d)
  14019. case *map[uintptr]string:
  14020. if v2, changed2 := fastpathTV.DecMapUintptrStringV(*v, true, d); changed2 {
  14021. *v = v2
  14022. }
  14023. case map[uintptr]uint:
  14024. fastpathTV.DecMapUintptrUintV(v, false, d)
  14025. case *map[uintptr]uint:
  14026. if v2, changed2 := fastpathTV.DecMapUintptrUintV(*v, true, d); changed2 {
  14027. *v = v2
  14028. }
  14029. case map[uintptr]uint8:
  14030. fastpathTV.DecMapUintptrUint8V(v, false, d)
  14031. case *map[uintptr]uint8:
  14032. if v2, changed2 := fastpathTV.DecMapUintptrUint8V(*v, true, d); changed2 {
  14033. *v = v2
  14034. }
  14035. case map[uintptr]uint16:
  14036. fastpathTV.DecMapUintptrUint16V(v, false, d)
  14037. case *map[uintptr]uint16:
  14038. if v2, changed2 := fastpathTV.DecMapUintptrUint16V(*v, true, d); changed2 {
  14039. *v = v2
  14040. }
  14041. case map[uintptr]uint32:
  14042. fastpathTV.DecMapUintptrUint32V(v, false, d)
  14043. case *map[uintptr]uint32:
  14044. if v2, changed2 := fastpathTV.DecMapUintptrUint32V(*v, true, d); changed2 {
  14045. *v = v2
  14046. }
  14047. case map[uintptr]uint64:
  14048. fastpathTV.DecMapUintptrUint64V(v, false, d)
  14049. case *map[uintptr]uint64:
  14050. if v2, changed2 := fastpathTV.DecMapUintptrUint64V(*v, true, d); changed2 {
  14051. *v = v2
  14052. }
  14053. case map[uintptr]uintptr:
  14054. fastpathTV.DecMapUintptrUintptrV(v, false, d)
  14055. case *map[uintptr]uintptr:
  14056. if v2, changed2 := fastpathTV.DecMapUintptrUintptrV(*v, true, d); changed2 {
  14057. *v = v2
  14058. }
  14059. case map[uintptr]int:
  14060. fastpathTV.DecMapUintptrIntV(v, false, d)
  14061. case *map[uintptr]int:
  14062. if v2, changed2 := fastpathTV.DecMapUintptrIntV(*v, true, d); changed2 {
  14063. *v = v2
  14064. }
  14065. case map[uintptr]int8:
  14066. fastpathTV.DecMapUintptrInt8V(v, false, d)
  14067. case *map[uintptr]int8:
  14068. if v2, changed2 := fastpathTV.DecMapUintptrInt8V(*v, true, d); changed2 {
  14069. *v = v2
  14070. }
  14071. case map[uintptr]int16:
  14072. fastpathTV.DecMapUintptrInt16V(v, false, d)
  14073. case *map[uintptr]int16:
  14074. if v2, changed2 := fastpathTV.DecMapUintptrInt16V(*v, true, d); changed2 {
  14075. *v = v2
  14076. }
  14077. case map[uintptr]int32:
  14078. fastpathTV.DecMapUintptrInt32V(v, false, d)
  14079. case *map[uintptr]int32:
  14080. if v2, changed2 := fastpathTV.DecMapUintptrInt32V(*v, true, d); changed2 {
  14081. *v = v2
  14082. }
  14083. case map[uintptr]int64:
  14084. fastpathTV.DecMapUintptrInt64V(v, false, d)
  14085. case *map[uintptr]int64:
  14086. if v2, changed2 := fastpathTV.DecMapUintptrInt64V(*v, true, d); changed2 {
  14087. *v = v2
  14088. }
  14089. case map[uintptr]float32:
  14090. fastpathTV.DecMapUintptrFloat32V(v, false, d)
  14091. case *map[uintptr]float32:
  14092. if v2, changed2 := fastpathTV.DecMapUintptrFloat32V(*v, true, d); changed2 {
  14093. *v = v2
  14094. }
  14095. case map[uintptr]float64:
  14096. fastpathTV.DecMapUintptrFloat64V(v, false, d)
  14097. case *map[uintptr]float64:
  14098. if v2, changed2 := fastpathTV.DecMapUintptrFloat64V(*v, true, d); changed2 {
  14099. *v = v2
  14100. }
  14101. case map[uintptr]bool:
  14102. fastpathTV.DecMapUintptrBoolV(v, false, d)
  14103. case *map[uintptr]bool:
  14104. if v2, changed2 := fastpathTV.DecMapUintptrBoolV(*v, true, d); changed2 {
  14105. *v = v2
  14106. }
  14107. case []int:
  14108. fastpathTV.DecSliceIntV(v, false, d)
  14109. case *[]int:
  14110. if v2, changed2 := fastpathTV.DecSliceIntV(*v, true, d); changed2 {
  14111. *v = v2
  14112. }
  14113. case map[int]interface{}:
  14114. fastpathTV.DecMapIntIntfV(v, false, d)
  14115. case *map[int]interface{}:
  14116. if v2, changed2 := fastpathTV.DecMapIntIntfV(*v, true, d); changed2 {
  14117. *v = v2
  14118. }
  14119. case map[int]string:
  14120. fastpathTV.DecMapIntStringV(v, false, d)
  14121. case *map[int]string:
  14122. if v2, changed2 := fastpathTV.DecMapIntStringV(*v, true, d); changed2 {
  14123. *v = v2
  14124. }
  14125. case map[int]uint:
  14126. fastpathTV.DecMapIntUintV(v, false, d)
  14127. case *map[int]uint:
  14128. if v2, changed2 := fastpathTV.DecMapIntUintV(*v, true, d); changed2 {
  14129. *v = v2
  14130. }
  14131. case map[int]uint8:
  14132. fastpathTV.DecMapIntUint8V(v, false, d)
  14133. case *map[int]uint8:
  14134. if v2, changed2 := fastpathTV.DecMapIntUint8V(*v, true, d); changed2 {
  14135. *v = v2
  14136. }
  14137. case map[int]uint16:
  14138. fastpathTV.DecMapIntUint16V(v, false, d)
  14139. case *map[int]uint16:
  14140. if v2, changed2 := fastpathTV.DecMapIntUint16V(*v, true, d); changed2 {
  14141. *v = v2
  14142. }
  14143. case map[int]uint32:
  14144. fastpathTV.DecMapIntUint32V(v, false, d)
  14145. case *map[int]uint32:
  14146. if v2, changed2 := fastpathTV.DecMapIntUint32V(*v, true, d); changed2 {
  14147. *v = v2
  14148. }
  14149. case map[int]uint64:
  14150. fastpathTV.DecMapIntUint64V(v, false, d)
  14151. case *map[int]uint64:
  14152. if v2, changed2 := fastpathTV.DecMapIntUint64V(*v, true, d); changed2 {
  14153. *v = v2
  14154. }
  14155. case map[int]uintptr:
  14156. fastpathTV.DecMapIntUintptrV(v, false, d)
  14157. case *map[int]uintptr:
  14158. if v2, changed2 := fastpathTV.DecMapIntUintptrV(*v, true, d); changed2 {
  14159. *v = v2
  14160. }
  14161. case map[int]int:
  14162. fastpathTV.DecMapIntIntV(v, false, d)
  14163. case *map[int]int:
  14164. if v2, changed2 := fastpathTV.DecMapIntIntV(*v, true, d); changed2 {
  14165. *v = v2
  14166. }
  14167. case map[int]int8:
  14168. fastpathTV.DecMapIntInt8V(v, false, d)
  14169. case *map[int]int8:
  14170. if v2, changed2 := fastpathTV.DecMapIntInt8V(*v, true, d); changed2 {
  14171. *v = v2
  14172. }
  14173. case map[int]int16:
  14174. fastpathTV.DecMapIntInt16V(v, false, d)
  14175. case *map[int]int16:
  14176. if v2, changed2 := fastpathTV.DecMapIntInt16V(*v, true, d); changed2 {
  14177. *v = v2
  14178. }
  14179. case map[int]int32:
  14180. fastpathTV.DecMapIntInt32V(v, false, d)
  14181. case *map[int]int32:
  14182. if v2, changed2 := fastpathTV.DecMapIntInt32V(*v, true, d); changed2 {
  14183. *v = v2
  14184. }
  14185. case map[int]int64:
  14186. fastpathTV.DecMapIntInt64V(v, false, d)
  14187. case *map[int]int64:
  14188. if v2, changed2 := fastpathTV.DecMapIntInt64V(*v, true, d); changed2 {
  14189. *v = v2
  14190. }
  14191. case map[int]float32:
  14192. fastpathTV.DecMapIntFloat32V(v, false, d)
  14193. case *map[int]float32:
  14194. if v2, changed2 := fastpathTV.DecMapIntFloat32V(*v, true, d); changed2 {
  14195. *v = v2
  14196. }
  14197. case map[int]float64:
  14198. fastpathTV.DecMapIntFloat64V(v, false, d)
  14199. case *map[int]float64:
  14200. if v2, changed2 := fastpathTV.DecMapIntFloat64V(*v, true, d); changed2 {
  14201. *v = v2
  14202. }
  14203. case map[int]bool:
  14204. fastpathTV.DecMapIntBoolV(v, false, d)
  14205. case *map[int]bool:
  14206. if v2, changed2 := fastpathTV.DecMapIntBoolV(*v, true, d); changed2 {
  14207. *v = v2
  14208. }
  14209. case []int8:
  14210. fastpathTV.DecSliceInt8V(v, false, d)
  14211. case *[]int8:
  14212. if v2, changed2 := fastpathTV.DecSliceInt8V(*v, true, d); changed2 {
  14213. *v = v2
  14214. }
  14215. case map[int8]interface{}:
  14216. fastpathTV.DecMapInt8IntfV(v, false, d)
  14217. case *map[int8]interface{}:
  14218. if v2, changed2 := fastpathTV.DecMapInt8IntfV(*v, true, d); changed2 {
  14219. *v = v2
  14220. }
  14221. case map[int8]string:
  14222. fastpathTV.DecMapInt8StringV(v, false, d)
  14223. case *map[int8]string:
  14224. if v2, changed2 := fastpathTV.DecMapInt8StringV(*v, true, d); changed2 {
  14225. *v = v2
  14226. }
  14227. case map[int8]uint:
  14228. fastpathTV.DecMapInt8UintV(v, false, d)
  14229. case *map[int8]uint:
  14230. if v2, changed2 := fastpathTV.DecMapInt8UintV(*v, true, d); changed2 {
  14231. *v = v2
  14232. }
  14233. case map[int8]uint8:
  14234. fastpathTV.DecMapInt8Uint8V(v, false, d)
  14235. case *map[int8]uint8:
  14236. if v2, changed2 := fastpathTV.DecMapInt8Uint8V(*v, true, d); changed2 {
  14237. *v = v2
  14238. }
  14239. case map[int8]uint16:
  14240. fastpathTV.DecMapInt8Uint16V(v, false, d)
  14241. case *map[int8]uint16:
  14242. if v2, changed2 := fastpathTV.DecMapInt8Uint16V(*v, true, d); changed2 {
  14243. *v = v2
  14244. }
  14245. case map[int8]uint32:
  14246. fastpathTV.DecMapInt8Uint32V(v, false, d)
  14247. case *map[int8]uint32:
  14248. if v2, changed2 := fastpathTV.DecMapInt8Uint32V(*v, true, d); changed2 {
  14249. *v = v2
  14250. }
  14251. case map[int8]uint64:
  14252. fastpathTV.DecMapInt8Uint64V(v, false, d)
  14253. case *map[int8]uint64:
  14254. if v2, changed2 := fastpathTV.DecMapInt8Uint64V(*v, true, d); changed2 {
  14255. *v = v2
  14256. }
  14257. case map[int8]uintptr:
  14258. fastpathTV.DecMapInt8UintptrV(v, false, d)
  14259. case *map[int8]uintptr:
  14260. if v2, changed2 := fastpathTV.DecMapInt8UintptrV(*v, true, d); changed2 {
  14261. *v = v2
  14262. }
  14263. case map[int8]int:
  14264. fastpathTV.DecMapInt8IntV(v, false, d)
  14265. case *map[int8]int:
  14266. if v2, changed2 := fastpathTV.DecMapInt8IntV(*v, true, d); changed2 {
  14267. *v = v2
  14268. }
  14269. case map[int8]int8:
  14270. fastpathTV.DecMapInt8Int8V(v, false, d)
  14271. case *map[int8]int8:
  14272. if v2, changed2 := fastpathTV.DecMapInt8Int8V(*v, true, d); changed2 {
  14273. *v = v2
  14274. }
  14275. case map[int8]int16:
  14276. fastpathTV.DecMapInt8Int16V(v, false, d)
  14277. case *map[int8]int16:
  14278. if v2, changed2 := fastpathTV.DecMapInt8Int16V(*v, true, d); changed2 {
  14279. *v = v2
  14280. }
  14281. case map[int8]int32:
  14282. fastpathTV.DecMapInt8Int32V(v, false, d)
  14283. case *map[int8]int32:
  14284. if v2, changed2 := fastpathTV.DecMapInt8Int32V(*v, true, d); changed2 {
  14285. *v = v2
  14286. }
  14287. case map[int8]int64:
  14288. fastpathTV.DecMapInt8Int64V(v, false, d)
  14289. case *map[int8]int64:
  14290. if v2, changed2 := fastpathTV.DecMapInt8Int64V(*v, true, d); changed2 {
  14291. *v = v2
  14292. }
  14293. case map[int8]float32:
  14294. fastpathTV.DecMapInt8Float32V(v, false, d)
  14295. case *map[int8]float32:
  14296. if v2, changed2 := fastpathTV.DecMapInt8Float32V(*v, true, d); changed2 {
  14297. *v = v2
  14298. }
  14299. case map[int8]float64:
  14300. fastpathTV.DecMapInt8Float64V(v, false, d)
  14301. case *map[int8]float64:
  14302. if v2, changed2 := fastpathTV.DecMapInt8Float64V(*v, true, d); changed2 {
  14303. *v = v2
  14304. }
  14305. case map[int8]bool:
  14306. fastpathTV.DecMapInt8BoolV(v, false, d)
  14307. case *map[int8]bool:
  14308. if v2, changed2 := fastpathTV.DecMapInt8BoolV(*v, true, d); changed2 {
  14309. *v = v2
  14310. }
  14311. case []int16:
  14312. fastpathTV.DecSliceInt16V(v, false, d)
  14313. case *[]int16:
  14314. if v2, changed2 := fastpathTV.DecSliceInt16V(*v, true, d); changed2 {
  14315. *v = v2
  14316. }
  14317. case map[int16]interface{}:
  14318. fastpathTV.DecMapInt16IntfV(v, false, d)
  14319. case *map[int16]interface{}:
  14320. if v2, changed2 := fastpathTV.DecMapInt16IntfV(*v, true, d); changed2 {
  14321. *v = v2
  14322. }
  14323. case map[int16]string:
  14324. fastpathTV.DecMapInt16StringV(v, false, d)
  14325. case *map[int16]string:
  14326. if v2, changed2 := fastpathTV.DecMapInt16StringV(*v, true, d); changed2 {
  14327. *v = v2
  14328. }
  14329. case map[int16]uint:
  14330. fastpathTV.DecMapInt16UintV(v, false, d)
  14331. case *map[int16]uint:
  14332. if v2, changed2 := fastpathTV.DecMapInt16UintV(*v, true, d); changed2 {
  14333. *v = v2
  14334. }
  14335. case map[int16]uint8:
  14336. fastpathTV.DecMapInt16Uint8V(v, false, d)
  14337. case *map[int16]uint8:
  14338. if v2, changed2 := fastpathTV.DecMapInt16Uint8V(*v, true, d); changed2 {
  14339. *v = v2
  14340. }
  14341. case map[int16]uint16:
  14342. fastpathTV.DecMapInt16Uint16V(v, false, d)
  14343. case *map[int16]uint16:
  14344. if v2, changed2 := fastpathTV.DecMapInt16Uint16V(*v, true, d); changed2 {
  14345. *v = v2
  14346. }
  14347. case map[int16]uint32:
  14348. fastpathTV.DecMapInt16Uint32V(v, false, d)
  14349. case *map[int16]uint32:
  14350. if v2, changed2 := fastpathTV.DecMapInt16Uint32V(*v, true, d); changed2 {
  14351. *v = v2
  14352. }
  14353. case map[int16]uint64:
  14354. fastpathTV.DecMapInt16Uint64V(v, false, d)
  14355. case *map[int16]uint64:
  14356. if v2, changed2 := fastpathTV.DecMapInt16Uint64V(*v, true, d); changed2 {
  14357. *v = v2
  14358. }
  14359. case map[int16]uintptr:
  14360. fastpathTV.DecMapInt16UintptrV(v, false, d)
  14361. case *map[int16]uintptr:
  14362. if v2, changed2 := fastpathTV.DecMapInt16UintptrV(*v, true, d); changed2 {
  14363. *v = v2
  14364. }
  14365. case map[int16]int:
  14366. fastpathTV.DecMapInt16IntV(v, false, d)
  14367. case *map[int16]int:
  14368. if v2, changed2 := fastpathTV.DecMapInt16IntV(*v, true, d); changed2 {
  14369. *v = v2
  14370. }
  14371. case map[int16]int8:
  14372. fastpathTV.DecMapInt16Int8V(v, false, d)
  14373. case *map[int16]int8:
  14374. if v2, changed2 := fastpathTV.DecMapInt16Int8V(*v, true, d); changed2 {
  14375. *v = v2
  14376. }
  14377. case map[int16]int16:
  14378. fastpathTV.DecMapInt16Int16V(v, false, d)
  14379. case *map[int16]int16:
  14380. if v2, changed2 := fastpathTV.DecMapInt16Int16V(*v, true, d); changed2 {
  14381. *v = v2
  14382. }
  14383. case map[int16]int32:
  14384. fastpathTV.DecMapInt16Int32V(v, false, d)
  14385. case *map[int16]int32:
  14386. if v2, changed2 := fastpathTV.DecMapInt16Int32V(*v, true, d); changed2 {
  14387. *v = v2
  14388. }
  14389. case map[int16]int64:
  14390. fastpathTV.DecMapInt16Int64V(v, false, d)
  14391. case *map[int16]int64:
  14392. if v2, changed2 := fastpathTV.DecMapInt16Int64V(*v, true, d); changed2 {
  14393. *v = v2
  14394. }
  14395. case map[int16]float32:
  14396. fastpathTV.DecMapInt16Float32V(v, false, d)
  14397. case *map[int16]float32:
  14398. if v2, changed2 := fastpathTV.DecMapInt16Float32V(*v, true, d); changed2 {
  14399. *v = v2
  14400. }
  14401. case map[int16]float64:
  14402. fastpathTV.DecMapInt16Float64V(v, false, d)
  14403. case *map[int16]float64:
  14404. if v2, changed2 := fastpathTV.DecMapInt16Float64V(*v, true, d); changed2 {
  14405. *v = v2
  14406. }
  14407. case map[int16]bool:
  14408. fastpathTV.DecMapInt16BoolV(v, false, d)
  14409. case *map[int16]bool:
  14410. if v2, changed2 := fastpathTV.DecMapInt16BoolV(*v, true, d); changed2 {
  14411. *v = v2
  14412. }
  14413. case []int32:
  14414. fastpathTV.DecSliceInt32V(v, false, d)
  14415. case *[]int32:
  14416. if v2, changed2 := fastpathTV.DecSliceInt32V(*v, true, d); changed2 {
  14417. *v = v2
  14418. }
  14419. case map[int32]interface{}:
  14420. fastpathTV.DecMapInt32IntfV(v, false, d)
  14421. case *map[int32]interface{}:
  14422. if v2, changed2 := fastpathTV.DecMapInt32IntfV(*v, true, d); changed2 {
  14423. *v = v2
  14424. }
  14425. case map[int32]string:
  14426. fastpathTV.DecMapInt32StringV(v, false, d)
  14427. case *map[int32]string:
  14428. if v2, changed2 := fastpathTV.DecMapInt32StringV(*v, true, d); changed2 {
  14429. *v = v2
  14430. }
  14431. case map[int32]uint:
  14432. fastpathTV.DecMapInt32UintV(v, false, d)
  14433. case *map[int32]uint:
  14434. if v2, changed2 := fastpathTV.DecMapInt32UintV(*v, true, d); changed2 {
  14435. *v = v2
  14436. }
  14437. case map[int32]uint8:
  14438. fastpathTV.DecMapInt32Uint8V(v, false, d)
  14439. case *map[int32]uint8:
  14440. if v2, changed2 := fastpathTV.DecMapInt32Uint8V(*v, true, d); changed2 {
  14441. *v = v2
  14442. }
  14443. case map[int32]uint16:
  14444. fastpathTV.DecMapInt32Uint16V(v, false, d)
  14445. case *map[int32]uint16:
  14446. if v2, changed2 := fastpathTV.DecMapInt32Uint16V(*v, true, d); changed2 {
  14447. *v = v2
  14448. }
  14449. case map[int32]uint32:
  14450. fastpathTV.DecMapInt32Uint32V(v, false, d)
  14451. case *map[int32]uint32:
  14452. if v2, changed2 := fastpathTV.DecMapInt32Uint32V(*v, true, d); changed2 {
  14453. *v = v2
  14454. }
  14455. case map[int32]uint64:
  14456. fastpathTV.DecMapInt32Uint64V(v, false, d)
  14457. case *map[int32]uint64:
  14458. if v2, changed2 := fastpathTV.DecMapInt32Uint64V(*v, true, d); changed2 {
  14459. *v = v2
  14460. }
  14461. case map[int32]uintptr:
  14462. fastpathTV.DecMapInt32UintptrV(v, false, d)
  14463. case *map[int32]uintptr:
  14464. if v2, changed2 := fastpathTV.DecMapInt32UintptrV(*v, true, d); changed2 {
  14465. *v = v2
  14466. }
  14467. case map[int32]int:
  14468. fastpathTV.DecMapInt32IntV(v, false, d)
  14469. case *map[int32]int:
  14470. if v2, changed2 := fastpathTV.DecMapInt32IntV(*v, true, d); changed2 {
  14471. *v = v2
  14472. }
  14473. case map[int32]int8:
  14474. fastpathTV.DecMapInt32Int8V(v, false, d)
  14475. case *map[int32]int8:
  14476. if v2, changed2 := fastpathTV.DecMapInt32Int8V(*v, true, d); changed2 {
  14477. *v = v2
  14478. }
  14479. case map[int32]int16:
  14480. fastpathTV.DecMapInt32Int16V(v, false, d)
  14481. case *map[int32]int16:
  14482. if v2, changed2 := fastpathTV.DecMapInt32Int16V(*v, true, d); changed2 {
  14483. *v = v2
  14484. }
  14485. case map[int32]int32:
  14486. fastpathTV.DecMapInt32Int32V(v, false, d)
  14487. case *map[int32]int32:
  14488. if v2, changed2 := fastpathTV.DecMapInt32Int32V(*v, true, d); changed2 {
  14489. *v = v2
  14490. }
  14491. case map[int32]int64:
  14492. fastpathTV.DecMapInt32Int64V(v, false, d)
  14493. case *map[int32]int64:
  14494. if v2, changed2 := fastpathTV.DecMapInt32Int64V(*v, true, d); changed2 {
  14495. *v = v2
  14496. }
  14497. case map[int32]float32:
  14498. fastpathTV.DecMapInt32Float32V(v, false, d)
  14499. case *map[int32]float32:
  14500. if v2, changed2 := fastpathTV.DecMapInt32Float32V(*v, true, d); changed2 {
  14501. *v = v2
  14502. }
  14503. case map[int32]float64:
  14504. fastpathTV.DecMapInt32Float64V(v, false, d)
  14505. case *map[int32]float64:
  14506. if v2, changed2 := fastpathTV.DecMapInt32Float64V(*v, true, d); changed2 {
  14507. *v = v2
  14508. }
  14509. case map[int32]bool:
  14510. fastpathTV.DecMapInt32BoolV(v, false, d)
  14511. case *map[int32]bool:
  14512. if v2, changed2 := fastpathTV.DecMapInt32BoolV(*v, true, d); changed2 {
  14513. *v = v2
  14514. }
  14515. case []int64:
  14516. fastpathTV.DecSliceInt64V(v, false, d)
  14517. case *[]int64:
  14518. if v2, changed2 := fastpathTV.DecSliceInt64V(*v, true, d); changed2 {
  14519. *v = v2
  14520. }
  14521. case map[int64]interface{}:
  14522. fastpathTV.DecMapInt64IntfV(v, false, d)
  14523. case *map[int64]interface{}:
  14524. if v2, changed2 := fastpathTV.DecMapInt64IntfV(*v, true, d); changed2 {
  14525. *v = v2
  14526. }
  14527. case map[int64]string:
  14528. fastpathTV.DecMapInt64StringV(v, false, d)
  14529. case *map[int64]string:
  14530. if v2, changed2 := fastpathTV.DecMapInt64StringV(*v, true, d); changed2 {
  14531. *v = v2
  14532. }
  14533. case map[int64]uint:
  14534. fastpathTV.DecMapInt64UintV(v, false, d)
  14535. case *map[int64]uint:
  14536. if v2, changed2 := fastpathTV.DecMapInt64UintV(*v, true, d); changed2 {
  14537. *v = v2
  14538. }
  14539. case map[int64]uint8:
  14540. fastpathTV.DecMapInt64Uint8V(v, false, d)
  14541. case *map[int64]uint8:
  14542. if v2, changed2 := fastpathTV.DecMapInt64Uint8V(*v, true, d); changed2 {
  14543. *v = v2
  14544. }
  14545. case map[int64]uint16:
  14546. fastpathTV.DecMapInt64Uint16V(v, false, d)
  14547. case *map[int64]uint16:
  14548. if v2, changed2 := fastpathTV.DecMapInt64Uint16V(*v, true, d); changed2 {
  14549. *v = v2
  14550. }
  14551. case map[int64]uint32:
  14552. fastpathTV.DecMapInt64Uint32V(v, false, d)
  14553. case *map[int64]uint32:
  14554. if v2, changed2 := fastpathTV.DecMapInt64Uint32V(*v, true, d); changed2 {
  14555. *v = v2
  14556. }
  14557. case map[int64]uint64:
  14558. fastpathTV.DecMapInt64Uint64V(v, false, d)
  14559. case *map[int64]uint64:
  14560. if v2, changed2 := fastpathTV.DecMapInt64Uint64V(*v, true, d); changed2 {
  14561. *v = v2
  14562. }
  14563. case map[int64]uintptr:
  14564. fastpathTV.DecMapInt64UintptrV(v, false, d)
  14565. case *map[int64]uintptr:
  14566. if v2, changed2 := fastpathTV.DecMapInt64UintptrV(*v, true, d); changed2 {
  14567. *v = v2
  14568. }
  14569. case map[int64]int:
  14570. fastpathTV.DecMapInt64IntV(v, false, d)
  14571. case *map[int64]int:
  14572. if v2, changed2 := fastpathTV.DecMapInt64IntV(*v, true, d); changed2 {
  14573. *v = v2
  14574. }
  14575. case map[int64]int8:
  14576. fastpathTV.DecMapInt64Int8V(v, false, d)
  14577. case *map[int64]int8:
  14578. if v2, changed2 := fastpathTV.DecMapInt64Int8V(*v, true, d); changed2 {
  14579. *v = v2
  14580. }
  14581. case map[int64]int16:
  14582. fastpathTV.DecMapInt64Int16V(v, false, d)
  14583. case *map[int64]int16:
  14584. if v2, changed2 := fastpathTV.DecMapInt64Int16V(*v, true, d); changed2 {
  14585. *v = v2
  14586. }
  14587. case map[int64]int32:
  14588. fastpathTV.DecMapInt64Int32V(v, false, d)
  14589. case *map[int64]int32:
  14590. if v2, changed2 := fastpathTV.DecMapInt64Int32V(*v, true, d); changed2 {
  14591. *v = v2
  14592. }
  14593. case map[int64]int64:
  14594. fastpathTV.DecMapInt64Int64V(v, false, d)
  14595. case *map[int64]int64:
  14596. if v2, changed2 := fastpathTV.DecMapInt64Int64V(*v, true, d); changed2 {
  14597. *v = v2
  14598. }
  14599. case map[int64]float32:
  14600. fastpathTV.DecMapInt64Float32V(v, false, d)
  14601. case *map[int64]float32:
  14602. if v2, changed2 := fastpathTV.DecMapInt64Float32V(*v, true, d); changed2 {
  14603. *v = v2
  14604. }
  14605. case map[int64]float64:
  14606. fastpathTV.DecMapInt64Float64V(v, false, d)
  14607. case *map[int64]float64:
  14608. if v2, changed2 := fastpathTV.DecMapInt64Float64V(*v, true, d); changed2 {
  14609. *v = v2
  14610. }
  14611. case map[int64]bool:
  14612. fastpathTV.DecMapInt64BoolV(v, false, d)
  14613. case *map[int64]bool:
  14614. if v2, changed2 := fastpathTV.DecMapInt64BoolV(*v, true, d); changed2 {
  14615. *v = v2
  14616. }
  14617. case []bool:
  14618. fastpathTV.DecSliceBoolV(v, false, d)
  14619. case *[]bool:
  14620. if v2, changed2 := fastpathTV.DecSliceBoolV(*v, true, d); changed2 {
  14621. *v = v2
  14622. }
  14623. case map[bool]interface{}:
  14624. fastpathTV.DecMapBoolIntfV(v, false, d)
  14625. case *map[bool]interface{}:
  14626. if v2, changed2 := fastpathTV.DecMapBoolIntfV(*v, true, d); changed2 {
  14627. *v = v2
  14628. }
  14629. case map[bool]string:
  14630. fastpathTV.DecMapBoolStringV(v, false, d)
  14631. case *map[bool]string:
  14632. if v2, changed2 := fastpathTV.DecMapBoolStringV(*v, true, d); changed2 {
  14633. *v = v2
  14634. }
  14635. case map[bool]uint:
  14636. fastpathTV.DecMapBoolUintV(v, false, d)
  14637. case *map[bool]uint:
  14638. if v2, changed2 := fastpathTV.DecMapBoolUintV(*v, true, d); changed2 {
  14639. *v = v2
  14640. }
  14641. case map[bool]uint8:
  14642. fastpathTV.DecMapBoolUint8V(v, false, d)
  14643. case *map[bool]uint8:
  14644. if v2, changed2 := fastpathTV.DecMapBoolUint8V(*v, true, d); changed2 {
  14645. *v = v2
  14646. }
  14647. case map[bool]uint16:
  14648. fastpathTV.DecMapBoolUint16V(v, false, d)
  14649. case *map[bool]uint16:
  14650. if v2, changed2 := fastpathTV.DecMapBoolUint16V(*v, true, d); changed2 {
  14651. *v = v2
  14652. }
  14653. case map[bool]uint32:
  14654. fastpathTV.DecMapBoolUint32V(v, false, d)
  14655. case *map[bool]uint32:
  14656. if v2, changed2 := fastpathTV.DecMapBoolUint32V(*v, true, d); changed2 {
  14657. *v = v2
  14658. }
  14659. case map[bool]uint64:
  14660. fastpathTV.DecMapBoolUint64V(v, false, d)
  14661. case *map[bool]uint64:
  14662. if v2, changed2 := fastpathTV.DecMapBoolUint64V(*v, true, d); changed2 {
  14663. *v = v2
  14664. }
  14665. case map[bool]uintptr:
  14666. fastpathTV.DecMapBoolUintptrV(v, false, d)
  14667. case *map[bool]uintptr:
  14668. if v2, changed2 := fastpathTV.DecMapBoolUintptrV(*v, true, d); changed2 {
  14669. *v = v2
  14670. }
  14671. case map[bool]int:
  14672. fastpathTV.DecMapBoolIntV(v, false, d)
  14673. case *map[bool]int:
  14674. if v2, changed2 := fastpathTV.DecMapBoolIntV(*v, true, d); changed2 {
  14675. *v = v2
  14676. }
  14677. case map[bool]int8:
  14678. fastpathTV.DecMapBoolInt8V(v, false, d)
  14679. case *map[bool]int8:
  14680. if v2, changed2 := fastpathTV.DecMapBoolInt8V(*v, true, d); changed2 {
  14681. *v = v2
  14682. }
  14683. case map[bool]int16:
  14684. fastpathTV.DecMapBoolInt16V(v, false, d)
  14685. case *map[bool]int16:
  14686. if v2, changed2 := fastpathTV.DecMapBoolInt16V(*v, true, d); changed2 {
  14687. *v = v2
  14688. }
  14689. case map[bool]int32:
  14690. fastpathTV.DecMapBoolInt32V(v, false, d)
  14691. case *map[bool]int32:
  14692. if v2, changed2 := fastpathTV.DecMapBoolInt32V(*v, true, d); changed2 {
  14693. *v = v2
  14694. }
  14695. case map[bool]int64:
  14696. fastpathTV.DecMapBoolInt64V(v, false, d)
  14697. case *map[bool]int64:
  14698. if v2, changed2 := fastpathTV.DecMapBoolInt64V(*v, true, d); changed2 {
  14699. *v = v2
  14700. }
  14701. case map[bool]float32:
  14702. fastpathTV.DecMapBoolFloat32V(v, false, d)
  14703. case *map[bool]float32:
  14704. if v2, changed2 := fastpathTV.DecMapBoolFloat32V(*v, true, d); changed2 {
  14705. *v = v2
  14706. }
  14707. case map[bool]float64:
  14708. fastpathTV.DecMapBoolFloat64V(v, false, d)
  14709. case *map[bool]float64:
  14710. if v2, changed2 := fastpathTV.DecMapBoolFloat64V(*v, true, d); changed2 {
  14711. *v = v2
  14712. }
  14713. case map[bool]bool:
  14714. fastpathTV.DecMapBoolBoolV(v, false, d)
  14715. case *map[bool]bool:
  14716. if v2, changed2 := fastpathTV.DecMapBoolBoolV(*v, true, d); changed2 {
  14717. *v = v2
  14718. }
  14719. default:
  14720. _ = v // TODO: workaround https://github.com/golang/go/issues/12927 (remove after go 1.6 release)
  14721. return false
  14722. }
  14723. return true
  14724. }
  14725. func fastpathDecodeSetZeroTypeSwitch(iv interface{}, d *Decoder) bool {
  14726. switch v := iv.(type) {
  14727. case *[]interface{}:
  14728. *v = nil
  14729. case *map[interface{}]interface{}:
  14730. *v = nil
  14731. case *map[interface{}]string:
  14732. *v = nil
  14733. case *map[interface{}]uint:
  14734. *v = nil
  14735. case *map[interface{}]uint8:
  14736. *v = nil
  14737. case *map[interface{}]uint16:
  14738. *v = nil
  14739. case *map[interface{}]uint32:
  14740. *v = nil
  14741. case *map[interface{}]uint64:
  14742. *v = nil
  14743. case *map[interface{}]uintptr:
  14744. *v = nil
  14745. case *map[interface{}]int:
  14746. *v = nil
  14747. case *map[interface{}]int8:
  14748. *v = nil
  14749. case *map[interface{}]int16:
  14750. *v = nil
  14751. case *map[interface{}]int32:
  14752. *v = nil
  14753. case *map[interface{}]int64:
  14754. *v = nil
  14755. case *map[interface{}]float32:
  14756. *v = nil
  14757. case *map[interface{}]float64:
  14758. *v = nil
  14759. case *map[interface{}]bool:
  14760. *v = nil
  14761. case *[]string:
  14762. *v = nil
  14763. case *map[string]interface{}:
  14764. *v = nil
  14765. case *map[string]string:
  14766. *v = nil
  14767. case *map[string]uint:
  14768. *v = nil
  14769. case *map[string]uint8:
  14770. *v = nil
  14771. case *map[string]uint16:
  14772. *v = nil
  14773. case *map[string]uint32:
  14774. *v = nil
  14775. case *map[string]uint64:
  14776. *v = nil
  14777. case *map[string]uintptr:
  14778. *v = nil
  14779. case *map[string]int:
  14780. *v = nil
  14781. case *map[string]int8:
  14782. *v = nil
  14783. case *map[string]int16:
  14784. *v = nil
  14785. case *map[string]int32:
  14786. *v = nil
  14787. case *map[string]int64:
  14788. *v = nil
  14789. case *map[string]float32:
  14790. *v = nil
  14791. case *map[string]float64:
  14792. *v = nil
  14793. case *map[string]bool:
  14794. *v = nil
  14795. case *[]float32:
  14796. *v = nil
  14797. case *map[float32]interface{}:
  14798. *v = nil
  14799. case *map[float32]string:
  14800. *v = nil
  14801. case *map[float32]uint:
  14802. *v = nil
  14803. case *map[float32]uint8:
  14804. *v = nil
  14805. case *map[float32]uint16:
  14806. *v = nil
  14807. case *map[float32]uint32:
  14808. *v = nil
  14809. case *map[float32]uint64:
  14810. *v = nil
  14811. case *map[float32]uintptr:
  14812. *v = nil
  14813. case *map[float32]int:
  14814. *v = nil
  14815. case *map[float32]int8:
  14816. *v = nil
  14817. case *map[float32]int16:
  14818. *v = nil
  14819. case *map[float32]int32:
  14820. *v = nil
  14821. case *map[float32]int64:
  14822. *v = nil
  14823. case *map[float32]float32:
  14824. *v = nil
  14825. case *map[float32]float64:
  14826. *v = nil
  14827. case *map[float32]bool:
  14828. *v = nil
  14829. case *[]float64:
  14830. *v = nil
  14831. case *map[float64]interface{}:
  14832. *v = nil
  14833. case *map[float64]string:
  14834. *v = nil
  14835. case *map[float64]uint:
  14836. *v = nil
  14837. case *map[float64]uint8:
  14838. *v = nil
  14839. case *map[float64]uint16:
  14840. *v = nil
  14841. case *map[float64]uint32:
  14842. *v = nil
  14843. case *map[float64]uint64:
  14844. *v = nil
  14845. case *map[float64]uintptr:
  14846. *v = nil
  14847. case *map[float64]int:
  14848. *v = nil
  14849. case *map[float64]int8:
  14850. *v = nil
  14851. case *map[float64]int16:
  14852. *v = nil
  14853. case *map[float64]int32:
  14854. *v = nil
  14855. case *map[float64]int64:
  14856. *v = nil
  14857. case *map[float64]float32:
  14858. *v = nil
  14859. case *map[float64]float64:
  14860. *v = nil
  14861. case *map[float64]bool:
  14862. *v = nil
  14863. case *[]uint:
  14864. *v = nil
  14865. case *map[uint]interface{}:
  14866. *v = nil
  14867. case *map[uint]string:
  14868. *v = nil
  14869. case *map[uint]uint:
  14870. *v = nil
  14871. case *map[uint]uint8:
  14872. *v = nil
  14873. case *map[uint]uint16:
  14874. *v = nil
  14875. case *map[uint]uint32:
  14876. *v = nil
  14877. case *map[uint]uint64:
  14878. *v = nil
  14879. case *map[uint]uintptr:
  14880. *v = nil
  14881. case *map[uint]int:
  14882. *v = nil
  14883. case *map[uint]int8:
  14884. *v = nil
  14885. case *map[uint]int16:
  14886. *v = nil
  14887. case *map[uint]int32:
  14888. *v = nil
  14889. case *map[uint]int64:
  14890. *v = nil
  14891. case *map[uint]float32:
  14892. *v = nil
  14893. case *map[uint]float64:
  14894. *v = nil
  14895. case *map[uint]bool:
  14896. *v = nil
  14897. case *map[uint8]interface{}:
  14898. *v = nil
  14899. case *map[uint8]string:
  14900. *v = nil
  14901. case *map[uint8]uint:
  14902. *v = nil
  14903. case *map[uint8]uint8:
  14904. *v = nil
  14905. case *map[uint8]uint16:
  14906. *v = nil
  14907. case *map[uint8]uint32:
  14908. *v = nil
  14909. case *map[uint8]uint64:
  14910. *v = nil
  14911. case *map[uint8]uintptr:
  14912. *v = nil
  14913. case *map[uint8]int:
  14914. *v = nil
  14915. case *map[uint8]int8:
  14916. *v = nil
  14917. case *map[uint8]int16:
  14918. *v = nil
  14919. case *map[uint8]int32:
  14920. *v = nil
  14921. case *map[uint8]int64:
  14922. *v = nil
  14923. case *map[uint8]float32:
  14924. *v = nil
  14925. case *map[uint8]float64:
  14926. *v = nil
  14927. case *map[uint8]bool:
  14928. *v = nil
  14929. case *[]uint16:
  14930. *v = nil
  14931. case *map[uint16]interface{}:
  14932. *v = nil
  14933. case *map[uint16]string:
  14934. *v = nil
  14935. case *map[uint16]uint:
  14936. *v = nil
  14937. case *map[uint16]uint8:
  14938. *v = nil
  14939. case *map[uint16]uint16:
  14940. *v = nil
  14941. case *map[uint16]uint32:
  14942. *v = nil
  14943. case *map[uint16]uint64:
  14944. *v = nil
  14945. case *map[uint16]uintptr:
  14946. *v = nil
  14947. case *map[uint16]int:
  14948. *v = nil
  14949. case *map[uint16]int8:
  14950. *v = nil
  14951. case *map[uint16]int16:
  14952. *v = nil
  14953. case *map[uint16]int32:
  14954. *v = nil
  14955. case *map[uint16]int64:
  14956. *v = nil
  14957. case *map[uint16]float32:
  14958. *v = nil
  14959. case *map[uint16]float64:
  14960. *v = nil
  14961. case *map[uint16]bool:
  14962. *v = nil
  14963. case *[]uint32:
  14964. *v = nil
  14965. case *map[uint32]interface{}:
  14966. *v = nil
  14967. case *map[uint32]string:
  14968. *v = nil
  14969. case *map[uint32]uint:
  14970. *v = nil
  14971. case *map[uint32]uint8:
  14972. *v = nil
  14973. case *map[uint32]uint16:
  14974. *v = nil
  14975. case *map[uint32]uint32:
  14976. *v = nil
  14977. case *map[uint32]uint64:
  14978. *v = nil
  14979. case *map[uint32]uintptr:
  14980. *v = nil
  14981. case *map[uint32]int:
  14982. *v = nil
  14983. case *map[uint32]int8:
  14984. *v = nil
  14985. case *map[uint32]int16:
  14986. *v = nil
  14987. case *map[uint32]int32:
  14988. *v = nil
  14989. case *map[uint32]int64:
  14990. *v = nil
  14991. case *map[uint32]float32:
  14992. *v = nil
  14993. case *map[uint32]float64:
  14994. *v = nil
  14995. case *map[uint32]bool:
  14996. *v = nil
  14997. case *[]uint64:
  14998. *v = nil
  14999. case *map[uint64]interface{}:
  15000. *v = nil
  15001. case *map[uint64]string:
  15002. *v = nil
  15003. case *map[uint64]uint:
  15004. *v = nil
  15005. case *map[uint64]uint8:
  15006. *v = nil
  15007. case *map[uint64]uint16:
  15008. *v = nil
  15009. case *map[uint64]uint32:
  15010. *v = nil
  15011. case *map[uint64]uint64:
  15012. *v = nil
  15013. case *map[uint64]uintptr:
  15014. *v = nil
  15015. case *map[uint64]int:
  15016. *v = nil
  15017. case *map[uint64]int8:
  15018. *v = nil
  15019. case *map[uint64]int16:
  15020. *v = nil
  15021. case *map[uint64]int32:
  15022. *v = nil
  15023. case *map[uint64]int64:
  15024. *v = nil
  15025. case *map[uint64]float32:
  15026. *v = nil
  15027. case *map[uint64]float64:
  15028. *v = nil
  15029. case *map[uint64]bool:
  15030. *v = nil
  15031. case *[]uintptr:
  15032. *v = nil
  15033. case *map[uintptr]interface{}:
  15034. *v = nil
  15035. case *map[uintptr]string:
  15036. *v = nil
  15037. case *map[uintptr]uint:
  15038. *v = nil
  15039. case *map[uintptr]uint8:
  15040. *v = nil
  15041. case *map[uintptr]uint16:
  15042. *v = nil
  15043. case *map[uintptr]uint32:
  15044. *v = nil
  15045. case *map[uintptr]uint64:
  15046. *v = nil
  15047. case *map[uintptr]uintptr:
  15048. *v = nil
  15049. case *map[uintptr]int:
  15050. *v = nil
  15051. case *map[uintptr]int8:
  15052. *v = nil
  15053. case *map[uintptr]int16:
  15054. *v = nil
  15055. case *map[uintptr]int32:
  15056. *v = nil
  15057. case *map[uintptr]int64:
  15058. *v = nil
  15059. case *map[uintptr]float32:
  15060. *v = nil
  15061. case *map[uintptr]float64:
  15062. *v = nil
  15063. case *map[uintptr]bool:
  15064. *v = nil
  15065. case *[]int:
  15066. *v = nil
  15067. case *map[int]interface{}:
  15068. *v = nil
  15069. case *map[int]string:
  15070. *v = nil
  15071. case *map[int]uint:
  15072. *v = nil
  15073. case *map[int]uint8:
  15074. *v = nil
  15075. case *map[int]uint16:
  15076. *v = nil
  15077. case *map[int]uint32:
  15078. *v = nil
  15079. case *map[int]uint64:
  15080. *v = nil
  15081. case *map[int]uintptr:
  15082. *v = nil
  15083. case *map[int]int:
  15084. *v = nil
  15085. case *map[int]int8:
  15086. *v = nil
  15087. case *map[int]int16:
  15088. *v = nil
  15089. case *map[int]int32:
  15090. *v = nil
  15091. case *map[int]int64:
  15092. *v = nil
  15093. case *map[int]float32:
  15094. *v = nil
  15095. case *map[int]float64:
  15096. *v = nil
  15097. case *map[int]bool:
  15098. *v = nil
  15099. case *[]int8:
  15100. *v = nil
  15101. case *map[int8]interface{}:
  15102. *v = nil
  15103. case *map[int8]string:
  15104. *v = nil
  15105. case *map[int8]uint:
  15106. *v = nil
  15107. case *map[int8]uint8:
  15108. *v = nil
  15109. case *map[int8]uint16:
  15110. *v = nil
  15111. case *map[int8]uint32:
  15112. *v = nil
  15113. case *map[int8]uint64:
  15114. *v = nil
  15115. case *map[int8]uintptr:
  15116. *v = nil
  15117. case *map[int8]int:
  15118. *v = nil
  15119. case *map[int8]int8:
  15120. *v = nil
  15121. case *map[int8]int16:
  15122. *v = nil
  15123. case *map[int8]int32:
  15124. *v = nil
  15125. case *map[int8]int64:
  15126. *v = nil
  15127. case *map[int8]float32:
  15128. *v = nil
  15129. case *map[int8]float64:
  15130. *v = nil
  15131. case *map[int8]bool:
  15132. *v = nil
  15133. case *[]int16:
  15134. *v = nil
  15135. case *map[int16]interface{}:
  15136. *v = nil
  15137. case *map[int16]string:
  15138. *v = nil
  15139. case *map[int16]uint:
  15140. *v = nil
  15141. case *map[int16]uint8:
  15142. *v = nil
  15143. case *map[int16]uint16:
  15144. *v = nil
  15145. case *map[int16]uint32:
  15146. *v = nil
  15147. case *map[int16]uint64:
  15148. *v = nil
  15149. case *map[int16]uintptr:
  15150. *v = nil
  15151. case *map[int16]int:
  15152. *v = nil
  15153. case *map[int16]int8:
  15154. *v = nil
  15155. case *map[int16]int16:
  15156. *v = nil
  15157. case *map[int16]int32:
  15158. *v = nil
  15159. case *map[int16]int64:
  15160. *v = nil
  15161. case *map[int16]float32:
  15162. *v = nil
  15163. case *map[int16]float64:
  15164. *v = nil
  15165. case *map[int16]bool:
  15166. *v = nil
  15167. case *[]int32:
  15168. *v = nil
  15169. case *map[int32]interface{}:
  15170. *v = nil
  15171. case *map[int32]string:
  15172. *v = nil
  15173. case *map[int32]uint:
  15174. *v = nil
  15175. case *map[int32]uint8:
  15176. *v = nil
  15177. case *map[int32]uint16:
  15178. *v = nil
  15179. case *map[int32]uint32:
  15180. *v = nil
  15181. case *map[int32]uint64:
  15182. *v = nil
  15183. case *map[int32]uintptr:
  15184. *v = nil
  15185. case *map[int32]int:
  15186. *v = nil
  15187. case *map[int32]int8:
  15188. *v = nil
  15189. case *map[int32]int16:
  15190. *v = nil
  15191. case *map[int32]int32:
  15192. *v = nil
  15193. case *map[int32]int64:
  15194. *v = nil
  15195. case *map[int32]float32:
  15196. *v = nil
  15197. case *map[int32]float64:
  15198. *v = nil
  15199. case *map[int32]bool:
  15200. *v = nil
  15201. case *[]int64:
  15202. *v = nil
  15203. case *map[int64]interface{}:
  15204. *v = nil
  15205. case *map[int64]string:
  15206. *v = nil
  15207. case *map[int64]uint:
  15208. *v = nil
  15209. case *map[int64]uint8:
  15210. *v = nil
  15211. case *map[int64]uint16:
  15212. *v = nil
  15213. case *map[int64]uint32:
  15214. *v = nil
  15215. case *map[int64]uint64:
  15216. *v = nil
  15217. case *map[int64]uintptr:
  15218. *v = nil
  15219. case *map[int64]int:
  15220. *v = nil
  15221. case *map[int64]int8:
  15222. *v = nil
  15223. case *map[int64]int16:
  15224. *v = nil
  15225. case *map[int64]int32:
  15226. *v = nil
  15227. case *map[int64]int64:
  15228. *v = nil
  15229. case *map[int64]float32:
  15230. *v = nil
  15231. case *map[int64]float64:
  15232. *v = nil
  15233. case *map[int64]bool:
  15234. *v = nil
  15235. case *[]bool:
  15236. *v = nil
  15237. case *map[bool]interface{}:
  15238. *v = nil
  15239. case *map[bool]string:
  15240. *v = nil
  15241. case *map[bool]uint:
  15242. *v = nil
  15243. case *map[bool]uint8:
  15244. *v = nil
  15245. case *map[bool]uint16:
  15246. *v = nil
  15247. case *map[bool]uint32:
  15248. *v = nil
  15249. case *map[bool]uint64:
  15250. *v = nil
  15251. case *map[bool]uintptr:
  15252. *v = nil
  15253. case *map[bool]int:
  15254. *v = nil
  15255. case *map[bool]int8:
  15256. *v = nil
  15257. case *map[bool]int16:
  15258. *v = nil
  15259. case *map[bool]int32:
  15260. *v = nil
  15261. case *map[bool]int64:
  15262. *v = nil
  15263. case *map[bool]float32:
  15264. *v = nil
  15265. case *map[bool]float64:
  15266. *v = nil
  15267. case *map[bool]bool:
  15268. *v = nil
  15269. default:
  15270. _ = v // TODO: workaround https://github.com/golang/go/issues/12927 (remove after go 1.6 release)
  15271. return false
  15272. }
  15273. return true
  15274. }
  15275. // -- -- fast path functions
  15276. func (d *Decoder) fastpathDecSliceIntfR(f *codecFnInfo, rv reflect.Value) {
  15277. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15278. var vp = rv2i(rv).(*[]interface{})
  15279. if v, changed := fastpathTV.DecSliceIntfV(*vp, !array, d); changed {
  15280. *vp = v
  15281. }
  15282. } else {
  15283. fastpathTV.DecSliceIntfV(rv2i(rv).([]interface{}), !array, d)
  15284. }
  15285. }
  15286. func (f fastpathT) DecSliceIntfX(vp *[]interface{}, d *Decoder) {
  15287. if v, changed := f.DecSliceIntfV(*vp, true, d); changed {
  15288. *vp = v
  15289. }
  15290. }
  15291. func (_ fastpathT) DecSliceIntfV(v []interface{}, canChange bool, d *Decoder) (_ []interface{}, changed bool) {
  15292. dd := d.d
  15293. slh, containerLenS := d.decSliceHelperStart()
  15294. if containerLenS == 0 {
  15295. if canChange {
  15296. if v == nil {
  15297. v = []interface{}{}
  15298. } else if len(v) != 0 {
  15299. v = v[:0]
  15300. }
  15301. changed = true
  15302. }
  15303. slh.End()
  15304. return v, changed
  15305. }
  15306. hasLen := containerLenS > 0
  15307. var xlen int
  15308. if hasLen && canChange {
  15309. if containerLenS > cap(v) {
  15310. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)
  15311. if xlen <= cap(v) {
  15312. v = v[:xlen]
  15313. } else {
  15314. v = make([]interface{}, xlen)
  15315. }
  15316. changed = true
  15317. } else if containerLenS != len(v) {
  15318. v = v[:containerLenS]
  15319. changed = true
  15320. }
  15321. }
  15322. j := 0
  15323. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  15324. if j == 0 && len(v) == 0 {
  15325. if hasLen {
  15326. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)
  15327. } else {
  15328. xlen = 8
  15329. }
  15330. v = make([]interface{}, xlen)
  15331. changed = true
  15332. }
  15333. // if indefinite, etc, then expand the slice if necessary
  15334. var decodeIntoBlank bool
  15335. if j >= len(v) {
  15336. if canChange {
  15337. v = append(v, nil)
  15338. changed = true
  15339. } else {
  15340. d.arrayCannotExpand(len(v), j+1)
  15341. decodeIntoBlank = true
  15342. }
  15343. }
  15344. slh.ElemContainerState(j)
  15345. if decodeIntoBlank {
  15346. d.swallow()
  15347. } else {
  15348. d.decode(&v[j])
  15349. }
  15350. }
  15351. if canChange {
  15352. if j < len(v) {
  15353. v = v[:j]
  15354. changed = true
  15355. } else if j == 0 && v == nil {
  15356. v = make([]interface{}, 0)
  15357. changed = true
  15358. }
  15359. }
  15360. slh.End()
  15361. return v, changed
  15362. }
  15363. func (d *Decoder) fastpathDecSliceStringR(f *codecFnInfo, rv reflect.Value) {
  15364. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15365. var vp = rv2i(rv).(*[]string)
  15366. if v, changed := fastpathTV.DecSliceStringV(*vp, !array, d); changed {
  15367. *vp = v
  15368. }
  15369. } else {
  15370. fastpathTV.DecSliceStringV(rv2i(rv).([]string), !array, d)
  15371. }
  15372. }
  15373. func (f fastpathT) DecSliceStringX(vp *[]string, d *Decoder) {
  15374. if v, changed := f.DecSliceStringV(*vp, true, d); changed {
  15375. *vp = v
  15376. }
  15377. }
  15378. func (_ fastpathT) DecSliceStringV(v []string, canChange bool, d *Decoder) (_ []string, changed bool) {
  15379. dd := d.d
  15380. slh, containerLenS := d.decSliceHelperStart()
  15381. if containerLenS == 0 {
  15382. if canChange {
  15383. if v == nil {
  15384. v = []string{}
  15385. } else if len(v) != 0 {
  15386. v = v[:0]
  15387. }
  15388. changed = true
  15389. }
  15390. slh.End()
  15391. return v, changed
  15392. }
  15393. hasLen := containerLenS > 0
  15394. var xlen int
  15395. if hasLen && canChange {
  15396. if containerLenS > cap(v) {
  15397. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)
  15398. if xlen <= cap(v) {
  15399. v = v[:xlen]
  15400. } else {
  15401. v = make([]string, xlen)
  15402. }
  15403. changed = true
  15404. } else if containerLenS != len(v) {
  15405. v = v[:containerLenS]
  15406. changed = true
  15407. }
  15408. }
  15409. j := 0
  15410. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  15411. if j == 0 && len(v) == 0 {
  15412. if hasLen {
  15413. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)
  15414. } else {
  15415. xlen = 8
  15416. }
  15417. v = make([]string, xlen)
  15418. changed = true
  15419. }
  15420. // if indefinite, etc, then expand the slice if necessary
  15421. var decodeIntoBlank bool
  15422. if j >= len(v) {
  15423. if canChange {
  15424. v = append(v, "")
  15425. changed = true
  15426. } else {
  15427. d.arrayCannotExpand(len(v), j+1)
  15428. decodeIntoBlank = true
  15429. }
  15430. }
  15431. slh.ElemContainerState(j)
  15432. if decodeIntoBlank {
  15433. d.swallow()
  15434. } else {
  15435. v[j] = dd.DecodeString()
  15436. }
  15437. }
  15438. if canChange {
  15439. if j < len(v) {
  15440. v = v[:j]
  15441. changed = true
  15442. } else if j == 0 && v == nil {
  15443. v = make([]string, 0)
  15444. changed = true
  15445. }
  15446. }
  15447. slh.End()
  15448. return v, changed
  15449. }
  15450. func (d *Decoder) fastpathDecSliceFloat32R(f *codecFnInfo, rv reflect.Value) {
  15451. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15452. var vp = rv2i(rv).(*[]float32)
  15453. if v, changed := fastpathTV.DecSliceFloat32V(*vp, !array, d); changed {
  15454. *vp = v
  15455. }
  15456. } else {
  15457. fastpathTV.DecSliceFloat32V(rv2i(rv).([]float32), !array, d)
  15458. }
  15459. }
  15460. func (f fastpathT) DecSliceFloat32X(vp *[]float32, d *Decoder) {
  15461. if v, changed := f.DecSliceFloat32V(*vp, true, d); changed {
  15462. *vp = v
  15463. }
  15464. }
  15465. func (_ fastpathT) DecSliceFloat32V(v []float32, canChange bool, d *Decoder) (_ []float32, changed bool) {
  15466. dd := d.d
  15467. slh, containerLenS := d.decSliceHelperStart()
  15468. if containerLenS == 0 {
  15469. if canChange {
  15470. if v == nil {
  15471. v = []float32{}
  15472. } else if len(v) != 0 {
  15473. v = v[:0]
  15474. }
  15475. changed = true
  15476. }
  15477. slh.End()
  15478. return v, changed
  15479. }
  15480. hasLen := containerLenS > 0
  15481. var xlen int
  15482. if hasLen && canChange {
  15483. if containerLenS > cap(v) {
  15484. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
  15485. if xlen <= cap(v) {
  15486. v = v[:xlen]
  15487. } else {
  15488. v = make([]float32, xlen)
  15489. }
  15490. changed = true
  15491. } else if containerLenS != len(v) {
  15492. v = v[:containerLenS]
  15493. changed = true
  15494. }
  15495. }
  15496. j := 0
  15497. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  15498. if j == 0 && len(v) == 0 {
  15499. if hasLen {
  15500. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
  15501. } else {
  15502. xlen = 8
  15503. }
  15504. v = make([]float32, xlen)
  15505. changed = true
  15506. }
  15507. // if indefinite, etc, then expand the slice if necessary
  15508. var decodeIntoBlank bool
  15509. if j >= len(v) {
  15510. if canChange {
  15511. v = append(v, 0)
  15512. changed = true
  15513. } else {
  15514. d.arrayCannotExpand(len(v), j+1)
  15515. decodeIntoBlank = true
  15516. }
  15517. }
  15518. slh.ElemContainerState(j)
  15519. if decodeIntoBlank {
  15520. d.swallow()
  15521. } else {
  15522. v[j] = float32(dd.DecodeFloat(true))
  15523. }
  15524. }
  15525. if canChange {
  15526. if j < len(v) {
  15527. v = v[:j]
  15528. changed = true
  15529. } else if j == 0 && v == nil {
  15530. v = make([]float32, 0)
  15531. changed = true
  15532. }
  15533. }
  15534. slh.End()
  15535. return v, changed
  15536. }
  15537. func (d *Decoder) fastpathDecSliceFloat64R(f *codecFnInfo, rv reflect.Value) {
  15538. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15539. var vp = rv2i(rv).(*[]float64)
  15540. if v, changed := fastpathTV.DecSliceFloat64V(*vp, !array, d); changed {
  15541. *vp = v
  15542. }
  15543. } else {
  15544. fastpathTV.DecSliceFloat64V(rv2i(rv).([]float64), !array, d)
  15545. }
  15546. }
  15547. func (f fastpathT) DecSliceFloat64X(vp *[]float64, d *Decoder) {
  15548. if v, changed := f.DecSliceFloat64V(*vp, true, d); changed {
  15549. *vp = v
  15550. }
  15551. }
  15552. func (_ fastpathT) DecSliceFloat64V(v []float64, canChange bool, d *Decoder) (_ []float64, changed bool) {
  15553. dd := d.d
  15554. slh, containerLenS := d.decSliceHelperStart()
  15555. if containerLenS == 0 {
  15556. if canChange {
  15557. if v == nil {
  15558. v = []float64{}
  15559. } else if len(v) != 0 {
  15560. v = v[:0]
  15561. }
  15562. changed = true
  15563. }
  15564. slh.End()
  15565. return v, changed
  15566. }
  15567. hasLen := containerLenS > 0
  15568. var xlen int
  15569. if hasLen && canChange {
  15570. if containerLenS > cap(v) {
  15571. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  15572. if xlen <= cap(v) {
  15573. v = v[:xlen]
  15574. } else {
  15575. v = make([]float64, xlen)
  15576. }
  15577. changed = true
  15578. } else if containerLenS != len(v) {
  15579. v = v[:containerLenS]
  15580. changed = true
  15581. }
  15582. }
  15583. j := 0
  15584. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  15585. if j == 0 && len(v) == 0 {
  15586. if hasLen {
  15587. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  15588. } else {
  15589. xlen = 8
  15590. }
  15591. v = make([]float64, xlen)
  15592. changed = true
  15593. }
  15594. // if indefinite, etc, then expand the slice if necessary
  15595. var decodeIntoBlank bool
  15596. if j >= len(v) {
  15597. if canChange {
  15598. v = append(v, 0)
  15599. changed = true
  15600. } else {
  15601. d.arrayCannotExpand(len(v), j+1)
  15602. decodeIntoBlank = true
  15603. }
  15604. }
  15605. slh.ElemContainerState(j)
  15606. if decodeIntoBlank {
  15607. d.swallow()
  15608. } else {
  15609. v[j] = dd.DecodeFloat(false)
  15610. }
  15611. }
  15612. if canChange {
  15613. if j < len(v) {
  15614. v = v[:j]
  15615. changed = true
  15616. } else if j == 0 && v == nil {
  15617. v = make([]float64, 0)
  15618. changed = true
  15619. }
  15620. }
  15621. slh.End()
  15622. return v, changed
  15623. }
  15624. func (d *Decoder) fastpathDecSliceUintR(f *codecFnInfo, rv reflect.Value) {
  15625. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15626. var vp = rv2i(rv).(*[]uint)
  15627. if v, changed := fastpathTV.DecSliceUintV(*vp, !array, d); changed {
  15628. *vp = v
  15629. }
  15630. } else {
  15631. fastpathTV.DecSliceUintV(rv2i(rv).([]uint), !array, d)
  15632. }
  15633. }
  15634. func (f fastpathT) DecSliceUintX(vp *[]uint, d *Decoder) {
  15635. if v, changed := f.DecSliceUintV(*vp, true, d); changed {
  15636. *vp = v
  15637. }
  15638. }
  15639. func (_ fastpathT) DecSliceUintV(v []uint, canChange bool, d *Decoder) (_ []uint, changed bool) {
  15640. dd := d.d
  15641. slh, containerLenS := d.decSliceHelperStart()
  15642. if containerLenS == 0 {
  15643. if canChange {
  15644. if v == nil {
  15645. v = []uint{}
  15646. } else if len(v) != 0 {
  15647. v = v[:0]
  15648. }
  15649. changed = true
  15650. }
  15651. slh.End()
  15652. return v, changed
  15653. }
  15654. hasLen := containerLenS > 0
  15655. var xlen int
  15656. if hasLen && canChange {
  15657. if containerLenS > cap(v) {
  15658. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  15659. if xlen <= cap(v) {
  15660. v = v[:xlen]
  15661. } else {
  15662. v = make([]uint, xlen)
  15663. }
  15664. changed = true
  15665. } else if containerLenS != len(v) {
  15666. v = v[:containerLenS]
  15667. changed = true
  15668. }
  15669. }
  15670. j := 0
  15671. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  15672. if j == 0 && len(v) == 0 {
  15673. if hasLen {
  15674. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  15675. } else {
  15676. xlen = 8
  15677. }
  15678. v = make([]uint, xlen)
  15679. changed = true
  15680. }
  15681. // if indefinite, etc, then expand the slice if necessary
  15682. var decodeIntoBlank bool
  15683. if j >= len(v) {
  15684. if canChange {
  15685. v = append(v, 0)
  15686. changed = true
  15687. } else {
  15688. d.arrayCannotExpand(len(v), j+1)
  15689. decodeIntoBlank = true
  15690. }
  15691. }
  15692. slh.ElemContainerState(j)
  15693. if decodeIntoBlank {
  15694. d.swallow()
  15695. } else {
  15696. v[j] = uint(dd.DecodeUint(uintBitsize))
  15697. }
  15698. }
  15699. if canChange {
  15700. if j < len(v) {
  15701. v = v[:j]
  15702. changed = true
  15703. } else if j == 0 && v == nil {
  15704. v = make([]uint, 0)
  15705. changed = true
  15706. }
  15707. }
  15708. slh.End()
  15709. return v, changed
  15710. }
  15711. func (d *Decoder) fastpathDecSliceUint16R(f *codecFnInfo, rv reflect.Value) {
  15712. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15713. var vp = rv2i(rv).(*[]uint16)
  15714. if v, changed := fastpathTV.DecSliceUint16V(*vp, !array, d); changed {
  15715. *vp = v
  15716. }
  15717. } else {
  15718. fastpathTV.DecSliceUint16V(rv2i(rv).([]uint16), !array, d)
  15719. }
  15720. }
  15721. func (f fastpathT) DecSliceUint16X(vp *[]uint16, d *Decoder) {
  15722. if v, changed := f.DecSliceUint16V(*vp, true, d); changed {
  15723. *vp = v
  15724. }
  15725. }
  15726. func (_ fastpathT) DecSliceUint16V(v []uint16, canChange bool, d *Decoder) (_ []uint16, changed bool) {
  15727. dd := d.d
  15728. slh, containerLenS := d.decSliceHelperStart()
  15729. if containerLenS == 0 {
  15730. if canChange {
  15731. if v == nil {
  15732. v = []uint16{}
  15733. } else if len(v) != 0 {
  15734. v = v[:0]
  15735. }
  15736. changed = true
  15737. }
  15738. slh.End()
  15739. return v, changed
  15740. }
  15741. hasLen := containerLenS > 0
  15742. var xlen int
  15743. if hasLen && canChange {
  15744. if containerLenS > cap(v) {
  15745. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)
  15746. if xlen <= cap(v) {
  15747. v = v[:xlen]
  15748. } else {
  15749. v = make([]uint16, xlen)
  15750. }
  15751. changed = true
  15752. } else if containerLenS != len(v) {
  15753. v = v[:containerLenS]
  15754. changed = true
  15755. }
  15756. }
  15757. j := 0
  15758. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  15759. if j == 0 && len(v) == 0 {
  15760. if hasLen {
  15761. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)
  15762. } else {
  15763. xlen = 8
  15764. }
  15765. v = make([]uint16, xlen)
  15766. changed = true
  15767. }
  15768. // if indefinite, etc, then expand the slice if necessary
  15769. var decodeIntoBlank bool
  15770. if j >= len(v) {
  15771. if canChange {
  15772. v = append(v, 0)
  15773. changed = true
  15774. } else {
  15775. d.arrayCannotExpand(len(v), j+1)
  15776. decodeIntoBlank = true
  15777. }
  15778. }
  15779. slh.ElemContainerState(j)
  15780. if decodeIntoBlank {
  15781. d.swallow()
  15782. } else {
  15783. v[j] = uint16(dd.DecodeUint(16))
  15784. }
  15785. }
  15786. if canChange {
  15787. if j < len(v) {
  15788. v = v[:j]
  15789. changed = true
  15790. } else if j == 0 && v == nil {
  15791. v = make([]uint16, 0)
  15792. changed = true
  15793. }
  15794. }
  15795. slh.End()
  15796. return v, changed
  15797. }
  15798. func (d *Decoder) fastpathDecSliceUint32R(f *codecFnInfo, rv reflect.Value) {
  15799. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15800. var vp = rv2i(rv).(*[]uint32)
  15801. if v, changed := fastpathTV.DecSliceUint32V(*vp, !array, d); changed {
  15802. *vp = v
  15803. }
  15804. } else {
  15805. fastpathTV.DecSliceUint32V(rv2i(rv).([]uint32), !array, d)
  15806. }
  15807. }
  15808. func (f fastpathT) DecSliceUint32X(vp *[]uint32, d *Decoder) {
  15809. if v, changed := f.DecSliceUint32V(*vp, true, d); changed {
  15810. *vp = v
  15811. }
  15812. }
  15813. func (_ fastpathT) DecSliceUint32V(v []uint32, canChange bool, d *Decoder) (_ []uint32, changed bool) {
  15814. dd := d.d
  15815. slh, containerLenS := d.decSliceHelperStart()
  15816. if containerLenS == 0 {
  15817. if canChange {
  15818. if v == nil {
  15819. v = []uint32{}
  15820. } else if len(v) != 0 {
  15821. v = v[:0]
  15822. }
  15823. changed = true
  15824. }
  15825. slh.End()
  15826. return v, changed
  15827. }
  15828. hasLen := containerLenS > 0
  15829. var xlen int
  15830. if hasLen && canChange {
  15831. if containerLenS > cap(v) {
  15832. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
  15833. if xlen <= cap(v) {
  15834. v = v[:xlen]
  15835. } else {
  15836. v = make([]uint32, xlen)
  15837. }
  15838. changed = true
  15839. } else if containerLenS != len(v) {
  15840. v = v[:containerLenS]
  15841. changed = true
  15842. }
  15843. }
  15844. j := 0
  15845. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  15846. if j == 0 && len(v) == 0 {
  15847. if hasLen {
  15848. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
  15849. } else {
  15850. xlen = 8
  15851. }
  15852. v = make([]uint32, xlen)
  15853. changed = true
  15854. }
  15855. // if indefinite, etc, then expand the slice if necessary
  15856. var decodeIntoBlank bool
  15857. if j >= len(v) {
  15858. if canChange {
  15859. v = append(v, 0)
  15860. changed = true
  15861. } else {
  15862. d.arrayCannotExpand(len(v), j+1)
  15863. decodeIntoBlank = true
  15864. }
  15865. }
  15866. slh.ElemContainerState(j)
  15867. if decodeIntoBlank {
  15868. d.swallow()
  15869. } else {
  15870. v[j] = uint32(dd.DecodeUint(32))
  15871. }
  15872. }
  15873. if canChange {
  15874. if j < len(v) {
  15875. v = v[:j]
  15876. changed = true
  15877. } else if j == 0 && v == nil {
  15878. v = make([]uint32, 0)
  15879. changed = true
  15880. }
  15881. }
  15882. slh.End()
  15883. return v, changed
  15884. }
  15885. func (d *Decoder) fastpathDecSliceUint64R(f *codecFnInfo, rv reflect.Value) {
  15886. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15887. var vp = rv2i(rv).(*[]uint64)
  15888. if v, changed := fastpathTV.DecSliceUint64V(*vp, !array, d); changed {
  15889. *vp = v
  15890. }
  15891. } else {
  15892. fastpathTV.DecSliceUint64V(rv2i(rv).([]uint64), !array, d)
  15893. }
  15894. }
  15895. func (f fastpathT) DecSliceUint64X(vp *[]uint64, d *Decoder) {
  15896. if v, changed := f.DecSliceUint64V(*vp, true, d); changed {
  15897. *vp = v
  15898. }
  15899. }
  15900. func (_ fastpathT) DecSliceUint64V(v []uint64, canChange bool, d *Decoder) (_ []uint64, changed bool) {
  15901. dd := d.d
  15902. slh, containerLenS := d.decSliceHelperStart()
  15903. if containerLenS == 0 {
  15904. if canChange {
  15905. if v == nil {
  15906. v = []uint64{}
  15907. } else if len(v) != 0 {
  15908. v = v[:0]
  15909. }
  15910. changed = true
  15911. }
  15912. slh.End()
  15913. return v, changed
  15914. }
  15915. hasLen := containerLenS > 0
  15916. var xlen int
  15917. if hasLen && canChange {
  15918. if containerLenS > cap(v) {
  15919. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  15920. if xlen <= cap(v) {
  15921. v = v[:xlen]
  15922. } else {
  15923. v = make([]uint64, xlen)
  15924. }
  15925. changed = true
  15926. } else if containerLenS != len(v) {
  15927. v = v[:containerLenS]
  15928. changed = true
  15929. }
  15930. }
  15931. j := 0
  15932. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  15933. if j == 0 && len(v) == 0 {
  15934. if hasLen {
  15935. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  15936. } else {
  15937. xlen = 8
  15938. }
  15939. v = make([]uint64, xlen)
  15940. changed = true
  15941. }
  15942. // if indefinite, etc, then expand the slice if necessary
  15943. var decodeIntoBlank bool
  15944. if j >= len(v) {
  15945. if canChange {
  15946. v = append(v, 0)
  15947. changed = true
  15948. } else {
  15949. d.arrayCannotExpand(len(v), j+1)
  15950. decodeIntoBlank = true
  15951. }
  15952. }
  15953. slh.ElemContainerState(j)
  15954. if decodeIntoBlank {
  15955. d.swallow()
  15956. } else {
  15957. v[j] = dd.DecodeUint(64)
  15958. }
  15959. }
  15960. if canChange {
  15961. if j < len(v) {
  15962. v = v[:j]
  15963. changed = true
  15964. } else if j == 0 && v == nil {
  15965. v = make([]uint64, 0)
  15966. changed = true
  15967. }
  15968. }
  15969. slh.End()
  15970. return v, changed
  15971. }
  15972. func (d *Decoder) fastpathDecSliceUintptrR(f *codecFnInfo, rv reflect.Value) {
  15973. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  15974. var vp = rv2i(rv).(*[]uintptr)
  15975. if v, changed := fastpathTV.DecSliceUintptrV(*vp, !array, d); changed {
  15976. *vp = v
  15977. }
  15978. } else {
  15979. fastpathTV.DecSliceUintptrV(rv2i(rv).([]uintptr), !array, d)
  15980. }
  15981. }
  15982. func (f fastpathT) DecSliceUintptrX(vp *[]uintptr, d *Decoder) {
  15983. if v, changed := f.DecSliceUintptrV(*vp, true, d); changed {
  15984. *vp = v
  15985. }
  15986. }
  15987. func (_ fastpathT) DecSliceUintptrV(v []uintptr, canChange bool, d *Decoder) (_ []uintptr, changed bool) {
  15988. dd := d.d
  15989. slh, containerLenS := d.decSliceHelperStart()
  15990. if containerLenS == 0 {
  15991. if canChange {
  15992. if v == nil {
  15993. v = []uintptr{}
  15994. } else if len(v) != 0 {
  15995. v = v[:0]
  15996. }
  15997. changed = true
  15998. }
  15999. slh.End()
  16000. return v, changed
  16001. }
  16002. hasLen := containerLenS > 0
  16003. var xlen int
  16004. if hasLen && canChange {
  16005. if containerLenS > cap(v) {
  16006. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  16007. if xlen <= cap(v) {
  16008. v = v[:xlen]
  16009. } else {
  16010. v = make([]uintptr, xlen)
  16011. }
  16012. changed = true
  16013. } else if containerLenS != len(v) {
  16014. v = v[:containerLenS]
  16015. changed = true
  16016. }
  16017. }
  16018. j := 0
  16019. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  16020. if j == 0 && len(v) == 0 {
  16021. if hasLen {
  16022. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  16023. } else {
  16024. xlen = 8
  16025. }
  16026. v = make([]uintptr, xlen)
  16027. changed = true
  16028. }
  16029. // if indefinite, etc, then expand the slice if necessary
  16030. var decodeIntoBlank bool
  16031. if j >= len(v) {
  16032. if canChange {
  16033. v = append(v, 0)
  16034. changed = true
  16035. } else {
  16036. d.arrayCannotExpand(len(v), j+1)
  16037. decodeIntoBlank = true
  16038. }
  16039. }
  16040. slh.ElemContainerState(j)
  16041. if decodeIntoBlank {
  16042. d.swallow()
  16043. } else {
  16044. v[j] = uintptr(dd.DecodeUint(uintBitsize))
  16045. }
  16046. }
  16047. if canChange {
  16048. if j < len(v) {
  16049. v = v[:j]
  16050. changed = true
  16051. } else if j == 0 && v == nil {
  16052. v = make([]uintptr, 0)
  16053. changed = true
  16054. }
  16055. }
  16056. slh.End()
  16057. return v, changed
  16058. }
  16059. func (d *Decoder) fastpathDecSliceIntR(f *codecFnInfo, rv reflect.Value) {
  16060. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  16061. var vp = rv2i(rv).(*[]int)
  16062. if v, changed := fastpathTV.DecSliceIntV(*vp, !array, d); changed {
  16063. *vp = v
  16064. }
  16065. } else {
  16066. fastpathTV.DecSliceIntV(rv2i(rv).([]int), !array, d)
  16067. }
  16068. }
  16069. func (f fastpathT) DecSliceIntX(vp *[]int, d *Decoder) {
  16070. if v, changed := f.DecSliceIntV(*vp, true, d); changed {
  16071. *vp = v
  16072. }
  16073. }
  16074. func (_ fastpathT) DecSliceIntV(v []int, canChange bool, d *Decoder) (_ []int, changed bool) {
  16075. dd := d.d
  16076. slh, containerLenS := d.decSliceHelperStart()
  16077. if containerLenS == 0 {
  16078. if canChange {
  16079. if v == nil {
  16080. v = []int{}
  16081. } else if len(v) != 0 {
  16082. v = v[:0]
  16083. }
  16084. changed = true
  16085. }
  16086. slh.End()
  16087. return v, changed
  16088. }
  16089. hasLen := containerLenS > 0
  16090. var xlen int
  16091. if hasLen && canChange {
  16092. if containerLenS > cap(v) {
  16093. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  16094. if xlen <= cap(v) {
  16095. v = v[:xlen]
  16096. } else {
  16097. v = make([]int, xlen)
  16098. }
  16099. changed = true
  16100. } else if containerLenS != len(v) {
  16101. v = v[:containerLenS]
  16102. changed = true
  16103. }
  16104. }
  16105. j := 0
  16106. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  16107. if j == 0 && len(v) == 0 {
  16108. if hasLen {
  16109. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  16110. } else {
  16111. xlen = 8
  16112. }
  16113. v = make([]int, xlen)
  16114. changed = true
  16115. }
  16116. // if indefinite, etc, then expand the slice if necessary
  16117. var decodeIntoBlank bool
  16118. if j >= len(v) {
  16119. if canChange {
  16120. v = append(v, 0)
  16121. changed = true
  16122. } else {
  16123. d.arrayCannotExpand(len(v), j+1)
  16124. decodeIntoBlank = true
  16125. }
  16126. }
  16127. slh.ElemContainerState(j)
  16128. if decodeIntoBlank {
  16129. d.swallow()
  16130. } else {
  16131. v[j] = int(dd.DecodeInt(intBitsize))
  16132. }
  16133. }
  16134. if canChange {
  16135. if j < len(v) {
  16136. v = v[:j]
  16137. changed = true
  16138. } else if j == 0 && v == nil {
  16139. v = make([]int, 0)
  16140. changed = true
  16141. }
  16142. }
  16143. slh.End()
  16144. return v, changed
  16145. }
  16146. func (d *Decoder) fastpathDecSliceInt8R(f *codecFnInfo, rv reflect.Value) {
  16147. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  16148. var vp = rv2i(rv).(*[]int8)
  16149. if v, changed := fastpathTV.DecSliceInt8V(*vp, !array, d); changed {
  16150. *vp = v
  16151. }
  16152. } else {
  16153. fastpathTV.DecSliceInt8V(rv2i(rv).([]int8), !array, d)
  16154. }
  16155. }
  16156. func (f fastpathT) DecSliceInt8X(vp *[]int8, d *Decoder) {
  16157. if v, changed := f.DecSliceInt8V(*vp, true, d); changed {
  16158. *vp = v
  16159. }
  16160. }
  16161. func (_ fastpathT) DecSliceInt8V(v []int8, canChange bool, d *Decoder) (_ []int8, changed bool) {
  16162. dd := d.d
  16163. slh, containerLenS := d.decSliceHelperStart()
  16164. if containerLenS == 0 {
  16165. if canChange {
  16166. if v == nil {
  16167. v = []int8{}
  16168. } else if len(v) != 0 {
  16169. v = v[:0]
  16170. }
  16171. changed = true
  16172. }
  16173. slh.End()
  16174. return v, changed
  16175. }
  16176. hasLen := containerLenS > 0
  16177. var xlen int
  16178. if hasLen && canChange {
  16179. if containerLenS > cap(v) {
  16180. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
  16181. if xlen <= cap(v) {
  16182. v = v[:xlen]
  16183. } else {
  16184. v = make([]int8, xlen)
  16185. }
  16186. changed = true
  16187. } else if containerLenS != len(v) {
  16188. v = v[:containerLenS]
  16189. changed = true
  16190. }
  16191. }
  16192. j := 0
  16193. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  16194. if j == 0 && len(v) == 0 {
  16195. if hasLen {
  16196. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
  16197. } else {
  16198. xlen = 8
  16199. }
  16200. v = make([]int8, xlen)
  16201. changed = true
  16202. }
  16203. // if indefinite, etc, then expand the slice if necessary
  16204. var decodeIntoBlank bool
  16205. if j >= len(v) {
  16206. if canChange {
  16207. v = append(v, 0)
  16208. changed = true
  16209. } else {
  16210. d.arrayCannotExpand(len(v), j+1)
  16211. decodeIntoBlank = true
  16212. }
  16213. }
  16214. slh.ElemContainerState(j)
  16215. if decodeIntoBlank {
  16216. d.swallow()
  16217. } else {
  16218. v[j] = int8(dd.DecodeInt(8))
  16219. }
  16220. }
  16221. if canChange {
  16222. if j < len(v) {
  16223. v = v[:j]
  16224. changed = true
  16225. } else if j == 0 && v == nil {
  16226. v = make([]int8, 0)
  16227. changed = true
  16228. }
  16229. }
  16230. slh.End()
  16231. return v, changed
  16232. }
  16233. func (d *Decoder) fastpathDecSliceInt16R(f *codecFnInfo, rv reflect.Value) {
  16234. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  16235. var vp = rv2i(rv).(*[]int16)
  16236. if v, changed := fastpathTV.DecSliceInt16V(*vp, !array, d); changed {
  16237. *vp = v
  16238. }
  16239. } else {
  16240. fastpathTV.DecSliceInt16V(rv2i(rv).([]int16), !array, d)
  16241. }
  16242. }
  16243. func (f fastpathT) DecSliceInt16X(vp *[]int16, d *Decoder) {
  16244. if v, changed := f.DecSliceInt16V(*vp, true, d); changed {
  16245. *vp = v
  16246. }
  16247. }
  16248. func (_ fastpathT) DecSliceInt16V(v []int16, canChange bool, d *Decoder) (_ []int16, changed bool) {
  16249. dd := d.d
  16250. slh, containerLenS := d.decSliceHelperStart()
  16251. if containerLenS == 0 {
  16252. if canChange {
  16253. if v == nil {
  16254. v = []int16{}
  16255. } else if len(v) != 0 {
  16256. v = v[:0]
  16257. }
  16258. changed = true
  16259. }
  16260. slh.End()
  16261. return v, changed
  16262. }
  16263. hasLen := containerLenS > 0
  16264. var xlen int
  16265. if hasLen && canChange {
  16266. if containerLenS > cap(v) {
  16267. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)
  16268. if xlen <= cap(v) {
  16269. v = v[:xlen]
  16270. } else {
  16271. v = make([]int16, xlen)
  16272. }
  16273. changed = true
  16274. } else if containerLenS != len(v) {
  16275. v = v[:containerLenS]
  16276. changed = true
  16277. }
  16278. }
  16279. j := 0
  16280. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  16281. if j == 0 && len(v) == 0 {
  16282. if hasLen {
  16283. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)
  16284. } else {
  16285. xlen = 8
  16286. }
  16287. v = make([]int16, xlen)
  16288. changed = true
  16289. }
  16290. // if indefinite, etc, then expand the slice if necessary
  16291. var decodeIntoBlank bool
  16292. if j >= len(v) {
  16293. if canChange {
  16294. v = append(v, 0)
  16295. changed = true
  16296. } else {
  16297. d.arrayCannotExpand(len(v), j+1)
  16298. decodeIntoBlank = true
  16299. }
  16300. }
  16301. slh.ElemContainerState(j)
  16302. if decodeIntoBlank {
  16303. d.swallow()
  16304. } else {
  16305. v[j] = int16(dd.DecodeInt(16))
  16306. }
  16307. }
  16308. if canChange {
  16309. if j < len(v) {
  16310. v = v[:j]
  16311. changed = true
  16312. } else if j == 0 && v == nil {
  16313. v = make([]int16, 0)
  16314. changed = true
  16315. }
  16316. }
  16317. slh.End()
  16318. return v, changed
  16319. }
  16320. func (d *Decoder) fastpathDecSliceInt32R(f *codecFnInfo, rv reflect.Value) {
  16321. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  16322. var vp = rv2i(rv).(*[]int32)
  16323. if v, changed := fastpathTV.DecSliceInt32V(*vp, !array, d); changed {
  16324. *vp = v
  16325. }
  16326. } else {
  16327. fastpathTV.DecSliceInt32V(rv2i(rv).([]int32), !array, d)
  16328. }
  16329. }
  16330. func (f fastpathT) DecSliceInt32X(vp *[]int32, d *Decoder) {
  16331. if v, changed := f.DecSliceInt32V(*vp, true, d); changed {
  16332. *vp = v
  16333. }
  16334. }
  16335. func (_ fastpathT) DecSliceInt32V(v []int32, canChange bool, d *Decoder) (_ []int32, changed bool) {
  16336. dd := d.d
  16337. slh, containerLenS := d.decSliceHelperStart()
  16338. if containerLenS == 0 {
  16339. if canChange {
  16340. if v == nil {
  16341. v = []int32{}
  16342. } else if len(v) != 0 {
  16343. v = v[:0]
  16344. }
  16345. changed = true
  16346. }
  16347. slh.End()
  16348. return v, changed
  16349. }
  16350. hasLen := containerLenS > 0
  16351. var xlen int
  16352. if hasLen && canChange {
  16353. if containerLenS > cap(v) {
  16354. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
  16355. if xlen <= cap(v) {
  16356. v = v[:xlen]
  16357. } else {
  16358. v = make([]int32, xlen)
  16359. }
  16360. changed = true
  16361. } else if containerLenS != len(v) {
  16362. v = v[:containerLenS]
  16363. changed = true
  16364. }
  16365. }
  16366. j := 0
  16367. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  16368. if j == 0 && len(v) == 0 {
  16369. if hasLen {
  16370. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
  16371. } else {
  16372. xlen = 8
  16373. }
  16374. v = make([]int32, xlen)
  16375. changed = true
  16376. }
  16377. // if indefinite, etc, then expand the slice if necessary
  16378. var decodeIntoBlank bool
  16379. if j >= len(v) {
  16380. if canChange {
  16381. v = append(v, 0)
  16382. changed = true
  16383. } else {
  16384. d.arrayCannotExpand(len(v), j+1)
  16385. decodeIntoBlank = true
  16386. }
  16387. }
  16388. slh.ElemContainerState(j)
  16389. if decodeIntoBlank {
  16390. d.swallow()
  16391. } else {
  16392. v[j] = int32(dd.DecodeInt(32))
  16393. }
  16394. }
  16395. if canChange {
  16396. if j < len(v) {
  16397. v = v[:j]
  16398. changed = true
  16399. } else if j == 0 && v == nil {
  16400. v = make([]int32, 0)
  16401. changed = true
  16402. }
  16403. }
  16404. slh.End()
  16405. return v, changed
  16406. }
  16407. func (d *Decoder) fastpathDecSliceInt64R(f *codecFnInfo, rv reflect.Value) {
  16408. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  16409. var vp = rv2i(rv).(*[]int64)
  16410. if v, changed := fastpathTV.DecSliceInt64V(*vp, !array, d); changed {
  16411. *vp = v
  16412. }
  16413. } else {
  16414. fastpathTV.DecSliceInt64V(rv2i(rv).([]int64), !array, d)
  16415. }
  16416. }
  16417. func (f fastpathT) DecSliceInt64X(vp *[]int64, d *Decoder) {
  16418. if v, changed := f.DecSliceInt64V(*vp, true, d); changed {
  16419. *vp = v
  16420. }
  16421. }
  16422. func (_ fastpathT) DecSliceInt64V(v []int64, canChange bool, d *Decoder) (_ []int64, changed bool) {
  16423. dd := d.d
  16424. slh, containerLenS := d.decSliceHelperStart()
  16425. if containerLenS == 0 {
  16426. if canChange {
  16427. if v == nil {
  16428. v = []int64{}
  16429. } else if len(v) != 0 {
  16430. v = v[:0]
  16431. }
  16432. changed = true
  16433. }
  16434. slh.End()
  16435. return v, changed
  16436. }
  16437. hasLen := containerLenS > 0
  16438. var xlen int
  16439. if hasLen && canChange {
  16440. if containerLenS > cap(v) {
  16441. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  16442. if xlen <= cap(v) {
  16443. v = v[:xlen]
  16444. } else {
  16445. v = make([]int64, xlen)
  16446. }
  16447. changed = true
  16448. } else if containerLenS != len(v) {
  16449. v = v[:containerLenS]
  16450. changed = true
  16451. }
  16452. }
  16453. j := 0
  16454. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  16455. if j == 0 && len(v) == 0 {
  16456. if hasLen {
  16457. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
  16458. } else {
  16459. xlen = 8
  16460. }
  16461. v = make([]int64, xlen)
  16462. changed = true
  16463. }
  16464. // if indefinite, etc, then expand the slice if necessary
  16465. var decodeIntoBlank bool
  16466. if j >= len(v) {
  16467. if canChange {
  16468. v = append(v, 0)
  16469. changed = true
  16470. } else {
  16471. d.arrayCannotExpand(len(v), j+1)
  16472. decodeIntoBlank = true
  16473. }
  16474. }
  16475. slh.ElemContainerState(j)
  16476. if decodeIntoBlank {
  16477. d.swallow()
  16478. } else {
  16479. v[j] = dd.DecodeInt(64)
  16480. }
  16481. }
  16482. if canChange {
  16483. if j < len(v) {
  16484. v = v[:j]
  16485. changed = true
  16486. } else if j == 0 && v == nil {
  16487. v = make([]int64, 0)
  16488. changed = true
  16489. }
  16490. }
  16491. slh.End()
  16492. return v, changed
  16493. }
  16494. func (d *Decoder) fastpathDecSliceBoolR(f *codecFnInfo, rv reflect.Value) {
  16495. if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
  16496. var vp = rv2i(rv).(*[]bool)
  16497. if v, changed := fastpathTV.DecSliceBoolV(*vp, !array, d); changed {
  16498. *vp = v
  16499. }
  16500. } else {
  16501. fastpathTV.DecSliceBoolV(rv2i(rv).([]bool), !array, d)
  16502. }
  16503. }
  16504. func (f fastpathT) DecSliceBoolX(vp *[]bool, d *Decoder) {
  16505. if v, changed := f.DecSliceBoolV(*vp, true, d); changed {
  16506. *vp = v
  16507. }
  16508. }
  16509. func (_ fastpathT) DecSliceBoolV(v []bool, canChange bool, d *Decoder) (_ []bool, changed bool) {
  16510. dd := d.d
  16511. slh, containerLenS := d.decSliceHelperStart()
  16512. if containerLenS == 0 {
  16513. if canChange {
  16514. if v == nil {
  16515. v = []bool{}
  16516. } else if len(v) != 0 {
  16517. v = v[:0]
  16518. }
  16519. changed = true
  16520. }
  16521. slh.End()
  16522. return v, changed
  16523. }
  16524. hasLen := containerLenS > 0
  16525. var xlen int
  16526. if hasLen && canChange {
  16527. if containerLenS > cap(v) {
  16528. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
  16529. if xlen <= cap(v) {
  16530. v = v[:xlen]
  16531. } else {
  16532. v = make([]bool, xlen)
  16533. }
  16534. changed = true
  16535. } else if containerLenS != len(v) {
  16536. v = v[:containerLenS]
  16537. changed = true
  16538. }
  16539. }
  16540. j := 0
  16541. for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
  16542. if j == 0 && len(v) == 0 {
  16543. if hasLen {
  16544. xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
  16545. } else {
  16546. xlen = 8
  16547. }
  16548. v = make([]bool, xlen)
  16549. changed = true
  16550. }
  16551. // if indefinite, etc, then expand the slice if necessary
  16552. var decodeIntoBlank bool
  16553. if j >= len(v) {
  16554. if canChange {
  16555. v = append(v, false)
  16556. changed = true
  16557. } else {
  16558. d.arrayCannotExpand(len(v), j+1)
  16559. decodeIntoBlank = true
  16560. }
  16561. }
  16562. slh.ElemContainerState(j)
  16563. if decodeIntoBlank {
  16564. d.swallow()
  16565. } else {
  16566. v[j] = dd.DecodeBool()
  16567. }
  16568. }
  16569. if canChange {
  16570. if j < len(v) {
  16571. v = v[:j]
  16572. changed = true
  16573. } else if j == 0 && v == nil {
  16574. v = make([]bool, 0)
  16575. changed = true
  16576. }
  16577. }
  16578. slh.End()
  16579. return v, changed
  16580. }
  16581. func (d *Decoder) fastpathDecMapIntfIntfR(f *codecFnInfo, rv reflect.Value) {
  16582. if rv.Kind() == reflect.Ptr {
  16583. vp := rv2i(rv).(*map[interface{}]interface{})
  16584. if v, changed := fastpathTV.DecMapIntfIntfV(*vp, true, d); changed {
  16585. *vp = v
  16586. }
  16587. return
  16588. }
  16589. fastpathTV.DecMapIntfIntfV(rv2i(rv).(map[interface{}]interface{}), false, d)
  16590. }
  16591. func (f fastpathT) DecMapIntfIntfX(vp *map[interface{}]interface{}, d *Decoder) {
  16592. if v, changed := f.DecMapIntfIntfV(*vp, true, d); changed {
  16593. *vp = v
  16594. }
  16595. }
  16596. func (_ fastpathT) DecMapIntfIntfV(v map[interface{}]interface{}, canChange bool,
  16597. d *Decoder) (_ map[interface{}]interface{}, changed bool) {
  16598. dd, esep := d.d, d.hh.hasElemSeparators()
  16599. containerLen := dd.ReadMapStart()
  16600. if canChange && v == nil {
  16601. xlen := decInferLen(containerLen, d.h.MaxInitLen, 32)
  16602. v = make(map[interface{}]interface{}, xlen)
  16603. changed = true
  16604. }
  16605. if containerLen == 0 {
  16606. dd.ReadMapEnd()
  16607. return v, changed
  16608. }
  16609. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  16610. var mk interface{}
  16611. var mv interface{}
  16612. hasLen := containerLen > 0
  16613. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  16614. if esep {
  16615. dd.ReadMapElemKey()
  16616. }
  16617. mk = nil
  16618. d.decode(&mk)
  16619. if bv, bok := mk.([]byte); bok {
  16620. mk = d.string(bv)
  16621. }
  16622. if esep {
  16623. dd.ReadMapElemValue()
  16624. }
  16625. if dd.TryDecodeAsNil() {
  16626. if d.h.DeleteOnNilMapValue {
  16627. delete(v, mk)
  16628. } else {
  16629. v[mk] = nil
  16630. }
  16631. continue
  16632. }
  16633. if mapGet {
  16634. mv = v[mk]
  16635. } else {
  16636. mv = nil
  16637. }
  16638. d.decode(&mv)
  16639. if v != nil {
  16640. v[mk] = mv
  16641. }
  16642. }
  16643. dd.ReadMapEnd()
  16644. return v, changed
  16645. }
  16646. func (d *Decoder) fastpathDecMapIntfStringR(f *codecFnInfo, rv reflect.Value) {
  16647. if rv.Kind() == reflect.Ptr {
  16648. vp := rv2i(rv).(*map[interface{}]string)
  16649. if v, changed := fastpathTV.DecMapIntfStringV(*vp, true, d); changed {
  16650. *vp = v
  16651. }
  16652. return
  16653. }
  16654. fastpathTV.DecMapIntfStringV(rv2i(rv).(map[interface{}]string), false, d)
  16655. }
  16656. func (f fastpathT) DecMapIntfStringX(vp *map[interface{}]string, d *Decoder) {
  16657. if v, changed := f.DecMapIntfStringV(*vp, true, d); changed {
  16658. *vp = v
  16659. }
  16660. }
  16661. func (_ fastpathT) DecMapIntfStringV(v map[interface{}]string, canChange bool,
  16662. d *Decoder) (_ map[interface{}]string, changed bool) {
  16663. dd, esep := d.d, d.hh.hasElemSeparators()
  16664. containerLen := dd.ReadMapStart()
  16665. if canChange && v == nil {
  16666. xlen := decInferLen(containerLen, d.h.MaxInitLen, 32)
  16667. v = make(map[interface{}]string, xlen)
  16668. changed = true
  16669. }
  16670. if containerLen == 0 {
  16671. dd.ReadMapEnd()
  16672. return v, changed
  16673. }
  16674. var mk interface{}
  16675. var mv string
  16676. hasLen := containerLen > 0
  16677. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  16678. if esep {
  16679. dd.ReadMapElemKey()
  16680. }
  16681. mk = nil
  16682. d.decode(&mk)
  16683. if bv, bok := mk.([]byte); bok {
  16684. mk = d.string(bv)
  16685. }
  16686. if esep {
  16687. dd.ReadMapElemValue()
  16688. }
  16689. if dd.TryDecodeAsNil() {
  16690. if d.h.DeleteOnNilMapValue {
  16691. delete(v, mk)
  16692. } else {
  16693. v[mk] = ""
  16694. }
  16695. continue
  16696. }
  16697. mv = dd.DecodeString()
  16698. if v != nil {
  16699. v[mk] = mv
  16700. }
  16701. }
  16702. dd.ReadMapEnd()
  16703. return v, changed
  16704. }
  16705. func (d *Decoder) fastpathDecMapIntfUintR(f *codecFnInfo, rv reflect.Value) {
  16706. if rv.Kind() == reflect.Ptr {
  16707. vp := rv2i(rv).(*map[interface{}]uint)
  16708. if v, changed := fastpathTV.DecMapIntfUintV(*vp, true, d); changed {
  16709. *vp = v
  16710. }
  16711. return
  16712. }
  16713. fastpathTV.DecMapIntfUintV(rv2i(rv).(map[interface{}]uint), false, d)
  16714. }
  16715. func (f fastpathT) DecMapIntfUintX(vp *map[interface{}]uint, d *Decoder) {
  16716. if v, changed := f.DecMapIntfUintV(*vp, true, d); changed {
  16717. *vp = v
  16718. }
  16719. }
  16720. func (_ fastpathT) DecMapIntfUintV(v map[interface{}]uint, canChange bool,
  16721. d *Decoder) (_ map[interface{}]uint, changed bool) {
  16722. dd, esep := d.d, d.hh.hasElemSeparators()
  16723. containerLen := dd.ReadMapStart()
  16724. if canChange && v == nil {
  16725. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  16726. v = make(map[interface{}]uint, xlen)
  16727. changed = true
  16728. }
  16729. if containerLen == 0 {
  16730. dd.ReadMapEnd()
  16731. return v, changed
  16732. }
  16733. var mk interface{}
  16734. var mv uint
  16735. hasLen := containerLen > 0
  16736. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  16737. if esep {
  16738. dd.ReadMapElemKey()
  16739. }
  16740. mk = nil
  16741. d.decode(&mk)
  16742. if bv, bok := mk.([]byte); bok {
  16743. mk = d.string(bv)
  16744. }
  16745. if esep {
  16746. dd.ReadMapElemValue()
  16747. }
  16748. if dd.TryDecodeAsNil() {
  16749. if d.h.DeleteOnNilMapValue {
  16750. delete(v, mk)
  16751. } else {
  16752. v[mk] = 0
  16753. }
  16754. continue
  16755. }
  16756. mv = uint(dd.DecodeUint(uintBitsize))
  16757. if v != nil {
  16758. v[mk] = mv
  16759. }
  16760. }
  16761. dd.ReadMapEnd()
  16762. return v, changed
  16763. }
  16764. func (d *Decoder) fastpathDecMapIntfUint8R(f *codecFnInfo, rv reflect.Value) {
  16765. if rv.Kind() == reflect.Ptr {
  16766. vp := rv2i(rv).(*map[interface{}]uint8)
  16767. if v, changed := fastpathTV.DecMapIntfUint8V(*vp, true, d); changed {
  16768. *vp = v
  16769. }
  16770. return
  16771. }
  16772. fastpathTV.DecMapIntfUint8V(rv2i(rv).(map[interface{}]uint8), false, d)
  16773. }
  16774. func (f fastpathT) DecMapIntfUint8X(vp *map[interface{}]uint8, d *Decoder) {
  16775. if v, changed := f.DecMapIntfUint8V(*vp, true, d); changed {
  16776. *vp = v
  16777. }
  16778. }
  16779. func (_ fastpathT) DecMapIntfUint8V(v map[interface{}]uint8, canChange bool,
  16780. d *Decoder) (_ map[interface{}]uint8, changed bool) {
  16781. dd, esep := d.d, d.hh.hasElemSeparators()
  16782. containerLen := dd.ReadMapStart()
  16783. if canChange && v == nil {
  16784. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  16785. v = make(map[interface{}]uint8, xlen)
  16786. changed = true
  16787. }
  16788. if containerLen == 0 {
  16789. dd.ReadMapEnd()
  16790. return v, changed
  16791. }
  16792. var mk interface{}
  16793. var mv uint8
  16794. hasLen := containerLen > 0
  16795. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  16796. if esep {
  16797. dd.ReadMapElemKey()
  16798. }
  16799. mk = nil
  16800. d.decode(&mk)
  16801. if bv, bok := mk.([]byte); bok {
  16802. mk = d.string(bv)
  16803. }
  16804. if esep {
  16805. dd.ReadMapElemValue()
  16806. }
  16807. if dd.TryDecodeAsNil() {
  16808. if d.h.DeleteOnNilMapValue {
  16809. delete(v, mk)
  16810. } else {
  16811. v[mk] = 0
  16812. }
  16813. continue
  16814. }
  16815. mv = uint8(dd.DecodeUint(8))
  16816. if v != nil {
  16817. v[mk] = mv
  16818. }
  16819. }
  16820. dd.ReadMapEnd()
  16821. return v, changed
  16822. }
  16823. func (d *Decoder) fastpathDecMapIntfUint16R(f *codecFnInfo, rv reflect.Value) {
  16824. if rv.Kind() == reflect.Ptr {
  16825. vp := rv2i(rv).(*map[interface{}]uint16)
  16826. if v, changed := fastpathTV.DecMapIntfUint16V(*vp, true, d); changed {
  16827. *vp = v
  16828. }
  16829. return
  16830. }
  16831. fastpathTV.DecMapIntfUint16V(rv2i(rv).(map[interface{}]uint16), false, d)
  16832. }
  16833. func (f fastpathT) DecMapIntfUint16X(vp *map[interface{}]uint16, d *Decoder) {
  16834. if v, changed := f.DecMapIntfUint16V(*vp, true, d); changed {
  16835. *vp = v
  16836. }
  16837. }
  16838. func (_ fastpathT) DecMapIntfUint16V(v map[interface{}]uint16, canChange bool,
  16839. d *Decoder) (_ map[interface{}]uint16, changed bool) {
  16840. dd, esep := d.d, d.hh.hasElemSeparators()
  16841. containerLen := dd.ReadMapStart()
  16842. if canChange && v == nil {
  16843. xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
  16844. v = make(map[interface{}]uint16, xlen)
  16845. changed = true
  16846. }
  16847. if containerLen == 0 {
  16848. dd.ReadMapEnd()
  16849. return v, changed
  16850. }
  16851. var mk interface{}
  16852. var mv uint16
  16853. hasLen := containerLen > 0
  16854. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  16855. if esep {
  16856. dd.ReadMapElemKey()
  16857. }
  16858. mk = nil
  16859. d.decode(&mk)
  16860. if bv, bok := mk.([]byte); bok {
  16861. mk = d.string(bv)
  16862. }
  16863. if esep {
  16864. dd.ReadMapElemValue()
  16865. }
  16866. if dd.TryDecodeAsNil() {
  16867. if d.h.DeleteOnNilMapValue {
  16868. delete(v, mk)
  16869. } else {
  16870. v[mk] = 0
  16871. }
  16872. continue
  16873. }
  16874. mv = uint16(dd.DecodeUint(16))
  16875. if v != nil {
  16876. v[mk] = mv
  16877. }
  16878. }
  16879. dd.ReadMapEnd()
  16880. return v, changed
  16881. }
  16882. func (d *Decoder) fastpathDecMapIntfUint32R(f *codecFnInfo, rv reflect.Value) {
  16883. if rv.Kind() == reflect.Ptr {
  16884. vp := rv2i(rv).(*map[interface{}]uint32)
  16885. if v, changed := fastpathTV.DecMapIntfUint32V(*vp, true, d); changed {
  16886. *vp = v
  16887. }
  16888. return
  16889. }
  16890. fastpathTV.DecMapIntfUint32V(rv2i(rv).(map[interface{}]uint32), false, d)
  16891. }
  16892. func (f fastpathT) DecMapIntfUint32X(vp *map[interface{}]uint32, d *Decoder) {
  16893. if v, changed := f.DecMapIntfUint32V(*vp, true, d); changed {
  16894. *vp = v
  16895. }
  16896. }
  16897. func (_ fastpathT) DecMapIntfUint32V(v map[interface{}]uint32, canChange bool,
  16898. d *Decoder) (_ map[interface{}]uint32, changed bool) {
  16899. dd, esep := d.d, d.hh.hasElemSeparators()
  16900. containerLen := dd.ReadMapStart()
  16901. if canChange && v == nil {
  16902. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  16903. v = make(map[interface{}]uint32, xlen)
  16904. changed = true
  16905. }
  16906. if containerLen == 0 {
  16907. dd.ReadMapEnd()
  16908. return v, changed
  16909. }
  16910. var mk interface{}
  16911. var mv uint32
  16912. hasLen := containerLen > 0
  16913. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  16914. if esep {
  16915. dd.ReadMapElemKey()
  16916. }
  16917. mk = nil
  16918. d.decode(&mk)
  16919. if bv, bok := mk.([]byte); bok {
  16920. mk = d.string(bv)
  16921. }
  16922. if esep {
  16923. dd.ReadMapElemValue()
  16924. }
  16925. if dd.TryDecodeAsNil() {
  16926. if d.h.DeleteOnNilMapValue {
  16927. delete(v, mk)
  16928. } else {
  16929. v[mk] = 0
  16930. }
  16931. continue
  16932. }
  16933. mv = uint32(dd.DecodeUint(32))
  16934. if v != nil {
  16935. v[mk] = mv
  16936. }
  16937. }
  16938. dd.ReadMapEnd()
  16939. return v, changed
  16940. }
  16941. func (d *Decoder) fastpathDecMapIntfUint64R(f *codecFnInfo, rv reflect.Value) {
  16942. if rv.Kind() == reflect.Ptr {
  16943. vp := rv2i(rv).(*map[interface{}]uint64)
  16944. if v, changed := fastpathTV.DecMapIntfUint64V(*vp, true, d); changed {
  16945. *vp = v
  16946. }
  16947. return
  16948. }
  16949. fastpathTV.DecMapIntfUint64V(rv2i(rv).(map[interface{}]uint64), false, d)
  16950. }
  16951. func (f fastpathT) DecMapIntfUint64X(vp *map[interface{}]uint64, d *Decoder) {
  16952. if v, changed := f.DecMapIntfUint64V(*vp, true, d); changed {
  16953. *vp = v
  16954. }
  16955. }
  16956. func (_ fastpathT) DecMapIntfUint64V(v map[interface{}]uint64, canChange bool,
  16957. d *Decoder) (_ map[interface{}]uint64, changed bool) {
  16958. dd, esep := d.d, d.hh.hasElemSeparators()
  16959. containerLen := dd.ReadMapStart()
  16960. if canChange && v == nil {
  16961. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  16962. v = make(map[interface{}]uint64, xlen)
  16963. changed = true
  16964. }
  16965. if containerLen == 0 {
  16966. dd.ReadMapEnd()
  16967. return v, changed
  16968. }
  16969. var mk interface{}
  16970. var mv uint64
  16971. hasLen := containerLen > 0
  16972. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  16973. if esep {
  16974. dd.ReadMapElemKey()
  16975. }
  16976. mk = nil
  16977. d.decode(&mk)
  16978. if bv, bok := mk.([]byte); bok {
  16979. mk = d.string(bv)
  16980. }
  16981. if esep {
  16982. dd.ReadMapElemValue()
  16983. }
  16984. if dd.TryDecodeAsNil() {
  16985. if d.h.DeleteOnNilMapValue {
  16986. delete(v, mk)
  16987. } else {
  16988. v[mk] = 0
  16989. }
  16990. continue
  16991. }
  16992. mv = dd.DecodeUint(64)
  16993. if v != nil {
  16994. v[mk] = mv
  16995. }
  16996. }
  16997. dd.ReadMapEnd()
  16998. return v, changed
  16999. }
  17000. func (d *Decoder) fastpathDecMapIntfUintptrR(f *codecFnInfo, rv reflect.Value) {
  17001. if rv.Kind() == reflect.Ptr {
  17002. vp := rv2i(rv).(*map[interface{}]uintptr)
  17003. if v, changed := fastpathTV.DecMapIntfUintptrV(*vp, true, d); changed {
  17004. *vp = v
  17005. }
  17006. return
  17007. }
  17008. fastpathTV.DecMapIntfUintptrV(rv2i(rv).(map[interface{}]uintptr), false, d)
  17009. }
  17010. func (f fastpathT) DecMapIntfUintptrX(vp *map[interface{}]uintptr, d *Decoder) {
  17011. if v, changed := f.DecMapIntfUintptrV(*vp, true, d); changed {
  17012. *vp = v
  17013. }
  17014. }
  17015. func (_ fastpathT) DecMapIntfUintptrV(v map[interface{}]uintptr, canChange bool,
  17016. d *Decoder) (_ map[interface{}]uintptr, changed bool) {
  17017. dd, esep := d.d, d.hh.hasElemSeparators()
  17018. containerLen := dd.ReadMapStart()
  17019. if canChange && v == nil {
  17020. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  17021. v = make(map[interface{}]uintptr, xlen)
  17022. changed = true
  17023. }
  17024. if containerLen == 0 {
  17025. dd.ReadMapEnd()
  17026. return v, changed
  17027. }
  17028. var mk interface{}
  17029. var mv uintptr
  17030. hasLen := containerLen > 0
  17031. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17032. if esep {
  17033. dd.ReadMapElemKey()
  17034. }
  17035. mk = nil
  17036. d.decode(&mk)
  17037. if bv, bok := mk.([]byte); bok {
  17038. mk = d.string(bv)
  17039. }
  17040. if esep {
  17041. dd.ReadMapElemValue()
  17042. }
  17043. if dd.TryDecodeAsNil() {
  17044. if d.h.DeleteOnNilMapValue {
  17045. delete(v, mk)
  17046. } else {
  17047. v[mk] = 0
  17048. }
  17049. continue
  17050. }
  17051. mv = uintptr(dd.DecodeUint(uintBitsize))
  17052. if v != nil {
  17053. v[mk] = mv
  17054. }
  17055. }
  17056. dd.ReadMapEnd()
  17057. return v, changed
  17058. }
  17059. func (d *Decoder) fastpathDecMapIntfIntR(f *codecFnInfo, rv reflect.Value) {
  17060. if rv.Kind() == reflect.Ptr {
  17061. vp := rv2i(rv).(*map[interface{}]int)
  17062. if v, changed := fastpathTV.DecMapIntfIntV(*vp, true, d); changed {
  17063. *vp = v
  17064. }
  17065. return
  17066. }
  17067. fastpathTV.DecMapIntfIntV(rv2i(rv).(map[interface{}]int), false, d)
  17068. }
  17069. func (f fastpathT) DecMapIntfIntX(vp *map[interface{}]int, d *Decoder) {
  17070. if v, changed := f.DecMapIntfIntV(*vp, true, d); changed {
  17071. *vp = v
  17072. }
  17073. }
  17074. func (_ fastpathT) DecMapIntfIntV(v map[interface{}]int, canChange bool,
  17075. d *Decoder) (_ map[interface{}]int, changed bool) {
  17076. dd, esep := d.d, d.hh.hasElemSeparators()
  17077. containerLen := dd.ReadMapStart()
  17078. if canChange && v == nil {
  17079. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  17080. v = make(map[interface{}]int, xlen)
  17081. changed = true
  17082. }
  17083. if containerLen == 0 {
  17084. dd.ReadMapEnd()
  17085. return v, changed
  17086. }
  17087. var mk interface{}
  17088. var mv int
  17089. hasLen := containerLen > 0
  17090. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17091. if esep {
  17092. dd.ReadMapElemKey()
  17093. }
  17094. mk = nil
  17095. d.decode(&mk)
  17096. if bv, bok := mk.([]byte); bok {
  17097. mk = d.string(bv)
  17098. }
  17099. if esep {
  17100. dd.ReadMapElemValue()
  17101. }
  17102. if dd.TryDecodeAsNil() {
  17103. if d.h.DeleteOnNilMapValue {
  17104. delete(v, mk)
  17105. } else {
  17106. v[mk] = 0
  17107. }
  17108. continue
  17109. }
  17110. mv = int(dd.DecodeInt(intBitsize))
  17111. if v != nil {
  17112. v[mk] = mv
  17113. }
  17114. }
  17115. dd.ReadMapEnd()
  17116. return v, changed
  17117. }
  17118. func (d *Decoder) fastpathDecMapIntfInt8R(f *codecFnInfo, rv reflect.Value) {
  17119. if rv.Kind() == reflect.Ptr {
  17120. vp := rv2i(rv).(*map[interface{}]int8)
  17121. if v, changed := fastpathTV.DecMapIntfInt8V(*vp, true, d); changed {
  17122. *vp = v
  17123. }
  17124. return
  17125. }
  17126. fastpathTV.DecMapIntfInt8V(rv2i(rv).(map[interface{}]int8), false, d)
  17127. }
  17128. func (f fastpathT) DecMapIntfInt8X(vp *map[interface{}]int8, d *Decoder) {
  17129. if v, changed := f.DecMapIntfInt8V(*vp, true, d); changed {
  17130. *vp = v
  17131. }
  17132. }
  17133. func (_ fastpathT) DecMapIntfInt8V(v map[interface{}]int8, canChange bool,
  17134. d *Decoder) (_ map[interface{}]int8, changed bool) {
  17135. dd, esep := d.d, d.hh.hasElemSeparators()
  17136. containerLen := dd.ReadMapStart()
  17137. if canChange && v == nil {
  17138. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  17139. v = make(map[interface{}]int8, xlen)
  17140. changed = true
  17141. }
  17142. if containerLen == 0 {
  17143. dd.ReadMapEnd()
  17144. return v, changed
  17145. }
  17146. var mk interface{}
  17147. var mv int8
  17148. hasLen := containerLen > 0
  17149. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17150. if esep {
  17151. dd.ReadMapElemKey()
  17152. }
  17153. mk = nil
  17154. d.decode(&mk)
  17155. if bv, bok := mk.([]byte); bok {
  17156. mk = d.string(bv)
  17157. }
  17158. if esep {
  17159. dd.ReadMapElemValue()
  17160. }
  17161. if dd.TryDecodeAsNil() {
  17162. if d.h.DeleteOnNilMapValue {
  17163. delete(v, mk)
  17164. } else {
  17165. v[mk] = 0
  17166. }
  17167. continue
  17168. }
  17169. mv = int8(dd.DecodeInt(8))
  17170. if v != nil {
  17171. v[mk] = mv
  17172. }
  17173. }
  17174. dd.ReadMapEnd()
  17175. return v, changed
  17176. }
  17177. func (d *Decoder) fastpathDecMapIntfInt16R(f *codecFnInfo, rv reflect.Value) {
  17178. if rv.Kind() == reflect.Ptr {
  17179. vp := rv2i(rv).(*map[interface{}]int16)
  17180. if v, changed := fastpathTV.DecMapIntfInt16V(*vp, true, d); changed {
  17181. *vp = v
  17182. }
  17183. return
  17184. }
  17185. fastpathTV.DecMapIntfInt16V(rv2i(rv).(map[interface{}]int16), false, d)
  17186. }
  17187. func (f fastpathT) DecMapIntfInt16X(vp *map[interface{}]int16, d *Decoder) {
  17188. if v, changed := f.DecMapIntfInt16V(*vp, true, d); changed {
  17189. *vp = v
  17190. }
  17191. }
  17192. func (_ fastpathT) DecMapIntfInt16V(v map[interface{}]int16, canChange bool,
  17193. d *Decoder) (_ map[interface{}]int16, changed bool) {
  17194. dd, esep := d.d, d.hh.hasElemSeparators()
  17195. containerLen := dd.ReadMapStart()
  17196. if canChange && v == nil {
  17197. xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
  17198. v = make(map[interface{}]int16, xlen)
  17199. changed = true
  17200. }
  17201. if containerLen == 0 {
  17202. dd.ReadMapEnd()
  17203. return v, changed
  17204. }
  17205. var mk interface{}
  17206. var mv int16
  17207. hasLen := containerLen > 0
  17208. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17209. if esep {
  17210. dd.ReadMapElemKey()
  17211. }
  17212. mk = nil
  17213. d.decode(&mk)
  17214. if bv, bok := mk.([]byte); bok {
  17215. mk = d.string(bv)
  17216. }
  17217. if esep {
  17218. dd.ReadMapElemValue()
  17219. }
  17220. if dd.TryDecodeAsNil() {
  17221. if d.h.DeleteOnNilMapValue {
  17222. delete(v, mk)
  17223. } else {
  17224. v[mk] = 0
  17225. }
  17226. continue
  17227. }
  17228. mv = int16(dd.DecodeInt(16))
  17229. if v != nil {
  17230. v[mk] = mv
  17231. }
  17232. }
  17233. dd.ReadMapEnd()
  17234. return v, changed
  17235. }
  17236. func (d *Decoder) fastpathDecMapIntfInt32R(f *codecFnInfo, rv reflect.Value) {
  17237. if rv.Kind() == reflect.Ptr {
  17238. vp := rv2i(rv).(*map[interface{}]int32)
  17239. if v, changed := fastpathTV.DecMapIntfInt32V(*vp, true, d); changed {
  17240. *vp = v
  17241. }
  17242. return
  17243. }
  17244. fastpathTV.DecMapIntfInt32V(rv2i(rv).(map[interface{}]int32), false, d)
  17245. }
  17246. func (f fastpathT) DecMapIntfInt32X(vp *map[interface{}]int32, d *Decoder) {
  17247. if v, changed := f.DecMapIntfInt32V(*vp, true, d); changed {
  17248. *vp = v
  17249. }
  17250. }
  17251. func (_ fastpathT) DecMapIntfInt32V(v map[interface{}]int32, canChange bool,
  17252. d *Decoder) (_ map[interface{}]int32, changed bool) {
  17253. dd, esep := d.d, d.hh.hasElemSeparators()
  17254. containerLen := dd.ReadMapStart()
  17255. if canChange && v == nil {
  17256. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  17257. v = make(map[interface{}]int32, xlen)
  17258. changed = true
  17259. }
  17260. if containerLen == 0 {
  17261. dd.ReadMapEnd()
  17262. return v, changed
  17263. }
  17264. var mk interface{}
  17265. var mv int32
  17266. hasLen := containerLen > 0
  17267. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17268. if esep {
  17269. dd.ReadMapElemKey()
  17270. }
  17271. mk = nil
  17272. d.decode(&mk)
  17273. if bv, bok := mk.([]byte); bok {
  17274. mk = d.string(bv)
  17275. }
  17276. if esep {
  17277. dd.ReadMapElemValue()
  17278. }
  17279. if dd.TryDecodeAsNil() {
  17280. if d.h.DeleteOnNilMapValue {
  17281. delete(v, mk)
  17282. } else {
  17283. v[mk] = 0
  17284. }
  17285. continue
  17286. }
  17287. mv = int32(dd.DecodeInt(32))
  17288. if v != nil {
  17289. v[mk] = mv
  17290. }
  17291. }
  17292. dd.ReadMapEnd()
  17293. return v, changed
  17294. }
  17295. func (d *Decoder) fastpathDecMapIntfInt64R(f *codecFnInfo, rv reflect.Value) {
  17296. if rv.Kind() == reflect.Ptr {
  17297. vp := rv2i(rv).(*map[interface{}]int64)
  17298. if v, changed := fastpathTV.DecMapIntfInt64V(*vp, true, d); changed {
  17299. *vp = v
  17300. }
  17301. return
  17302. }
  17303. fastpathTV.DecMapIntfInt64V(rv2i(rv).(map[interface{}]int64), false, d)
  17304. }
  17305. func (f fastpathT) DecMapIntfInt64X(vp *map[interface{}]int64, d *Decoder) {
  17306. if v, changed := f.DecMapIntfInt64V(*vp, true, d); changed {
  17307. *vp = v
  17308. }
  17309. }
  17310. func (_ fastpathT) DecMapIntfInt64V(v map[interface{}]int64, canChange bool,
  17311. d *Decoder) (_ map[interface{}]int64, changed bool) {
  17312. dd, esep := d.d, d.hh.hasElemSeparators()
  17313. containerLen := dd.ReadMapStart()
  17314. if canChange && v == nil {
  17315. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  17316. v = make(map[interface{}]int64, xlen)
  17317. changed = true
  17318. }
  17319. if containerLen == 0 {
  17320. dd.ReadMapEnd()
  17321. return v, changed
  17322. }
  17323. var mk interface{}
  17324. var mv int64
  17325. hasLen := containerLen > 0
  17326. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17327. if esep {
  17328. dd.ReadMapElemKey()
  17329. }
  17330. mk = nil
  17331. d.decode(&mk)
  17332. if bv, bok := mk.([]byte); bok {
  17333. mk = d.string(bv)
  17334. }
  17335. if esep {
  17336. dd.ReadMapElemValue()
  17337. }
  17338. if dd.TryDecodeAsNil() {
  17339. if d.h.DeleteOnNilMapValue {
  17340. delete(v, mk)
  17341. } else {
  17342. v[mk] = 0
  17343. }
  17344. continue
  17345. }
  17346. mv = dd.DecodeInt(64)
  17347. if v != nil {
  17348. v[mk] = mv
  17349. }
  17350. }
  17351. dd.ReadMapEnd()
  17352. return v, changed
  17353. }
  17354. func (d *Decoder) fastpathDecMapIntfFloat32R(f *codecFnInfo, rv reflect.Value) {
  17355. if rv.Kind() == reflect.Ptr {
  17356. vp := rv2i(rv).(*map[interface{}]float32)
  17357. if v, changed := fastpathTV.DecMapIntfFloat32V(*vp, true, d); changed {
  17358. *vp = v
  17359. }
  17360. return
  17361. }
  17362. fastpathTV.DecMapIntfFloat32V(rv2i(rv).(map[interface{}]float32), false, d)
  17363. }
  17364. func (f fastpathT) DecMapIntfFloat32X(vp *map[interface{}]float32, d *Decoder) {
  17365. if v, changed := f.DecMapIntfFloat32V(*vp, true, d); changed {
  17366. *vp = v
  17367. }
  17368. }
  17369. func (_ fastpathT) DecMapIntfFloat32V(v map[interface{}]float32, canChange bool,
  17370. d *Decoder) (_ map[interface{}]float32, changed bool) {
  17371. dd, esep := d.d, d.hh.hasElemSeparators()
  17372. containerLen := dd.ReadMapStart()
  17373. if canChange && v == nil {
  17374. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  17375. v = make(map[interface{}]float32, xlen)
  17376. changed = true
  17377. }
  17378. if containerLen == 0 {
  17379. dd.ReadMapEnd()
  17380. return v, changed
  17381. }
  17382. var mk interface{}
  17383. var mv float32
  17384. hasLen := containerLen > 0
  17385. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17386. if esep {
  17387. dd.ReadMapElemKey()
  17388. }
  17389. mk = nil
  17390. d.decode(&mk)
  17391. if bv, bok := mk.([]byte); bok {
  17392. mk = d.string(bv)
  17393. }
  17394. if esep {
  17395. dd.ReadMapElemValue()
  17396. }
  17397. if dd.TryDecodeAsNil() {
  17398. if d.h.DeleteOnNilMapValue {
  17399. delete(v, mk)
  17400. } else {
  17401. v[mk] = 0
  17402. }
  17403. continue
  17404. }
  17405. mv = float32(dd.DecodeFloat(true))
  17406. if v != nil {
  17407. v[mk] = mv
  17408. }
  17409. }
  17410. dd.ReadMapEnd()
  17411. return v, changed
  17412. }
  17413. func (d *Decoder) fastpathDecMapIntfFloat64R(f *codecFnInfo, rv reflect.Value) {
  17414. if rv.Kind() == reflect.Ptr {
  17415. vp := rv2i(rv).(*map[interface{}]float64)
  17416. if v, changed := fastpathTV.DecMapIntfFloat64V(*vp, true, d); changed {
  17417. *vp = v
  17418. }
  17419. return
  17420. }
  17421. fastpathTV.DecMapIntfFloat64V(rv2i(rv).(map[interface{}]float64), false, d)
  17422. }
  17423. func (f fastpathT) DecMapIntfFloat64X(vp *map[interface{}]float64, d *Decoder) {
  17424. if v, changed := f.DecMapIntfFloat64V(*vp, true, d); changed {
  17425. *vp = v
  17426. }
  17427. }
  17428. func (_ fastpathT) DecMapIntfFloat64V(v map[interface{}]float64, canChange bool,
  17429. d *Decoder) (_ map[interface{}]float64, changed bool) {
  17430. dd, esep := d.d, d.hh.hasElemSeparators()
  17431. containerLen := dd.ReadMapStart()
  17432. if canChange && v == nil {
  17433. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  17434. v = make(map[interface{}]float64, xlen)
  17435. changed = true
  17436. }
  17437. if containerLen == 0 {
  17438. dd.ReadMapEnd()
  17439. return v, changed
  17440. }
  17441. var mk interface{}
  17442. var mv float64
  17443. hasLen := containerLen > 0
  17444. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17445. if esep {
  17446. dd.ReadMapElemKey()
  17447. }
  17448. mk = nil
  17449. d.decode(&mk)
  17450. if bv, bok := mk.([]byte); bok {
  17451. mk = d.string(bv)
  17452. }
  17453. if esep {
  17454. dd.ReadMapElemValue()
  17455. }
  17456. if dd.TryDecodeAsNil() {
  17457. if d.h.DeleteOnNilMapValue {
  17458. delete(v, mk)
  17459. } else {
  17460. v[mk] = 0
  17461. }
  17462. continue
  17463. }
  17464. mv = dd.DecodeFloat(false)
  17465. if v != nil {
  17466. v[mk] = mv
  17467. }
  17468. }
  17469. dd.ReadMapEnd()
  17470. return v, changed
  17471. }
  17472. func (d *Decoder) fastpathDecMapIntfBoolR(f *codecFnInfo, rv reflect.Value) {
  17473. if rv.Kind() == reflect.Ptr {
  17474. vp := rv2i(rv).(*map[interface{}]bool)
  17475. if v, changed := fastpathTV.DecMapIntfBoolV(*vp, true, d); changed {
  17476. *vp = v
  17477. }
  17478. return
  17479. }
  17480. fastpathTV.DecMapIntfBoolV(rv2i(rv).(map[interface{}]bool), false, d)
  17481. }
  17482. func (f fastpathT) DecMapIntfBoolX(vp *map[interface{}]bool, d *Decoder) {
  17483. if v, changed := f.DecMapIntfBoolV(*vp, true, d); changed {
  17484. *vp = v
  17485. }
  17486. }
  17487. func (_ fastpathT) DecMapIntfBoolV(v map[interface{}]bool, canChange bool,
  17488. d *Decoder) (_ map[interface{}]bool, changed bool) {
  17489. dd, esep := d.d, d.hh.hasElemSeparators()
  17490. containerLen := dd.ReadMapStart()
  17491. if canChange && v == nil {
  17492. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  17493. v = make(map[interface{}]bool, xlen)
  17494. changed = true
  17495. }
  17496. if containerLen == 0 {
  17497. dd.ReadMapEnd()
  17498. return v, changed
  17499. }
  17500. var mk interface{}
  17501. var mv bool
  17502. hasLen := containerLen > 0
  17503. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17504. if esep {
  17505. dd.ReadMapElemKey()
  17506. }
  17507. mk = nil
  17508. d.decode(&mk)
  17509. if bv, bok := mk.([]byte); bok {
  17510. mk = d.string(bv)
  17511. }
  17512. if esep {
  17513. dd.ReadMapElemValue()
  17514. }
  17515. if dd.TryDecodeAsNil() {
  17516. if d.h.DeleteOnNilMapValue {
  17517. delete(v, mk)
  17518. } else {
  17519. v[mk] = false
  17520. }
  17521. continue
  17522. }
  17523. mv = dd.DecodeBool()
  17524. if v != nil {
  17525. v[mk] = mv
  17526. }
  17527. }
  17528. dd.ReadMapEnd()
  17529. return v, changed
  17530. }
  17531. func (d *Decoder) fastpathDecMapStringIntfR(f *codecFnInfo, rv reflect.Value) {
  17532. if rv.Kind() == reflect.Ptr {
  17533. vp := rv2i(rv).(*map[string]interface{})
  17534. if v, changed := fastpathTV.DecMapStringIntfV(*vp, true, d); changed {
  17535. *vp = v
  17536. }
  17537. return
  17538. }
  17539. fastpathTV.DecMapStringIntfV(rv2i(rv).(map[string]interface{}), false, d)
  17540. }
  17541. func (f fastpathT) DecMapStringIntfX(vp *map[string]interface{}, d *Decoder) {
  17542. if v, changed := f.DecMapStringIntfV(*vp, true, d); changed {
  17543. *vp = v
  17544. }
  17545. }
  17546. func (_ fastpathT) DecMapStringIntfV(v map[string]interface{}, canChange bool,
  17547. d *Decoder) (_ map[string]interface{}, changed bool) {
  17548. dd, esep := d.d, d.hh.hasElemSeparators()
  17549. containerLen := dd.ReadMapStart()
  17550. if canChange && v == nil {
  17551. xlen := decInferLen(containerLen, d.h.MaxInitLen, 32)
  17552. v = make(map[string]interface{}, xlen)
  17553. changed = true
  17554. }
  17555. if containerLen == 0 {
  17556. dd.ReadMapEnd()
  17557. return v, changed
  17558. }
  17559. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  17560. var mk string
  17561. var mv interface{}
  17562. hasLen := containerLen > 0
  17563. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17564. if esep {
  17565. dd.ReadMapElemKey()
  17566. }
  17567. mk = dd.DecodeString()
  17568. if esep {
  17569. dd.ReadMapElemValue()
  17570. }
  17571. if dd.TryDecodeAsNil() {
  17572. if d.h.DeleteOnNilMapValue {
  17573. delete(v, mk)
  17574. } else {
  17575. v[mk] = nil
  17576. }
  17577. continue
  17578. }
  17579. if mapGet {
  17580. mv = v[mk]
  17581. } else {
  17582. mv = nil
  17583. }
  17584. d.decode(&mv)
  17585. if v != nil {
  17586. v[mk] = mv
  17587. }
  17588. }
  17589. dd.ReadMapEnd()
  17590. return v, changed
  17591. }
  17592. func (d *Decoder) fastpathDecMapStringStringR(f *codecFnInfo, rv reflect.Value) {
  17593. if rv.Kind() == reflect.Ptr {
  17594. vp := rv2i(rv).(*map[string]string)
  17595. if v, changed := fastpathTV.DecMapStringStringV(*vp, true, d); changed {
  17596. *vp = v
  17597. }
  17598. return
  17599. }
  17600. fastpathTV.DecMapStringStringV(rv2i(rv).(map[string]string), false, d)
  17601. }
  17602. func (f fastpathT) DecMapStringStringX(vp *map[string]string, d *Decoder) {
  17603. if v, changed := f.DecMapStringStringV(*vp, true, d); changed {
  17604. *vp = v
  17605. }
  17606. }
  17607. func (_ fastpathT) DecMapStringStringV(v map[string]string, canChange bool,
  17608. d *Decoder) (_ map[string]string, changed bool) {
  17609. dd, esep := d.d, d.hh.hasElemSeparators()
  17610. containerLen := dd.ReadMapStart()
  17611. if canChange && v == nil {
  17612. xlen := decInferLen(containerLen, d.h.MaxInitLen, 32)
  17613. v = make(map[string]string, xlen)
  17614. changed = true
  17615. }
  17616. if containerLen == 0 {
  17617. dd.ReadMapEnd()
  17618. return v, changed
  17619. }
  17620. var mk string
  17621. var mv string
  17622. hasLen := containerLen > 0
  17623. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17624. if esep {
  17625. dd.ReadMapElemKey()
  17626. }
  17627. mk = dd.DecodeString()
  17628. if esep {
  17629. dd.ReadMapElemValue()
  17630. }
  17631. if dd.TryDecodeAsNil() {
  17632. if d.h.DeleteOnNilMapValue {
  17633. delete(v, mk)
  17634. } else {
  17635. v[mk] = ""
  17636. }
  17637. continue
  17638. }
  17639. mv = dd.DecodeString()
  17640. if v != nil {
  17641. v[mk] = mv
  17642. }
  17643. }
  17644. dd.ReadMapEnd()
  17645. return v, changed
  17646. }
  17647. func (d *Decoder) fastpathDecMapStringUintR(f *codecFnInfo, rv reflect.Value) {
  17648. if rv.Kind() == reflect.Ptr {
  17649. vp := rv2i(rv).(*map[string]uint)
  17650. if v, changed := fastpathTV.DecMapStringUintV(*vp, true, d); changed {
  17651. *vp = v
  17652. }
  17653. return
  17654. }
  17655. fastpathTV.DecMapStringUintV(rv2i(rv).(map[string]uint), false, d)
  17656. }
  17657. func (f fastpathT) DecMapStringUintX(vp *map[string]uint, d *Decoder) {
  17658. if v, changed := f.DecMapStringUintV(*vp, true, d); changed {
  17659. *vp = v
  17660. }
  17661. }
  17662. func (_ fastpathT) DecMapStringUintV(v map[string]uint, canChange bool,
  17663. d *Decoder) (_ map[string]uint, changed bool) {
  17664. dd, esep := d.d, d.hh.hasElemSeparators()
  17665. containerLen := dd.ReadMapStart()
  17666. if canChange && v == nil {
  17667. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  17668. v = make(map[string]uint, xlen)
  17669. changed = true
  17670. }
  17671. if containerLen == 0 {
  17672. dd.ReadMapEnd()
  17673. return v, changed
  17674. }
  17675. var mk string
  17676. var mv uint
  17677. hasLen := containerLen > 0
  17678. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17679. if esep {
  17680. dd.ReadMapElemKey()
  17681. }
  17682. mk = dd.DecodeString()
  17683. if esep {
  17684. dd.ReadMapElemValue()
  17685. }
  17686. if dd.TryDecodeAsNil() {
  17687. if d.h.DeleteOnNilMapValue {
  17688. delete(v, mk)
  17689. } else {
  17690. v[mk] = 0
  17691. }
  17692. continue
  17693. }
  17694. mv = uint(dd.DecodeUint(uintBitsize))
  17695. if v != nil {
  17696. v[mk] = mv
  17697. }
  17698. }
  17699. dd.ReadMapEnd()
  17700. return v, changed
  17701. }
  17702. func (d *Decoder) fastpathDecMapStringUint8R(f *codecFnInfo, rv reflect.Value) {
  17703. if rv.Kind() == reflect.Ptr {
  17704. vp := rv2i(rv).(*map[string]uint8)
  17705. if v, changed := fastpathTV.DecMapStringUint8V(*vp, true, d); changed {
  17706. *vp = v
  17707. }
  17708. return
  17709. }
  17710. fastpathTV.DecMapStringUint8V(rv2i(rv).(map[string]uint8), false, d)
  17711. }
  17712. func (f fastpathT) DecMapStringUint8X(vp *map[string]uint8, d *Decoder) {
  17713. if v, changed := f.DecMapStringUint8V(*vp, true, d); changed {
  17714. *vp = v
  17715. }
  17716. }
  17717. func (_ fastpathT) DecMapStringUint8V(v map[string]uint8, canChange bool,
  17718. d *Decoder) (_ map[string]uint8, changed bool) {
  17719. dd, esep := d.d, d.hh.hasElemSeparators()
  17720. containerLen := dd.ReadMapStart()
  17721. if canChange && v == nil {
  17722. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  17723. v = make(map[string]uint8, xlen)
  17724. changed = true
  17725. }
  17726. if containerLen == 0 {
  17727. dd.ReadMapEnd()
  17728. return v, changed
  17729. }
  17730. var mk string
  17731. var mv uint8
  17732. hasLen := containerLen > 0
  17733. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17734. if esep {
  17735. dd.ReadMapElemKey()
  17736. }
  17737. mk = dd.DecodeString()
  17738. if esep {
  17739. dd.ReadMapElemValue()
  17740. }
  17741. if dd.TryDecodeAsNil() {
  17742. if d.h.DeleteOnNilMapValue {
  17743. delete(v, mk)
  17744. } else {
  17745. v[mk] = 0
  17746. }
  17747. continue
  17748. }
  17749. mv = uint8(dd.DecodeUint(8))
  17750. if v != nil {
  17751. v[mk] = mv
  17752. }
  17753. }
  17754. dd.ReadMapEnd()
  17755. return v, changed
  17756. }
  17757. func (d *Decoder) fastpathDecMapStringUint16R(f *codecFnInfo, rv reflect.Value) {
  17758. if rv.Kind() == reflect.Ptr {
  17759. vp := rv2i(rv).(*map[string]uint16)
  17760. if v, changed := fastpathTV.DecMapStringUint16V(*vp, true, d); changed {
  17761. *vp = v
  17762. }
  17763. return
  17764. }
  17765. fastpathTV.DecMapStringUint16V(rv2i(rv).(map[string]uint16), false, d)
  17766. }
  17767. func (f fastpathT) DecMapStringUint16X(vp *map[string]uint16, d *Decoder) {
  17768. if v, changed := f.DecMapStringUint16V(*vp, true, d); changed {
  17769. *vp = v
  17770. }
  17771. }
  17772. func (_ fastpathT) DecMapStringUint16V(v map[string]uint16, canChange bool,
  17773. d *Decoder) (_ map[string]uint16, changed bool) {
  17774. dd, esep := d.d, d.hh.hasElemSeparators()
  17775. containerLen := dd.ReadMapStart()
  17776. if canChange && v == nil {
  17777. xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
  17778. v = make(map[string]uint16, xlen)
  17779. changed = true
  17780. }
  17781. if containerLen == 0 {
  17782. dd.ReadMapEnd()
  17783. return v, changed
  17784. }
  17785. var mk string
  17786. var mv uint16
  17787. hasLen := containerLen > 0
  17788. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17789. if esep {
  17790. dd.ReadMapElemKey()
  17791. }
  17792. mk = dd.DecodeString()
  17793. if esep {
  17794. dd.ReadMapElemValue()
  17795. }
  17796. if dd.TryDecodeAsNil() {
  17797. if d.h.DeleteOnNilMapValue {
  17798. delete(v, mk)
  17799. } else {
  17800. v[mk] = 0
  17801. }
  17802. continue
  17803. }
  17804. mv = uint16(dd.DecodeUint(16))
  17805. if v != nil {
  17806. v[mk] = mv
  17807. }
  17808. }
  17809. dd.ReadMapEnd()
  17810. return v, changed
  17811. }
  17812. func (d *Decoder) fastpathDecMapStringUint32R(f *codecFnInfo, rv reflect.Value) {
  17813. if rv.Kind() == reflect.Ptr {
  17814. vp := rv2i(rv).(*map[string]uint32)
  17815. if v, changed := fastpathTV.DecMapStringUint32V(*vp, true, d); changed {
  17816. *vp = v
  17817. }
  17818. return
  17819. }
  17820. fastpathTV.DecMapStringUint32V(rv2i(rv).(map[string]uint32), false, d)
  17821. }
  17822. func (f fastpathT) DecMapStringUint32X(vp *map[string]uint32, d *Decoder) {
  17823. if v, changed := f.DecMapStringUint32V(*vp, true, d); changed {
  17824. *vp = v
  17825. }
  17826. }
  17827. func (_ fastpathT) DecMapStringUint32V(v map[string]uint32, canChange bool,
  17828. d *Decoder) (_ map[string]uint32, changed bool) {
  17829. dd, esep := d.d, d.hh.hasElemSeparators()
  17830. containerLen := dd.ReadMapStart()
  17831. if canChange && v == nil {
  17832. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  17833. v = make(map[string]uint32, xlen)
  17834. changed = true
  17835. }
  17836. if containerLen == 0 {
  17837. dd.ReadMapEnd()
  17838. return v, changed
  17839. }
  17840. var mk string
  17841. var mv uint32
  17842. hasLen := containerLen > 0
  17843. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17844. if esep {
  17845. dd.ReadMapElemKey()
  17846. }
  17847. mk = dd.DecodeString()
  17848. if esep {
  17849. dd.ReadMapElemValue()
  17850. }
  17851. if dd.TryDecodeAsNil() {
  17852. if d.h.DeleteOnNilMapValue {
  17853. delete(v, mk)
  17854. } else {
  17855. v[mk] = 0
  17856. }
  17857. continue
  17858. }
  17859. mv = uint32(dd.DecodeUint(32))
  17860. if v != nil {
  17861. v[mk] = mv
  17862. }
  17863. }
  17864. dd.ReadMapEnd()
  17865. return v, changed
  17866. }
  17867. func (d *Decoder) fastpathDecMapStringUint64R(f *codecFnInfo, rv reflect.Value) {
  17868. if rv.Kind() == reflect.Ptr {
  17869. vp := rv2i(rv).(*map[string]uint64)
  17870. if v, changed := fastpathTV.DecMapStringUint64V(*vp, true, d); changed {
  17871. *vp = v
  17872. }
  17873. return
  17874. }
  17875. fastpathTV.DecMapStringUint64V(rv2i(rv).(map[string]uint64), false, d)
  17876. }
  17877. func (f fastpathT) DecMapStringUint64X(vp *map[string]uint64, d *Decoder) {
  17878. if v, changed := f.DecMapStringUint64V(*vp, true, d); changed {
  17879. *vp = v
  17880. }
  17881. }
  17882. func (_ fastpathT) DecMapStringUint64V(v map[string]uint64, canChange bool,
  17883. d *Decoder) (_ map[string]uint64, changed bool) {
  17884. dd, esep := d.d, d.hh.hasElemSeparators()
  17885. containerLen := dd.ReadMapStart()
  17886. if canChange && v == nil {
  17887. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  17888. v = make(map[string]uint64, xlen)
  17889. changed = true
  17890. }
  17891. if containerLen == 0 {
  17892. dd.ReadMapEnd()
  17893. return v, changed
  17894. }
  17895. var mk string
  17896. var mv uint64
  17897. hasLen := containerLen > 0
  17898. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17899. if esep {
  17900. dd.ReadMapElemKey()
  17901. }
  17902. mk = dd.DecodeString()
  17903. if esep {
  17904. dd.ReadMapElemValue()
  17905. }
  17906. if dd.TryDecodeAsNil() {
  17907. if d.h.DeleteOnNilMapValue {
  17908. delete(v, mk)
  17909. } else {
  17910. v[mk] = 0
  17911. }
  17912. continue
  17913. }
  17914. mv = dd.DecodeUint(64)
  17915. if v != nil {
  17916. v[mk] = mv
  17917. }
  17918. }
  17919. dd.ReadMapEnd()
  17920. return v, changed
  17921. }
  17922. func (d *Decoder) fastpathDecMapStringUintptrR(f *codecFnInfo, rv reflect.Value) {
  17923. if rv.Kind() == reflect.Ptr {
  17924. vp := rv2i(rv).(*map[string]uintptr)
  17925. if v, changed := fastpathTV.DecMapStringUintptrV(*vp, true, d); changed {
  17926. *vp = v
  17927. }
  17928. return
  17929. }
  17930. fastpathTV.DecMapStringUintptrV(rv2i(rv).(map[string]uintptr), false, d)
  17931. }
  17932. func (f fastpathT) DecMapStringUintptrX(vp *map[string]uintptr, d *Decoder) {
  17933. if v, changed := f.DecMapStringUintptrV(*vp, true, d); changed {
  17934. *vp = v
  17935. }
  17936. }
  17937. func (_ fastpathT) DecMapStringUintptrV(v map[string]uintptr, canChange bool,
  17938. d *Decoder) (_ map[string]uintptr, changed bool) {
  17939. dd, esep := d.d, d.hh.hasElemSeparators()
  17940. containerLen := dd.ReadMapStart()
  17941. if canChange && v == nil {
  17942. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  17943. v = make(map[string]uintptr, xlen)
  17944. changed = true
  17945. }
  17946. if containerLen == 0 {
  17947. dd.ReadMapEnd()
  17948. return v, changed
  17949. }
  17950. var mk string
  17951. var mv uintptr
  17952. hasLen := containerLen > 0
  17953. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  17954. if esep {
  17955. dd.ReadMapElemKey()
  17956. }
  17957. mk = dd.DecodeString()
  17958. if esep {
  17959. dd.ReadMapElemValue()
  17960. }
  17961. if dd.TryDecodeAsNil() {
  17962. if d.h.DeleteOnNilMapValue {
  17963. delete(v, mk)
  17964. } else {
  17965. v[mk] = 0
  17966. }
  17967. continue
  17968. }
  17969. mv = uintptr(dd.DecodeUint(uintBitsize))
  17970. if v != nil {
  17971. v[mk] = mv
  17972. }
  17973. }
  17974. dd.ReadMapEnd()
  17975. return v, changed
  17976. }
  17977. func (d *Decoder) fastpathDecMapStringIntR(f *codecFnInfo, rv reflect.Value) {
  17978. if rv.Kind() == reflect.Ptr {
  17979. vp := rv2i(rv).(*map[string]int)
  17980. if v, changed := fastpathTV.DecMapStringIntV(*vp, true, d); changed {
  17981. *vp = v
  17982. }
  17983. return
  17984. }
  17985. fastpathTV.DecMapStringIntV(rv2i(rv).(map[string]int), false, d)
  17986. }
  17987. func (f fastpathT) DecMapStringIntX(vp *map[string]int, d *Decoder) {
  17988. if v, changed := f.DecMapStringIntV(*vp, true, d); changed {
  17989. *vp = v
  17990. }
  17991. }
  17992. func (_ fastpathT) DecMapStringIntV(v map[string]int, canChange bool,
  17993. d *Decoder) (_ map[string]int, changed bool) {
  17994. dd, esep := d.d, d.hh.hasElemSeparators()
  17995. containerLen := dd.ReadMapStart()
  17996. if canChange && v == nil {
  17997. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  17998. v = make(map[string]int, xlen)
  17999. changed = true
  18000. }
  18001. if containerLen == 0 {
  18002. dd.ReadMapEnd()
  18003. return v, changed
  18004. }
  18005. var mk string
  18006. var mv int
  18007. hasLen := containerLen > 0
  18008. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18009. if esep {
  18010. dd.ReadMapElemKey()
  18011. }
  18012. mk = dd.DecodeString()
  18013. if esep {
  18014. dd.ReadMapElemValue()
  18015. }
  18016. if dd.TryDecodeAsNil() {
  18017. if d.h.DeleteOnNilMapValue {
  18018. delete(v, mk)
  18019. } else {
  18020. v[mk] = 0
  18021. }
  18022. continue
  18023. }
  18024. mv = int(dd.DecodeInt(intBitsize))
  18025. if v != nil {
  18026. v[mk] = mv
  18027. }
  18028. }
  18029. dd.ReadMapEnd()
  18030. return v, changed
  18031. }
  18032. func (d *Decoder) fastpathDecMapStringInt8R(f *codecFnInfo, rv reflect.Value) {
  18033. if rv.Kind() == reflect.Ptr {
  18034. vp := rv2i(rv).(*map[string]int8)
  18035. if v, changed := fastpathTV.DecMapStringInt8V(*vp, true, d); changed {
  18036. *vp = v
  18037. }
  18038. return
  18039. }
  18040. fastpathTV.DecMapStringInt8V(rv2i(rv).(map[string]int8), false, d)
  18041. }
  18042. func (f fastpathT) DecMapStringInt8X(vp *map[string]int8, d *Decoder) {
  18043. if v, changed := f.DecMapStringInt8V(*vp, true, d); changed {
  18044. *vp = v
  18045. }
  18046. }
  18047. func (_ fastpathT) DecMapStringInt8V(v map[string]int8, canChange bool,
  18048. d *Decoder) (_ map[string]int8, changed bool) {
  18049. dd, esep := d.d, d.hh.hasElemSeparators()
  18050. containerLen := dd.ReadMapStart()
  18051. if canChange && v == nil {
  18052. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  18053. v = make(map[string]int8, xlen)
  18054. changed = true
  18055. }
  18056. if containerLen == 0 {
  18057. dd.ReadMapEnd()
  18058. return v, changed
  18059. }
  18060. var mk string
  18061. var mv int8
  18062. hasLen := containerLen > 0
  18063. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18064. if esep {
  18065. dd.ReadMapElemKey()
  18066. }
  18067. mk = dd.DecodeString()
  18068. if esep {
  18069. dd.ReadMapElemValue()
  18070. }
  18071. if dd.TryDecodeAsNil() {
  18072. if d.h.DeleteOnNilMapValue {
  18073. delete(v, mk)
  18074. } else {
  18075. v[mk] = 0
  18076. }
  18077. continue
  18078. }
  18079. mv = int8(dd.DecodeInt(8))
  18080. if v != nil {
  18081. v[mk] = mv
  18082. }
  18083. }
  18084. dd.ReadMapEnd()
  18085. return v, changed
  18086. }
  18087. func (d *Decoder) fastpathDecMapStringInt16R(f *codecFnInfo, rv reflect.Value) {
  18088. if rv.Kind() == reflect.Ptr {
  18089. vp := rv2i(rv).(*map[string]int16)
  18090. if v, changed := fastpathTV.DecMapStringInt16V(*vp, true, d); changed {
  18091. *vp = v
  18092. }
  18093. return
  18094. }
  18095. fastpathTV.DecMapStringInt16V(rv2i(rv).(map[string]int16), false, d)
  18096. }
  18097. func (f fastpathT) DecMapStringInt16X(vp *map[string]int16, d *Decoder) {
  18098. if v, changed := f.DecMapStringInt16V(*vp, true, d); changed {
  18099. *vp = v
  18100. }
  18101. }
  18102. func (_ fastpathT) DecMapStringInt16V(v map[string]int16, canChange bool,
  18103. d *Decoder) (_ map[string]int16, changed bool) {
  18104. dd, esep := d.d, d.hh.hasElemSeparators()
  18105. containerLen := dd.ReadMapStart()
  18106. if canChange && v == nil {
  18107. xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
  18108. v = make(map[string]int16, xlen)
  18109. changed = true
  18110. }
  18111. if containerLen == 0 {
  18112. dd.ReadMapEnd()
  18113. return v, changed
  18114. }
  18115. var mk string
  18116. var mv int16
  18117. hasLen := containerLen > 0
  18118. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18119. if esep {
  18120. dd.ReadMapElemKey()
  18121. }
  18122. mk = dd.DecodeString()
  18123. if esep {
  18124. dd.ReadMapElemValue()
  18125. }
  18126. if dd.TryDecodeAsNil() {
  18127. if d.h.DeleteOnNilMapValue {
  18128. delete(v, mk)
  18129. } else {
  18130. v[mk] = 0
  18131. }
  18132. continue
  18133. }
  18134. mv = int16(dd.DecodeInt(16))
  18135. if v != nil {
  18136. v[mk] = mv
  18137. }
  18138. }
  18139. dd.ReadMapEnd()
  18140. return v, changed
  18141. }
  18142. func (d *Decoder) fastpathDecMapStringInt32R(f *codecFnInfo, rv reflect.Value) {
  18143. if rv.Kind() == reflect.Ptr {
  18144. vp := rv2i(rv).(*map[string]int32)
  18145. if v, changed := fastpathTV.DecMapStringInt32V(*vp, true, d); changed {
  18146. *vp = v
  18147. }
  18148. return
  18149. }
  18150. fastpathTV.DecMapStringInt32V(rv2i(rv).(map[string]int32), false, d)
  18151. }
  18152. func (f fastpathT) DecMapStringInt32X(vp *map[string]int32, d *Decoder) {
  18153. if v, changed := f.DecMapStringInt32V(*vp, true, d); changed {
  18154. *vp = v
  18155. }
  18156. }
  18157. func (_ fastpathT) DecMapStringInt32V(v map[string]int32, canChange bool,
  18158. d *Decoder) (_ map[string]int32, changed bool) {
  18159. dd, esep := d.d, d.hh.hasElemSeparators()
  18160. containerLen := dd.ReadMapStart()
  18161. if canChange && v == nil {
  18162. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  18163. v = make(map[string]int32, xlen)
  18164. changed = true
  18165. }
  18166. if containerLen == 0 {
  18167. dd.ReadMapEnd()
  18168. return v, changed
  18169. }
  18170. var mk string
  18171. var mv int32
  18172. hasLen := containerLen > 0
  18173. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18174. if esep {
  18175. dd.ReadMapElemKey()
  18176. }
  18177. mk = dd.DecodeString()
  18178. if esep {
  18179. dd.ReadMapElemValue()
  18180. }
  18181. if dd.TryDecodeAsNil() {
  18182. if d.h.DeleteOnNilMapValue {
  18183. delete(v, mk)
  18184. } else {
  18185. v[mk] = 0
  18186. }
  18187. continue
  18188. }
  18189. mv = int32(dd.DecodeInt(32))
  18190. if v != nil {
  18191. v[mk] = mv
  18192. }
  18193. }
  18194. dd.ReadMapEnd()
  18195. return v, changed
  18196. }
  18197. func (d *Decoder) fastpathDecMapStringInt64R(f *codecFnInfo, rv reflect.Value) {
  18198. if rv.Kind() == reflect.Ptr {
  18199. vp := rv2i(rv).(*map[string]int64)
  18200. if v, changed := fastpathTV.DecMapStringInt64V(*vp, true, d); changed {
  18201. *vp = v
  18202. }
  18203. return
  18204. }
  18205. fastpathTV.DecMapStringInt64V(rv2i(rv).(map[string]int64), false, d)
  18206. }
  18207. func (f fastpathT) DecMapStringInt64X(vp *map[string]int64, d *Decoder) {
  18208. if v, changed := f.DecMapStringInt64V(*vp, true, d); changed {
  18209. *vp = v
  18210. }
  18211. }
  18212. func (_ fastpathT) DecMapStringInt64V(v map[string]int64, canChange bool,
  18213. d *Decoder) (_ map[string]int64, changed bool) {
  18214. dd, esep := d.d, d.hh.hasElemSeparators()
  18215. containerLen := dd.ReadMapStart()
  18216. if canChange && v == nil {
  18217. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  18218. v = make(map[string]int64, xlen)
  18219. changed = true
  18220. }
  18221. if containerLen == 0 {
  18222. dd.ReadMapEnd()
  18223. return v, changed
  18224. }
  18225. var mk string
  18226. var mv int64
  18227. hasLen := containerLen > 0
  18228. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18229. if esep {
  18230. dd.ReadMapElemKey()
  18231. }
  18232. mk = dd.DecodeString()
  18233. if esep {
  18234. dd.ReadMapElemValue()
  18235. }
  18236. if dd.TryDecodeAsNil() {
  18237. if d.h.DeleteOnNilMapValue {
  18238. delete(v, mk)
  18239. } else {
  18240. v[mk] = 0
  18241. }
  18242. continue
  18243. }
  18244. mv = dd.DecodeInt(64)
  18245. if v != nil {
  18246. v[mk] = mv
  18247. }
  18248. }
  18249. dd.ReadMapEnd()
  18250. return v, changed
  18251. }
  18252. func (d *Decoder) fastpathDecMapStringFloat32R(f *codecFnInfo, rv reflect.Value) {
  18253. if rv.Kind() == reflect.Ptr {
  18254. vp := rv2i(rv).(*map[string]float32)
  18255. if v, changed := fastpathTV.DecMapStringFloat32V(*vp, true, d); changed {
  18256. *vp = v
  18257. }
  18258. return
  18259. }
  18260. fastpathTV.DecMapStringFloat32V(rv2i(rv).(map[string]float32), false, d)
  18261. }
  18262. func (f fastpathT) DecMapStringFloat32X(vp *map[string]float32, d *Decoder) {
  18263. if v, changed := f.DecMapStringFloat32V(*vp, true, d); changed {
  18264. *vp = v
  18265. }
  18266. }
  18267. func (_ fastpathT) DecMapStringFloat32V(v map[string]float32, canChange bool,
  18268. d *Decoder) (_ map[string]float32, changed bool) {
  18269. dd, esep := d.d, d.hh.hasElemSeparators()
  18270. containerLen := dd.ReadMapStart()
  18271. if canChange && v == nil {
  18272. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  18273. v = make(map[string]float32, xlen)
  18274. changed = true
  18275. }
  18276. if containerLen == 0 {
  18277. dd.ReadMapEnd()
  18278. return v, changed
  18279. }
  18280. var mk string
  18281. var mv float32
  18282. hasLen := containerLen > 0
  18283. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18284. if esep {
  18285. dd.ReadMapElemKey()
  18286. }
  18287. mk = dd.DecodeString()
  18288. if esep {
  18289. dd.ReadMapElemValue()
  18290. }
  18291. if dd.TryDecodeAsNil() {
  18292. if d.h.DeleteOnNilMapValue {
  18293. delete(v, mk)
  18294. } else {
  18295. v[mk] = 0
  18296. }
  18297. continue
  18298. }
  18299. mv = float32(dd.DecodeFloat(true))
  18300. if v != nil {
  18301. v[mk] = mv
  18302. }
  18303. }
  18304. dd.ReadMapEnd()
  18305. return v, changed
  18306. }
  18307. func (d *Decoder) fastpathDecMapStringFloat64R(f *codecFnInfo, rv reflect.Value) {
  18308. if rv.Kind() == reflect.Ptr {
  18309. vp := rv2i(rv).(*map[string]float64)
  18310. if v, changed := fastpathTV.DecMapStringFloat64V(*vp, true, d); changed {
  18311. *vp = v
  18312. }
  18313. return
  18314. }
  18315. fastpathTV.DecMapStringFloat64V(rv2i(rv).(map[string]float64), false, d)
  18316. }
  18317. func (f fastpathT) DecMapStringFloat64X(vp *map[string]float64, d *Decoder) {
  18318. if v, changed := f.DecMapStringFloat64V(*vp, true, d); changed {
  18319. *vp = v
  18320. }
  18321. }
  18322. func (_ fastpathT) DecMapStringFloat64V(v map[string]float64, canChange bool,
  18323. d *Decoder) (_ map[string]float64, changed bool) {
  18324. dd, esep := d.d, d.hh.hasElemSeparators()
  18325. containerLen := dd.ReadMapStart()
  18326. if canChange && v == nil {
  18327. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  18328. v = make(map[string]float64, xlen)
  18329. changed = true
  18330. }
  18331. if containerLen == 0 {
  18332. dd.ReadMapEnd()
  18333. return v, changed
  18334. }
  18335. var mk string
  18336. var mv float64
  18337. hasLen := containerLen > 0
  18338. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18339. if esep {
  18340. dd.ReadMapElemKey()
  18341. }
  18342. mk = dd.DecodeString()
  18343. if esep {
  18344. dd.ReadMapElemValue()
  18345. }
  18346. if dd.TryDecodeAsNil() {
  18347. if d.h.DeleteOnNilMapValue {
  18348. delete(v, mk)
  18349. } else {
  18350. v[mk] = 0
  18351. }
  18352. continue
  18353. }
  18354. mv = dd.DecodeFloat(false)
  18355. if v != nil {
  18356. v[mk] = mv
  18357. }
  18358. }
  18359. dd.ReadMapEnd()
  18360. return v, changed
  18361. }
  18362. func (d *Decoder) fastpathDecMapStringBoolR(f *codecFnInfo, rv reflect.Value) {
  18363. if rv.Kind() == reflect.Ptr {
  18364. vp := rv2i(rv).(*map[string]bool)
  18365. if v, changed := fastpathTV.DecMapStringBoolV(*vp, true, d); changed {
  18366. *vp = v
  18367. }
  18368. return
  18369. }
  18370. fastpathTV.DecMapStringBoolV(rv2i(rv).(map[string]bool), false, d)
  18371. }
  18372. func (f fastpathT) DecMapStringBoolX(vp *map[string]bool, d *Decoder) {
  18373. if v, changed := f.DecMapStringBoolV(*vp, true, d); changed {
  18374. *vp = v
  18375. }
  18376. }
  18377. func (_ fastpathT) DecMapStringBoolV(v map[string]bool, canChange bool,
  18378. d *Decoder) (_ map[string]bool, changed bool) {
  18379. dd, esep := d.d, d.hh.hasElemSeparators()
  18380. containerLen := dd.ReadMapStart()
  18381. if canChange && v == nil {
  18382. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  18383. v = make(map[string]bool, xlen)
  18384. changed = true
  18385. }
  18386. if containerLen == 0 {
  18387. dd.ReadMapEnd()
  18388. return v, changed
  18389. }
  18390. var mk string
  18391. var mv bool
  18392. hasLen := containerLen > 0
  18393. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18394. if esep {
  18395. dd.ReadMapElemKey()
  18396. }
  18397. mk = dd.DecodeString()
  18398. if esep {
  18399. dd.ReadMapElemValue()
  18400. }
  18401. if dd.TryDecodeAsNil() {
  18402. if d.h.DeleteOnNilMapValue {
  18403. delete(v, mk)
  18404. } else {
  18405. v[mk] = false
  18406. }
  18407. continue
  18408. }
  18409. mv = dd.DecodeBool()
  18410. if v != nil {
  18411. v[mk] = mv
  18412. }
  18413. }
  18414. dd.ReadMapEnd()
  18415. return v, changed
  18416. }
  18417. func (d *Decoder) fastpathDecMapFloat32IntfR(f *codecFnInfo, rv reflect.Value) {
  18418. if rv.Kind() == reflect.Ptr {
  18419. vp := rv2i(rv).(*map[float32]interface{})
  18420. if v, changed := fastpathTV.DecMapFloat32IntfV(*vp, true, d); changed {
  18421. *vp = v
  18422. }
  18423. return
  18424. }
  18425. fastpathTV.DecMapFloat32IntfV(rv2i(rv).(map[float32]interface{}), false, d)
  18426. }
  18427. func (f fastpathT) DecMapFloat32IntfX(vp *map[float32]interface{}, d *Decoder) {
  18428. if v, changed := f.DecMapFloat32IntfV(*vp, true, d); changed {
  18429. *vp = v
  18430. }
  18431. }
  18432. func (_ fastpathT) DecMapFloat32IntfV(v map[float32]interface{}, canChange bool,
  18433. d *Decoder) (_ map[float32]interface{}, changed bool) {
  18434. dd, esep := d.d, d.hh.hasElemSeparators()
  18435. containerLen := dd.ReadMapStart()
  18436. if canChange && v == nil {
  18437. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  18438. v = make(map[float32]interface{}, xlen)
  18439. changed = true
  18440. }
  18441. if containerLen == 0 {
  18442. dd.ReadMapEnd()
  18443. return v, changed
  18444. }
  18445. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  18446. var mk float32
  18447. var mv interface{}
  18448. hasLen := containerLen > 0
  18449. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18450. if esep {
  18451. dd.ReadMapElemKey()
  18452. }
  18453. mk = float32(dd.DecodeFloat(true))
  18454. if esep {
  18455. dd.ReadMapElemValue()
  18456. }
  18457. if dd.TryDecodeAsNil() {
  18458. if d.h.DeleteOnNilMapValue {
  18459. delete(v, mk)
  18460. } else {
  18461. v[mk] = nil
  18462. }
  18463. continue
  18464. }
  18465. if mapGet {
  18466. mv = v[mk]
  18467. } else {
  18468. mv = nil
  18469. }
  18470. d.decode(&mv)
  18471. if v != nil {
  18472. v[mk] = mv
  18473. }
  18474. }
  18475. dd.ReadMapEnd()
  18476. return v, changed
  18477. }
  18478. func (d *Decoder) fastpathDecMapFloat32StringR(f *codecFnInfo, rv reflect.Value) {
  18479. if rv.Kind() == reflect.Ptr {
  18480. vp := rv2i(rv).(*map[float32]string)
  18481. if v, changed := fastpathTV.DecMapFloat32StringV(*vp, true, d); changed {
  18482. *vp = v
  18483. }
  18484. return
  18485. }
  18486. fastpathTV.DecMapFloat32StringV(rv2i(rv).(map[float32]string), false, d)
  18487. }
  18488. func (f fastpathT) DecMapFloat32StringX(vp *map[float32]string, d *Decoder) {
  18489. if v, changed := f.DecMapFloat32StringV(*vp, true, d); changed {
  18490. *vp = v
  18491. }
  18492. }
  18493. func (_ fastpathT) DecMapFloat32StringV(v map[float32]string, canChange bool,
  18494. d *Decoder) (_ map[float32]string, changed bool) {
  18495. dd, esep := d.d, d.hh.hasElemSeparators()
  18496. containerLen := dd.ReadMapStart()
  18497. if canChange && v == nil {
  18498. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  18499. v = make(map[float32]string, xlen)
  18500. changed = true
  18501. }
  18502. if containerLen == 0 {
  18503. dd.ReadMapEnd()
  18504. return v, changed
  18505. }
  18506. var mk float32
  18507. var mv string
  18508. hasLen := containerLen > 0
  18509. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18510. if esep {
  18511. dd.ReadMapElemKey()
  18512. }
  18513. mk = float32(dd.DecodeFloat(true))
  18514. if esep {
  18515. dd.ReadMapElemValue()
  18516. }
  18517. if dd.TryDecodeAsNil() {
  18518. if d.h.DeleteOnNilMapValue {
  18519. delete(v, mk)
  18520. } else {
  18521. v[mk] = ""
  18522. }
  18523. continue
  18524. }
  18525. mv = dd.DecodeString()
  18526. if v != nil {
  18527. v[mk] = mv
  18528. }
  18529. }
  18530. dd.ReadMapEnd()
  18531. return v, changed
  18532. }
  18533. func (d *Decoder) fastpathDecMapFloat32UintR(f *codecFnInfo, rv reflect.Value) {
  18534. if rv.Kind() == reflect.Ptr {
  18535. vp := rv2i(rv).(*map[float32]uint)
  18536. if v, changed := fastpathTV.DecMapFloat32UintV(*vp, true, d); changed {
  18537. *vp = v
  18538. }
  18539. return
  18540. }
  18541. fastpathTV.DecMapFloat32UintV(rv2i(rv).(map[float32]uint), false, d)
  18542. }
  18543. func (f fastpathT) DecMapFloat32UintX(vp *map[float32]uint, d *Decoder) {
  18544. if v, changed := f.DecMapFloat32UintV(*vp, true, d); changed {
  18545. *vp = v
  18546. }
  18547. }
  18548. func (_ fastpathT) DecMapFloat32UintV(v map[float32]uint, canChange bool,
  18549. d *Decoder) (_ map[float32]uint, changed bool) {
  18550. dd, esep := d.d, d.hh.hasElemSeparators()
  18551. containerLen := dd.ReadMapStart()
  18552. if canChange && v == nil {
  18553. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  18554. v = make(map[float32]uint, xlen)
  18555. changed = true
  18556. }
  18557. if containerLen == 0 {
  18558. dd.ReadMapEnd()
  18559. return v, changed
  18560. }
  18561. var mk float32
  18562. var mv uint
  18563. hasLen := containerLen > 0
  18564. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18565. if esep {
  18566. dd.ReadMapElemKey()
  18567. }
  18568. mk = float32(dd.DecodeFloat(true))
  18569. if esep {
  18570. dd.ReadMapElemValue()
  18571. }
  18572. if dd.TryDecodeAsNil() {
  18573. if d.h.DeleteOnNilMapValue {
  18574. delete(v, mk)
  18575. } else {
  18576. v[mk] = 0
  18577. }
  18578. continue
  18579. }
  18580. mv = uint(dd.DecodeUint(uintBitsize))
  18581. if v != nil {
  18582. v[mk] = mv
  18583. }
  18584. }
  18585. dd.ReadMapEnd()
  18586. return v, changed
  18587. }
  18588. func (d *Decoder) fastpathDecMapFloat32Uint8R(f *codecFnInfo, rv reflect.Value) {
  18589. if rv.Kind() == reflect.Ptr {
  18590. vp := rv2i(rv).(*map[float32]uint8)
  18591. if v, changed := fastpathTV.DecMapFloat32Uint8V(*vp, true, d); changed {
  18592. *vp = v
  18593. }
  18594. return
  18595. }
  18596. fastpathTV.DecMapFloat32Uint8V(rv2i(rv).(map[float32]uint8), false, d)
  18597. }
  18598. func (f fastpathT) DecMapFloat32Uint8X(vp *map[float32]uint8, d *Decoder) {
  18599. if v, changed := f.DecMapFloat32Uint8V(*vp, true, d); changed {
  18600. *vp = v
  18601. }
  18602. }
  18603. func (_ fastpathT) DecMapFloat32Uint8V(v map[float32]uint8, canChange bool,
  18604. d *Decoder) (_ map[float32]uint8, changed bool) {
  18605. dd, esep := d.d, d.hh.hasElemSeparators()
  18606. containerLen := dd.ReadMapStart()
  18607. if canChange && v == nil {
  18608. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  18609. v = make(map[float32]uint8, xlen)
  18610. changed = true
  18611. }
  18612. if containerLen == 0 {
  18613. dd.ReadMapEnd()
  18614. return v, changed
  18615. }
  18616. var mk float32
  18617. var mv uint8
  18618. hasLen := containerLen > 0
  18619. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18620. if esep {
  18621. dd.ReadMapElemKey()
  18622. }
  18623. mk = float32(dd.DecodeFloat(true))
  18624. if esep {
  18625. dd.ReadMapElemValue()
  18626. }
  18627. if dd.TryDecodeAsNil() {
  18628. if d.h.DeleteOnNilMapValue {
  18629. delete(v, mk)
  18630. } else {
  18631. v[mk] = 0
  18632. }
  18633. continue
  18634. }
  18635. mv = uint8(dd.DecodeUint(8))
  18636. if v != nil {
  18637. v[mk] = mv
  18638. }
  18639. }
  18640. dd.ReadMapEnd()
  18641. return v, changed
  18642. }
  18643. func (d *Decoder) fastpathDecMapFloat32Uint16R(f *codecFnInfo, rv reflect.Value) {
  18644. if rv.Kind() == reflect.Ptr {
  18645. vp := rv2i(rv).(*map[float32]uint16)
  18646. if v, changed := fastpathTV.DecMapFloat32Uint16V(*vp, true, d); changed {
  18647. *vp = v
  18648. }
  18649. return
  18650. }
  18651. fastpathTV.DecMapFloat32Uint16V(rv2i(rv).(map[float32]uint16), false, d)
  18652. }
  18653. func (f fastpathT) DecMapFloat32Uint16X(vp *map[float32]uint16, d *Decoder) {
  18654. if v, changed := f.DecMapFloat32Uint16V(*vp, true, d); changed {
  18655. *vp = v
  18656. }
  18657. }
  18658. func (_ fastpathT) DecMapFloat32Uint16V(v map[float32]uint16, canChange bool,
  18659. d *Decoder) (_ map[float32]uint16, changed bool) {
  18660. dd, esep := d.d, d.hh.hasElemSeparators()
  18661. containerLen := dd.ReadMapStart()
  18662. if canChange && v == nil {
  18663. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  18664. v = make(map[float32]uint16, xlen)
  18665. changed = true
  18666. }
  18667. if containerLen == 0 {
  18668. dd.ReadMapEnd()
  18669. return v, changed
  18670. }
  18671. var mk float32
  18672. var mv uint16
  18673. hasLen := containerLen > 0
  18674. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18675. if esep {
  18676. dd.ReadMapElemKey()
  18677. }
  18678. mk = float32(dd.DecodeFloat(true))
  18679. if esep {
  18680. dd.ReadMapElemValue()
  18681. }
  18682. if dd.TryDecodeAsNil() {
  18683. if d.h.DeleteOnNilMapValue {
  18684. delete(v, mk)
  18685. } else {
  18686. v[mk] = 0
  18687. }
  18688. continue
  18689. }
  18690. mv = uint16(dd.DecodeUint(16))
  18691. if v != nil {
  18692. v[mk] = mv
  18693. }
  18694. }
  18695. dd.ReadMapEnd()
  18696. return v, changed
  18697. }
  18698. func (d *Decoder) fastpathDecMapFloat32Uint32R(f *codecFnInfo, rv reflect.Value) {
  18699. if rv.Kind() == reflect.Ptr {
  18700. vp := rv2i(rv).(*map[float32]uint32)
  18701. if v, changed := fastpathTV.DecMapFloat32Uint32V(*vp, true, d); changed {
  18702. *vp = v
  18703. }
  18704. return
  18705. }
  18706. fastpathTV.DecMapFloat32Uint32V(rv2i(rv).(map[float32]uint32), false, d)
  18707. }
  18708. func (f fastpathT) DecMapFloat32Uint32X(vp *map[float32]uint32, d *Decoder) {
  18709. if v, changed := f.DecMapFloat32Uint32V(*vp, true, d); changed {
  18710. *vp = v
  18711. }
  18712. }
  18713. func (_ fastpathT) DecMapFloat32Uint32V(v map[float32]uint32, canChange bool,
  18714. d *Decoder) (_ map[float32]uint32, changed bool) {
  18715. dd, esep := d.d, d.hh.hasElemSeparators()
  18716. containerLen := dd.ReadMapStart()
  18717. if canChange && v == nil {
  18718. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  18719. v = make(map[float32]uint32, xlen)
  18720. changed = true
  18721. }
  18722. if containerLen == 0 {
  18723. dd.ReadMapEnd()
  18724. return v, changed
  18725. }
  18726. var mk float32
  18727. var mv uint32
  18728. hasLen := containerLen > 0
  18729. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18730. if esep {
  18731. dd.ReadMapElemKey()
  18732. }
  18733. mk = float32(dd.DecodeFloat(true))
  18734. if esep {
  18735. dd.ReadMapElemValue()
  18736. }
  18737. if dd.TryDecodeAsNil() {
  18738. if d.h.DeleteOnNilMapValue {
  18739. delete(v, mk)
  18740. } else {
  18741. v[mk] = 0
  18742. }
  18743. continue
  18744. }
  18745. mv = uint32(dd.DecodeUint(32))
  18746. if v != nil {
  18747. v[mk] = mv
  18748. }
  18749. }
  18750. dd.ReadMapEnd()
  18751. return v, changed
  18752. }
  18753. func (d *Decoder) fastpathDecMapFloat32Uint64R(f *codecFnInfo, rv reflect.Value) {
  18754. if rv.Kind() == reflect.Ptr {
  18755. vp := rv2i(rv).(*map[float32]uint64)
  18756. if v, changed := fastpathTV.DecMapFloat32Uint64V(*vp, true, d); changed {
  18757. *vp = v
  18758. }
  18759. return
  18760. }
  18761. fastpathTV.DecMapFloat32Uint64V(rv2i(rv).(map[float32]uint64), false, d)
  18762. }
  18763. func (f fastpathT) DecMapFloat32Uint64X(vp *map[float32]uint64, d *Decoder) {
  18764. if v, changed := f.DecMapFloat32Uint64V(*vp, true, d); changed {
  18765. *vp = v
  18766. }
  18767. }
  18768. func (_ fastpathT) DecMapFloat32Uint64V(v map[float32]uint64, canChange bool,
  18769. d *Decoder) (_ map[float32]uint64, changed bool) {
  18770. dd, esep := d.d, d.hh.hasElemSeparators()
  18771. containerLen := dd.ReadMapStart()
  18772. if canChange && v == nil {
  18773. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  18774. v = make(map[float32]uint64, xlen)
  18775. changed = true
  18776. }
  18777. if containerLen == 0 {
  18778. dd.ReadMapEnd()
  18779. return v, changed
  18780. }
  18781. var mk float32
  18782. var mv uint64
  18783. hasLen := containerLen > 0
  18784. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18785. if esep {
  18786. dd.ReadMapElemKey()
  18787. }
  18788. mk = float32(dd.DecodeFloat(true))
  18789. if esep {
  18790. dd.ReadMapElemValue()
  18791. }
  18792. if dd.TryDecodeAsNil() {
  18793. if d.h.DeleteOnNilMapValue {
  18794. delete(v, mk)
  18795. } else {
  18796. v[mk] = 0
  18797. }
  18798. continue
  18799. }
  18800. mv = dd.DecodeUint(64)
  18801. if v != nil {
  18802. v[mk] = mv
  18803. }
  18804. }
  18805. dd.ReadMapEnd()
  18806. return v, changed
  18807. }
  18808. func (d *Decoder) fastpathDecMapFloat32UintptrR(f *codecFnInfo, rv reflect.Value) {
  18809. if rv.Kind() == reflect.Ptr {
  18810. vp := rv2i(rv).(*map[float32]uintptr)
  18811. if v, changed := fastpathTV.DecMapFloat32UintptrV(*vp, true, d); changed {
  18812. *vp = v
  18813. }
  18814. return
  18815. }
  18816. fastpathTV.DecMapFloat32UintptrV(rv2i(rv).(map[float32]uintptr), false, d)
  18817. }
  18818. func (f fastpathT) DecMapFloat32UintptrX(vp *map[float32]uintptr, d *Decoder) {
  18819. if v, changed := f.DecMapFloat32UintptrV(*vp, true, d); changed {
  18820. *vp = v
  18821. }
  18822. }
  18823. func (_ fastpathT) DecMapFloat32UintptrV(v map[float32]uintptr, canChange bool,
  18824. d *Decoder) (_ map[float32]uintptr, changed bool) {
  18825. dd, esep := d.d, d.hh.hasElemSeparators()
  18826. containerLen := dd.ReadMapStart()
  18827. if canChange && v == nil {
  18828. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  18829. v = make(map[float32]uintptr, xlen)
  18830. changed = true
  18831. }
  18832. if containerLen == 0 {
  18833. dd.ReadMapEnd()
  18834. return v, changed
  18835. }
  18836. var mk float32
  18837. var mv uintptr
  18838. hasLen := containerLen > 0
  18839. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18840. if esep {
  18841. dd.ReadMapElemKey()
  18842. }
  18843. mk = float32(dd.DecodeFloat(true))
  18844. if esep {
  18845. dd.ReadMapElemValue()
  18846. }
  18847. if dd.TryDecodeAsNil() {
  18848. if d.h.DeleteOnNilMapValue {
  18849. delete(v, mk)
  18850. } else {
  18851. v[mk] = 0
  18852. }
  18853. continue
  18854. }
  18855. mv = uintptr(dd.DecodeUint(uintBitsize))
  18856. if v != nil {
  18857. v[mk] = mv
  18858. }
  18859. }
  18860. dd.ReadMapEnd()
  18861. return v, changed
  18862. }
  18863. func (d *Decoder) fastpathDecMapFloat32IntR(f *codecFnInfo, rv reflect.Value) {
  18864. if rv.Kind() == reflect.Ptr {
  18865. vp := rv2i(rv).(*map[float32]int)
  18866. if v, changed := fastpathTV.DecMapFloat32IntV(*vp, true, d); changed {
  18867. *vp = v
  18868. }
  18869. return
  18870. }
  18871. fastpathTV.DecMapFloat32IntV(rv2i(rv).(map[float32]int), false, d)
  18872. }
  18873. func (f fastpathT) DecMapFloat32IntX(vp *map[float32]int, d *Decoder) {
  18874. if v, changed := f.DecMapFloat32IntV(*vp, true, d); changed {
  18875. *vp = v
  18876. }
  18877. }
  18878. func (_ fastpathT) DecMapFloat32IntV(v map[float32]int, canChange bool,
  18879. d *Decoder) (_ map[float32]int, changed bool) {
  18880. dd, esep := d.d, d.hh.hasElemSeparators()
  18881. containerLen := dd.ReadMapStart()
  18882. if canChange && v == nil {
  18883. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  18884. v = make(map[float32]int, xlen)
  18885. changed = true
  18886. }
  18887. if containerLen == 0 {
  18888. dd.ReadMapEnd()
  18889. return v, changed
  18890. }
  18891. var mk float32
  18892. var mv int
  18893. hasLen := containerLen > 0
  18894. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18895. if esep {
  18896. dd.ReadMapElemKey()
  18897. }
  18898. mk = float32(dd.DecodeFloat(true))
  18899. if esep {
  18900. dd.ReadMapElemValue()
  18901. }
  18902. if dd.TryDecodeAsNil() {
  18903. if d.h.DeleteOnNilMapValue {
  18904. delete(v, mk)
  18905. } else {
  18906. v[mk] = 0
  18907. }
  18908. continue
  18909. }
  18910. mv = int(dd.DecodeInt(intBitsize))
  18911. if v != nil {
  18912. v[mk] = mv
  18913. }
  18914. }
  18915. dd.ReadMapEnd()
  18916. return v, changed
  18917. }
  18918. func (d *Decoder) fastpathDecMapFloat32Int8R(f *codecFnInfo, rv reflect.Value) {
  18919. if rv.Kind() == reflect.Ptr {
  18920. vp := rv2i(rv).(*map[float32]int8)
  18921. if v, changed := fastpathTV.DecMapFloat32Int8V(*vp, true, d); changed {
  18922. *vp = v
  18923. }
  18924. return
  18925. }
  18926. fastpathTV.DecMapFloat32Int8V(rv2i(rv).(map[float32]int8), false, d)
  18927. }
  18928. func (f fastpathT) DecMapFloat32Int8X(vp *map[float32]int8, d *Decoder) {
  18929. if v, changed := f.DecMapFloat32Int8V(*vp, true, d); changed {
  18930. *vp = v
  18931. }
  18932. }
  18933. func (_ fastpathT) DecMapFloat32Int8V(v map[float32]int8, canChange bool,
  18934. d *Decoder) (_ map[float32]int8, changed bool) {
  18935. dd, esep := d.d, d.hh.hasElemSeparators()
  18936. containerLen := dd.ReadMapStart()
  18937. if canChange && v == nil {
  18938. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  18939. v = make(map[float32]int8, xlen)
  18940. changed = true
  18941. }
  18942. if containerLen == 0 {
  18943. dd.ReadMapEnd()
  18944. return v, changed
  18945. }
  18946. var mk float32
  18947. var mv int8
  18948. hasLen := containerLen > 0
  18949. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  18950. if esep {
  18951. dd.ReadMapElemKey()
  18952. }
  18953. mk = float32(dd.DecodeFloat(true))
  18954. if esep {
  18955. dd.ReadMapElemValue()
  18956. }
  18957. if dd.TryDecodeAsNil() {
  18958. if d.h.DeleteOnNilMapValue {
  18959. delete(v, mk)
  18960. } else {
  18961. v[mk] = 0
  18962. }
  18963. continue
  18964. }
  18965. mv = int8(dd.DecodeInt(8))
  18966. if v != nil {
  18967. v[mk] = mv
  18968. }
  18969. }
  18970. dd.ReadMapEnd()
  18971. return v, changed
  18972. }
  18973. func (d *Decoder) fastpathDecMapFloat32Int16R(f *codecFnInfo, rv reflect.Value) {
  18974. if rv.Kind() == reflect.Ptr {
  18975. vp := rv2i(rv).(*map[float32]int16)
  18976. if v, changed := fastpathTV.DecMapFloat32Int16V(*vp, true, d); changed {
  18977. *vp = v
  18978. }
  18979. return
  18980. }
  18981. fastpathTV.DecMapFloat32Int16V(rv2i(rv).(map[float32]int16), false, d)
  18982. }
  18983. func (f fastpathT) DecMapFloat32Int16X(vp *map[float32]int16, d *Decoder) {
  18984. if v, changed := f.DecMapFloat32Int16V(*vp, true, d); changed {
  18985. *vp = v
  18986. }
  18987. }
  18988. func (_ fastpathT) DecMapFloat32Int16V(v map[float32]int16, canChange bool,
  18989. d *Decoder) (_ map[float32]int16, changed bool) {
  18990. dd, esep := d.d, d.hh.hasElemSeparators()
  18991. containerLen := dd.ReadMapStart()
  18992. if canChange && v == nil {
  18993. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  18994. v = make(map[float32]int16, xlen)
  18995. changed = true
  18996. }
  18997. if containerLen == 0 {
  18998. dd.ReadMapEnd()
  18999. return v, changed
  19000. }
  19001. var mk float32
  19002. var mv int16
  19003. hasLen := containerLen > 0
  19004. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19005. if esep {
  19006. dd.ReadMapElemKey()
  19007. }
  19008. mk = float32(dd.DecodeFloat(true))
  19009. if esep {
  19010. dd.ReadMapElemValue()
  19011. }
  19012. if dd.TryDecodeAsNil() {
  19013. if d.h.DeleteOnNilMapValue {
  19014. delete(v, mk)
  19015. } else {
  19016. v[mk] = 0
  19017. }
  19018. continue
  19019. }
  19020. mv = int16(dd.DecodeInt(16))
  19021. if v != nil {
  19022. v[mk] = mv
  19023. }
  19024. }
  19025. dd.ReadMapEnd()
  19026. return v, changed
  19027. }
  19028. func (d *Decoder) fastpathDecMapFloat32Int32R(f *codecFnInfo, rv reflect.Value) {
  19029. if rv.Kind() == reflect.Ptr {
  19030. vp := rv2i(rv).(*map[float32]int32)
  19031. if v, changed := fastpathTV.DecMapFloat32Int32V(*vp, true, d); changed {
  19032. *vp = v
  19033. }
  19034. return
  19035. }
  19036. fastpathTV.DecMapFloat32Int32V(rv2i(rv).(map[float32]int32), false, d)
  19037. }
  19038. func (f fastpathT) DecMapFloat32Int32X(vp *map[float32]int32, d *Decoder) {
  19039. if v, changed := f.DecMapFloat32Int32V(*vp, true, d); changed {
  19040. *vp = v
  19041. }
  19042. }
  19043. func (_ fastpathT) DecMapFloat32Int32V(v map[float32]int32, canChange bool,
  19044. d *Decoder) (_ map[float32]int32, changed bool) {
  19045. dd, esep := d.d, d.hh.hasElemSeparators()
  19046. containerLen := dd.ReadMapStart()
  19047. if canChange && v == nil {
  19048. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  19049. v = make(map[float32]int32, xlen)
  19050. changed = true
  19051. }
  19052. if containerLen == 0 {
  19053. dd.ReadMapEnd()
  19054. return v, changed
  19055. }
  19056. var mk float32
  19057. var mv int32
  19058. hasLen := containerLen > 0
  19059. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19060. if esep {
  19061. dd.ReadMapElemKey()
  19062. }
  19063. mk = float32(dd.DecodeFloat(true))
  19064. if esep {
  19065. dd.ReadMapElemValue()
  19066. }
  19067. if dd.TryDecodeAsNil() {
  19068. if d.h.DeleteOnNilMapValue {
  19069. delete(v, mk)
  19070. } else {
  19071. v[mk] = 0
  19072. }
  19073. continue
  19074. }
  19075. mv = int32(dd.DecodeInt(32))
  19076. if v != nil {
  19077. v[mk] = mv
  19078. }
  19079. }
  19080. dd.ReadMapEnd()
  19081. return v, changed
  19082. }
  19083. func (d *Decoder) fastpathDecMapFloat32Int64R(f *codecFnInfo, rv reflect.Value) {
  19084. if rv.Kind() == reflect.Ptr {
  19085. vp := rv2i(rv).(*map[float32]int64)
  19086. if v, changed := fastpathTV.DecMapFloat32Int64V(*vp, true, d); changed {
  19087. *vp = v
  19088. }
  19089. return
  19090. }
  19091. fastpathTV.DecMapFloat32Int64V(rv2i(rv).(map[float32]int64), false, d)
  19092. }
  19093. func (f fastpathT) DecMapFloat32Int64X(vp *map[float32]int64, d *Decoder) {
  19094. if v, changed := f.DecMapFloat32Int64V(*vp, true, d); changed {
  19095. *vp = v
  19096. }
  19097. }
  19098. func (_ fastpathT) DecMapFloat32Int64V(v map[float32]int64, canChange bool,
  19099. d *Decoder) (_ map[float32]int64, changed bool) {
  19100. dd, esep := d.d, d.hh.hasElemSeparators()
  19101. containerLen := dd.ReadMapStart()
  19102. if canChange && v == nil {
  19103. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  19104. v = make(map[float32]int64, xlen)
  19105. changed = true
  19106. }
  19107. if containerLen == 0 {
  19108. dd.ReadMapEnd()
  19109. return v, changed
  19110. }
  19111. var mk float32
  19112. var mv int64
  19113. hasLen := containerLen > 0
  19114. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19115. if esep {
  19116. dd.ReadMapElemKey()
  19117. }
  19118. mk = float32(dd.DecodeFloat(true))
  19119. if esep {
  19120. dd.ReadMapElemValue()
  19121. }
  19122. if dd.TryDecodeAsNil() {
  19123. if d.h.DeleteOnNilMapValue {
  19124. delete(v, mk)
  19125. } else {
  19126. v[mk] = 0
  19127. }
  19128. continue
  19129. }
  19130. mv = dd.DecodeInt(64)
  19131. if v != nil {
  19132. v[mk] = mv
  19133. }
  19134. }
  19135. dd.ReadMapEnd()
  19136. return v, changed
  19137. }
  19138. func (d *Decoder) fastpathDecMapFloat32Float32R(f *codecFnInfo, rv reflect.Value) {
  19139. if rv.Kind() == reflect.Ptr {
  19140. vp := rv2i(rv).(*map[float32]float32)
  19141. if v, changed := fastpathTV.DecMapFloat32Float32V(*vp, true, d); changed {
  19142. *vp = v
  19143. }
  19144. return
  19145. }
  19146. fastpathTV.DecMapFloat32Float32V(rv2i(rv).(map[float32]float32), false, d)
  19147. }
  19148. func (f fastpathT) DecMapFloat32Float32X(vp *map[float32]float32, d *Decoder) {
  19149. if v, changed := f.DecMapFloat32Float32V(*vp, true, d); changed {
  19150. *vp = v
  19151. }
  19152. }
  19153. func (_ fastpathT) DecMapFloat32Float32V(v map[float32]float32, canChange bool,
  19154. d *Decoder) (_ map[float32]float32, changed bool) {
  19155. dd, esep := d.d, d.hh.hasElemSeparators()
  19156. containerLen := dd.ReadMapStart()
  19157. if canChange && v == nil {
  19158. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  19159. v = make(map[float32]float32, xlen)
  19160. changed = true
  19161. }
  19162. if containerLen == 0 {
  19163. dd.ReadMapEnd()
  19164. return v, changed
  19165. }
  19166. var mk float32
  19167. var mv float32
  19168. hasLen := containerLen > 0
  19169. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19170. if esep {
  19171. dd.ReadMapElemKey()
  19172. }
  19173. mk = float32(dd.DecodeFloat(true))
  19174. if esep {
  19175. dd.ReadMapElemValue()
  19176. }
  19177. if dd.TryDecodeAsNil() {
  19178. if d.h.DeleteOnNilMapValue {
  19179. delete(v, mk)
  19180. } else {
  19181. v[mk] = 0
  19182. }
  19183. continue
  19184. }
  19185. mv = float32(dd.DecodeFloat(true))
  19186. if v != nil {
  19187. v[mk] = mv
  19188. }
  19189. }
  19190. dd.ReadMapEnd()
  19191. return v, changed
  19192. }
  19193. func (d *Decoder) fastpathDecMapFloat32Float64R(f *codecFnInfo, rv reflect.Value) {
  19194. if rv.Kind() == reflect.Ptr {
  19195. vp := rv2i(rv).(*map[float32]float64)
  19196. if v, changed := fastpathTV.DecMapFloat32Float64V(*vp, true, d); changed {
  19197. *vp = v
  19198. }
  19199. return
  19200. }
  19201. fastpathTV.DecMapFloat32Float64V(rv2i(rv).(map[float32]float64), false, d)
  19202. }
  19203. func (f fastpathT) DecMapFloat32Float64X(vp *map[float32]float64, d *Decoder) {
  19204. if v, changed := f.DecMapFloat32Float64V(*vp, true, d); changed {
  19205. *vp = v
  19206. }
  19207. }
  19208. func (_ fastpathT) DecMapFloat32Float64V(v map[float32]float64, canChange bool,
  19209. d *Decoder) (_ map[float32]float64, changed bool) {
  19210. dd, esep := d.d, d.hh.hasElemSeparators()
  19211. containerLen := dd.ReadMapStart()
  19212. if canChange && v == nil {
  19213. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  19214. v = make(map[float32]float64, xlen)
  19215. changed = true
  19216. }
  19217. if containerLen == 0 {
  19218. dd.ReadMapEnd()
  19219. return v, changed
  19220. }
  19221. var mk float32
  19222. var mv float64
  19223. hasLen := containerLen > 0
  19224. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19225. if esep {
  19226. dd.ReadMapElemKey()
  19227. }
  19228. mk = float32(dd.DecodeFloat(true))
  19229. if esep {
  19230. dd.ReadMapElemValue()
  19231. }
  19232. if dd.TryDecodeAsNil() {
  19233. if d.h.DeleteOnNilMapValue {
  19234. delete(v, mk)
  19235. } else {
  19236. v[mk] = 0
  19237. }
  19238. continue
  19239. }
  19240. mv = dd.DecodeFloat(false)
  19241. if v != nil {
  19242. v[mk] = mv
  19243. }
  19244. }
  19245. dd.ReadMapEnd()
  19246. return v, changed
  19247. }
  19248. func (d *Decoder) fastpathDecMapFloat32BoolR(f *codecFnInfo, rv reflect.Value) {
  19249. if rv.Kind() == reflect.Ptr {
  19250. vp := rv2i(rv).(*map[float32]bool)
  19251. if v, changed := fastpathTV.DecMapFloat32BoolV(*vp, true, d); changed {
  19252. *vp = v
  19253. }
  19254. return
  19255. }
  19256. fastpathTV.DecMapFloat32BoolV(rv2i(rv).(map[float32]bool), false, d)
  19257. }
  19258. func (f fastpathT) DecMapFloat32BoolX(vp *map[float32]bool, d *Decoder) {
  19259. if v, changed := f.DecMapFloat32BoolV(*vp, true, d); changed {
  19260. *vp = v
  19261. }
  19262. }
  19263. func (_ fastpathT) DecMapFloat32BoolV(v map[float32]bool, canChange bool,
  19264. d *Decoder) (_ map[float32]bool, changed bool) {
  19265. dd, esep := d.d, d.hh.hasElemSeparators()
  19266. containerLen := dd.ReadMapStart()
  19267. if canChange && v == nil {
  19268. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  19269. v = make(map[float32]bool, xlen)
  19270. changed = true
  19271. }
  19272. if containerLen == 0 {
  19273. dd.ReadMapEnd()
  19274. return v, changed
  19275. }
  19276. var mk float32
  19277. var mv bool
  19278. hasLen := containerLen > 0
  19279. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19280. if esep {
  19281. dd.ReadMapElemKey()
  19282. }
  19283. mk = float32(dd.DecodeFloat(true))
  19284. if esep {
  19285. dd.ReadMapElemValue()
  19286. }
  19287. if dd.TryDecodeAsNil() {
  19288. if d.h.DeleteOnNilMapValue {
  19289. delete(v, mk)
  19290. } else {
  19291. v[mk] = false
  19292. }
  19293. continue
  19294. }
  19295. mv = dd.DecodeBool()
  19296. if v != nil {
  19297. v[mk] = mv
  19298. }
  19299. }
  19300. dd.ReadMapEnd()
  19301. return v, changed
  19302. }
  19303. func (d *Decoder) fastpathDecMapFloat64IntfR(f *codecFnInfo, rv reflect.Value) {
  19304. if rv.Kind() == reflect.Ptr {
  19305. vp := rv2i(rv).(*map[float64]interface{})
  19306. if v, changed := fastpathTV.DecMapFloat64IntfV(*vp, true, d); changed {
  19307. *vp = v
  19308. }
  19309. return
  19310. }
  19311. fastpathTV.DecMapFloat64IntfV(rv2i(rv).(map[float64]interface{}), false, d)
  19312. }
  19313. func (f fastpathT) DecMapFloat64IntfX(vp *map[float64]interface{}, d *Decoder) {
  19314. if v, changed := f.DecMapFloat64IntfV(*vp, true, d); changed {
  19315. *vp = v
  19316. }
  19317. }
  19318. func (_ fastpathT) DecMapFloat64IntfV(v map[float64]interface{}, canChange bool,
  19319. d *Decoder) (_ map[float64]interface{}, changed bool) {
  19320. dd, esep := d.d, d.hh.hasElemSeparators()
  19321. containerLen := dd.ReadMapStart()
  19322. if canChange && v == nil {
  19323. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  19324. v = make(map[float64]interface{}, xlen)
  19325. changed = true
  19326. }
  19327. if containerLen == 0 {
  19328. dd.ReadMapEnd()
  19329. return v, changed
  19330. }
  19331. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  19332. var mk float64
  19333. var mv interface{}
  19334. hasLen := containerLen > 0
  19335. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19336. if esep {
  19337. dd.ReadMapElemKey()
  19338. }
  19339. mk = dd.DecodeFloat(false)
  19340. if esep {
  19341. dd.ReadMapElemValue()
  19342. }
  19343. if dd.TryDecodeAsNil() {
  19344. if d.h.DeleteOnNilMapValue {
  19345. delete(v, mk)
  19346. } else {
  19347. v[mk] = nil
  19348. }
  19349. continue
  19350. }
  19351. if mapGet {
  19352. mv = v[mk]
  19353. } else {
  19354. mv = nil
  19355. }
  19356. d.decode(&mv)
  19357. if v != nil {
  19358. v[mk] = mv
  19359. }
  19360. }
  19361. dd.ReadMapEnd()
  19362. return v, changed
  19363. }
  19364. func (d *Decoder) fastpathDecMapFloat64StringR(f *codecFnInfo, rv reflect.Value) {
  19365. if rv.Kind() == reflect.Ptr {
  19366. vp := rv2i(rv).(*map[float64]string)
  19367. if v, changed := fastpathTV.DecMapFloat64StringV(*vp, true, d); changed {
  19368. *vp = v
  19369. }
  19370. return
  19371. }
  19372. fastpathTV.DecMapFloat64StringV(rv2i(rv).(map[float64]string), false, d)
  19373. }
  19374. func (f fastpathT) DecMapFloat64StringX(vp *map[float64]string, d *Decoder) {
  19375. if v, changed := f.DecMapFloat64StringV(*vp, true, d); changed {
  19376. *vp = v
  19377. }
  19378. }
  19379. func (_ fastpathT) DecMapFloat64StringV(v map[float64]string, canChange bool,
  19380. d *Decoder) (_ map[float64]string, changed bool) {
  19381. dd, esep := d.d, d.hh.hasElemSeparators()
  19382. containerLen := dd.ReadMapStart()
  19383. if canChange && v == nil {
  19384. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  19385. v = make(map[float64]string, xlen)
  19386. changed = true
  19387. }
  19388. if containerLen == 0 {
  19389. dd.ReadMapEnd()
  19390. return v, changed
  19391. }
  19392. var mk float64
  19393. var mv string
  19394. hasLen := containerLen > 0
  19395. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19396. if esep {
  19397. dd.ReadMapElemKey()
  19398. }
  19399. mk = dd.DecodeFloat(false)
  19400. if esep {
  19401. dd.ReadMapElemValue()
  19402. }
  19403. if dd.TryDecodeAsNil() {
  19404. if d.h.DeleteOnNilMapValue {
  19405. delete(v, mk)
  19406. } else {
  19407. v[mk] = ""
  19408. }
  19409. continue
  19410. }
  19411. mv = dd.DecodeString()
  19412. if v != nil {
  19413. v[mk] = mv
  19414. }
  19415. }
  19416. dd.ReadMapEnd()
  19417. return v, changed
  19418. }
  19419. func (d *Decoder) fastpathDecMapFloat64UintR(f *codecFnInfo, rv reflect.Value) {
  19420. if rv.Kind() == reflect.Ptr {
  19421. vp := rv2i(rv).(*map[float64]uint)
  19422. if v, changed := fastpathTV.DecMapFloat64UintV(*vp, true, d); changed {
  19423. *vp = v
  19424. }
  19425. return
  19426. }
  19427. fastpathTV.DecMapFloat64UintV(rv2i(rv).(map[float64]uint), false, d)
  19428. }
  19429. func (f fastpathT) DecMapFloat64UintX(vp *map[float64]uint, d *Decoder) {
  19430. if v, changed := f.DecMapFloat64UintV(*vp, true, d); changed {
  19431. *vp = v
  19432. }
  19433. }
  19434. func (_ fastpathT) DecMapFloat64UintV(v map[float64]uint, canChange bool,
  19435. d *Decoder) (_ map[float64]uint, changed bool) {
  19436. dd, esep := d.d, d.hh.hasElemSeparators()
  19437. containerLen := dd.ReadMapStart()
  19438. if canChange && v == nil {
  19439. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  19440. v = make(map[float64]uint, xlen)
  19441. changed = true
  19442. }
  19443. if containerLen == 0 {
  19444. dd.ReadMapEnd()
  19445. return v, changed
  19446. }
  19447. var mk float64
  19448. var mv uint
  19449. hasLen := containerLen > 0
  19450. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19451. if esep {
  19452. dd.ReadMapElemKey()
  19453. }
  19454. mk = dd.DecodeFloat(false)
  19455. if esep {
  19456. dd.ReadMapElemValue()
  19457. }
  19458. if dd.TryDecodeAsNil() {
  19459. if d.h.DeleteOnNilMapValue {
  19460. delete(v, mk)
  19461. } else {
  19462. v[mk] = 0
  19463. }
  19464. continue
  19465. }
  19466. mv = uint(dd.DecodeUint(uintBitsize))
  19467. if v != nil {
  19468. v[mk] = mv
  19469. }
  19470. }
  19471. dd.ReadMapEnd()
  19472. return v, changed
  19473. }
  19474. func (d *Decoder) fastpathDecMapFloat64Uint8R(f *codecFnInfo, rv reflect.Value) {
  19475. if rv.Kind() == reflect.Ptr {
  19476. vp := rv2i(rv).(*map[float64]uint8)
  19477. if v, changed := fastpathTV.DecMapFloat64Uint8V(*vp, true, d); changed {
  19478. *vp = v
  19479. }
  19480. return
  19481. }
  19482. fastpathTV.DecMapFloat64Uint8V(rv2i(rv).(map[float64]uint8), false, d)
  19483. }
  19484. func (f fastpathT) DecMapFloat64Uint8X(vp *map[float64]uint8, d *Decoder) {
  19485. if v, changed := f.DecMapFloat64Uint8V(*vp, true, d); changed {
  19486. *vp = v
  19487. }
  19488. }
  19489. func (_ fastpathT) DecMapFloat64Uint8V(v map[float64]uint8, canChange bool,
  19490. d *Decoder) (_ map[float64]uint8, changed bool) {
  19491. dd, esep := d.d, d.hh.hasElemSeparators()
  19492. containerLen := dd.ReadMapStart()
  19493. if canChange && v == nil {
  19494. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  19495. v = make(map[float64]uint8, xlen)
  19496. changed = true
  19497. }
  19498. if containerLen == 0 {
  19499. dd.ReadMapEnd()
  19500. return v, changed
  19501. }
  19502. var mk float64
  19503. var mv uint8
  19504. hasLen := containerLen > 0
  19505. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19506. if esep {
  19507. dd.ReadMapElemKey()
  19508. }
  19509. mk = dd.DecodeFloat(false)
  19510. if esep {
  19511. dd.ReadMapElemValue()
  19512. }
  19513. if dd.TryDecodeAsNil() {
  19514. if d.h.DeleteOnNilMapValue {
  19515. delete(v, mk)
  19516. } else {
  19517. v[mk] = 0
  19518. }
  19519. continue
  19520. }
  19521. mv = uint8(dd.DecodeUint(8))
  19522. if v != nil {
  19523. v[mk] = mv
  19524. }
  19525. }
  19526. dd.ReadMapEnd()
  19527. return v, changed
  19528. }
  19529. func (d *Decoder) fastpathDecMapFloat64Uint16R(f *codecFnInfo, rv reflect.Value) {
  19530. if rv.Kind() == reflect.Ptr {
  19531. vp := rv2i(rv).(*map[float64]uint16)
  19532. if v, changed := fastpathTV.DecMapFloat64Uint16V(*vp, true, d); changed {
  19533. *vp = v
  19534. }
  19535. return
  19536. }
  19537. fastpathTV.DecMapFloat64Uint16V(rv2i(rv).(map[float64]uint16), false, d)
  19538. }
  19539. func (f fastpathT) DecMapFloat64Uint16X(vp *map[float64]uint16, d *Decoder) {
  19540. if v, changed := f.DecMapFloat64Uint16V(*vp, true, d); changed {
  19541. *vp = v
  19542. }
  19543. }
  19544. func (_ fastpathT) DecMapFloat64Uint16V(v map[float64]uint16, canChange bool,
  19545. d *Decoder) (_ map[float64]uint16, changed bool) {
  19546. dd, esep := d.d, d.hh.hasElemSeparators()
  19547. containerLen := dd.ReadMapStart()
  19548. if canChange && v == nil {
  19549. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  19550. v = make(map[float64]uint16, xlen)
  19551. changed = true
  19552. }
  19553. if containerLen == 0 {
  19554. dd.ReadMapEnd()
  19555. return v, changed
  19556. }
  19557. var mk float64
  19558. var mv uint16
  19559. hasLen := containerLen > 0
  19560. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19561. if esep {
  19562. dd.ReadMapElemKey()
  19563. }
  19564. mk = dd.DecodeFloat(false)
  19565. if esep {
  19566. dd.ReadMapElemValue()
  19567. }
  19568. if dd.TryDecodeAsNil() {
  19569. if d.h.DeleteOnNilMapValue {
  19570. delete(v, mk)
  19571. } else {
  19572. v[mk] = 0
  19573. }
  19574. continue
  19575. }
  19576. mv = uint16(dd.DecodeUint(16))
  19577. if v != nil {
  19578. v[mk] = mv
  19579. }
  19580. }
  19581. dd.ReadMapEnd()
  19582. return v, changed
  19583. }
  19584. func (d *Decoder) fastpathDecMapFloat64Uint32R(f *codecFnInfo, rv reflect.Value) {
  19585. if rv.Kind() == reflect.Ptr {
  19586. vp := rv2i(rv).(*map[float64]uint32)
  19587. if v, changed := fastpathTV.DecMapFloat64Uint32V(*vp, true, d); changed {
  19588. *vp = v
  19589. }
  19590. return
  19591. }
  19592. fastpathTV.DecMapFloat64Uint32V(rv2i(rv).(map[float64]uint32), false, d)
  19593. }
  19594. func (f fastpathT) DecMapFloat64Uint32X(vp *map[float64]uint32, d *Decoder) {
  19595. if v, changed := f.DecMapFloat64Uint32V(*vp, true, d); changed {
  19596. *vp = v
  19597. }
  19598. }
  19599. func (_ fastpathT) DecMapFloat64Uint32V(v map[float64]uint32, canChange bool,
  19600. d *Decoder) (_ map[float64]uint32, changed bool) {
  19601. dd, esep := d.d, d.hh.hasElemSeparators()
  19602. containerLen := dd.ReadMapStart()
  19603. if canChange && v == nil {
  19604. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  19605. v = make(map[float64]uint32, xlen)
  19606. changed = true
  19607. }
  19608. if containerLen == 0 {
  19609. dd.ReadMapEnd()
  19610. return v, changed
  19611. }
  19612. var mk float64
  19613. var mv uint32
  19614. hasLen := containerLen > 0
  19615. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19616. if esep {
  19617. dd.ReadMapElemKey()
  19618. }
  19619. mk = dd.DecodeFloat(false)
  19620. if esep {
  19621. dd.ReadMapElemValue()
  19622. }
  19623. if dd.TryDecodeAsNil() {
  19624. if d.h.DeleteOnNilMapValue {
  19625. delete(v, mk)
  19626. } else {
  19627. v[mk] = 0
  19628. }
  19629. continue
  19630. }
  19631. mv = uint32(dd.DecodeUint(32))
  19632. if v != nil {
  19633. v[mk] = mv
  19634. }
  19635. }
  19636. dd.ReadMapEnd()
  19637. return v, changed
  19638. }
  19639. func (d *Decoder) fastpathDecMapFloat64Uint64R(f *codecFnInfo, rv reflect.Value) {
  19640. if rv.Kind() == reflect.Ptr {
  19641. vp := rv2i(rv).(*map[float64]uint64)
  19642. if v, changed := fastpathTV.DecMapFloat64Uint64V(*vp, true, d); changed {
  19643. *vp = v
  19644. }
  19645. return
  19646. }
  19647. fastpathTV.DecMapFloat64Uint64V(rv2i(rv).(map[float64]uint64), false, d)
  19648. }
  19649. func (f fastpathT) DecMapFloat64Uint64X(vp *map[float64]uint64, d *Decoder) {
  19650. if v, changed := f.DecMapFloat64Uint64V(*vp, true, d); changed {
  19651. *vp = v
  19652. }
  19653. }
  19654. func (_ fastpathT) DecMapFloat64Uint64V(v map[float64]uint64, canChange bool,
  19655. d *Decoder) (_ map[float64]uint64, changed bool) {
  19656. dd, esep := d.d, d.hh.hasElemSeparators()
  19657. containerLen := dd.ReadMapStart()
  19658. if canChange && v == nil {
  19659. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  19660. v = make(map[float64]uint64, xlen)
  19661. changed = true
  19662. }
  19663. if containerLen == 0 {
  19664. dd.ReadMapEnd()
  19665. return v, changed
  19666. }
  19667. var mk float64
  19668. var mv uint64
  19669. hasLen := containerLen > 0
  19670. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19671. if esep {
  19672. dd.ReadMapElemKey()
  19673. }
  19674. mk = dd.DecodeFloat(false)
  19675. if esep {
  19676. dd.ReadMapElemValue()
  19677. }
  19678. if dd.TryDecodeAsNil() {
  19679. if d.h.DeleteOnNilMapValue {
  19680. delete(v, mk)
  19681. } else {
  19682. v[mk] = 0
  19683. }
  19684. continue
  19685. }
  19686. mv = dd.DecodeUint(64)
  19687. if v != nil {
  19688. v[mk] = mv
  19689. }
  19690. }
  19691. dd.ReadMapEnd()
  19692. return v, changed
  19693. }
  19694. func (d *Decoder) fastpathDecMapFloat64UintptrR(f *codecFnInfo, rv reflect.Value) {
  19695. if rv.Kind() == reflect.Ptr {
  19696. vp := rv2i(rv).(*map[float64]uintptr)
  19697. if v, changed := fastpathTV.DecMapFloat64UintptrV(*vp, true, d); changed {
  19698. *vp = v
  19699. }
  19700. return
  19701. }
  19702. fastpathTV.DecMapFloat64UintptrV(rv2i(rv).(map[float64]uintptr), false, d)
  19703. }
  19704. func (f fastpathT) DecMapFloat64UintptrX(vp *map[float64]uintptr, d *Decoder) {
  19705. if v, changed := f.DecMapFloat64UintptrV(*vp, true, d); changed {
  19706. *vp = v
  19707. }
  19708. }
  19709. func (_ fastpathT) DecMapFloat64UintptrV(v map[float64]uintptr, canChange bool,
  19710. d *Decoder) (_ map[float64]uintptr, changed bool) {
  19711. dd, esep := d.d, d.hh.hasElemSeparators()
  19712. containerLen := dd.ReadMapStart()
  19713. if canChange && v == nil {
  19714. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  19715. v = make(map[float64]uintptr, xlen)
  19716. changed = true
  19717. }
  19718. if containerLen == 0 {
  19719. dd.ReadMapEnd()
  19720. return v, changed
  19721. }
  19722. var mk float64
  19723. var mv uintptr
  19724. hasLen := containerLen > 0
  19725. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19726. if esep {
  19727. dd.ReadMapElemKey()
  19728. }
  19729. mk = dd.DecodeFloat(false)
  19730. if esep {
  19731. dd.ReadMapElemValue()
  19732. }
  19733. if dd.TryDecodeAsNil() {
  19734. if d.h.DeleteOnNilMapValue {
  19735. delete(v, mk)
  19736. } else {
  19737. v[mk] = 0
  19738. }
  19739. continue
  19740. }
  19741. mv = uintptr(dd.DecodeUint(uintBitsize))
  19742. if v != nil {
  19743. v[mk] = mv
  19744. }
  19745. }
  19746. dd.ReadMapEnd()
  19747. return v, changed
  19748. }
  19749. func (d *Decoder) fastpathDecMapFloat64IntR(f *codecFnInfo, rv reflect.Value) {
  19750. if rv.Kind() == reflect.Ptr {
  19751. vp := rv2i(rv).(*map[float64]int)
  19752. if v, changed := fastpathTV.DecMapFloat64IntV(*vp, true, d); changed {
  19753. *vp = v
  19754. }
  19755. return
  19756. }
  19757. fastpathTV.DecMapFloat64IntV(rv2i(rv).(map[float64]int), false, d)
  19758. }
  19759. func (f fastpathT) DecMapFloat64IntX(vp *map[float64]int, d *Decoder) {
  19760. if v, changed := f.DecMapFloat64IntV(*vp, true, d); changed {
  19761. *vp = v
  19762. }
  19763. }
  19764. func (_ fastpathT) DecMapFloat64IntV(v map[float64]int, canChange bool,
  19765. d *Decoder) (_ map[float64]int, changed bool) {
  19766. dd, esep := d.d, d.hh.hasElemSeparators()
  19767. containerLen := dd.ReadMapStart()
  19768. if canChange && v == nil {
  19769. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  19770. v = make(map[float64]int, xlen)
  19771. changed = true
  19772. }
  19773. if containerLen == 0 {
  19774. dd.ReadMapEnd()
  19775. return v, changed
  19776. }
  19777. var mk float64
  19778. var mv int
  19779. hasLen := containerLen > 0
  19780. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19781. if esep {
  19782. dd.ReadMapElemKey()
  19783. }
  19784. mk = dd.DecodeFloat(false)
  19785. if esep {
  19786. dd.ReadMapElemValue()
  19787. }
  19788. if dd.TryDecodeAsNil() {
  19789. if d.h.DeleteOnNilMapValue {
  19790. delete(v, mk)
  19791. } else {
  19792. v[mk] = 0
  19793. }
  19794. continue
  19795. }
  19796. mv = int(dd.DecodeInt(intBitsize))
  19797. if v != nil {
  19798. v[mk] = mv
  19799. }
  19800. }
  19801. dd.ReadMapEnd()
  19802. return v, changed
  19803. }
  19804. func (d *Decoder) fastpathDecMapFloat64Int8R(f *codecFnInfo, rv reflect.Value) {
  19805. if rv.Kind() == reflect.Ptr {
  19806. vp := rv2i(rv).(*map[float64]int8)
  19807. if v, changed := fastpathTV.DecMapFloat64Int8V(*vp, true, d); changed {
  19808. *vp = v
  19809. }
  19810. return
  19811. }
  19812. fastpathTV.DecMapFloat64Int8V(rv2i(rv).(map[float64]int8), false, d)
  19813. }
  19814. func (f fastpathT) DecMapFloat64Int8X(vp *map[float64]int8, d *Decoder) {
  19815. if v, changed := f.DecMapFloat64Int8V(*vp, true, d); changed {
  19816. *vp = v
  19817. }
  19818. }
  19819. func (_ fastpathT) DecMapFloat64Int8V(v map[float64]int8, canChange bool,
  19820. d *Decoder) (_ map[float64]int8, changed bool) {
  19821. dd, esep := d.d, d.hh.hasElemSeparators()
  19822. containerLen := dd.ReadMapStart()
  19823. if canChange && v == nil {
  19824. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  19825. v = make(map[float64]int8, xlen)
  19826. changed = true
  19827. }
  19828. if containerLen == 0 {
  19829. dd.ReadMapEnd()
  19830. return v, changed
  19831. }
  19832. var mk float64
  19833. var mv int8
  19834. hasLen := containerLen > 0
  19835. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19836. if esep {
  19837. dd.ReadMapElemKey()
  19838. }
  19839. mk = dd.DecodeFloat(false)
  19840. if esep {
  19841. dd.ReadMapElemValue()
  19842. }
  19843. if dd.TryDecodeAsNil() {
  19844. if d.h.DeleteOnNilMapValue {
  19845. delete(v, mk)
  19846. } else {
  19847. v[mk] = 0
  19848. }
  19849. continue
  19850. }
  19851. mv = int8(dd.DecodeInt(8))
  19852. if v != nil {
  19853. v[mk] = mv
  19854. }
  19855. }
  19856. dd.ReadMapEnd()
  19857. return v, changed
  19858. }
  19859. func (d *Decoder) fastpathDecMapFloat64Int16R(f *codecFnInfo, rv reflect.Value) {
  19860. if rv.Kind() == reflect.Ptr {
  19861. vp := rv2i(rv).(*map[float64]int16)
  19862. if v, changed := fastpathTV.DecMapFloat64Int16V(*vp, true, d); changed {
  19863. *vp = v
  19864. }
  19865. return
  19866. }
  19867. fastpathTV.DecMapFloat64Int16V(rv2i(rv).(map[float64]int16), false, d)
  19868. }
  19869. func (f fastpathT) DecMapFloat64Int16X(vp *map[float64]int16, d *Decoder) {
  19870. if v, changed := f.DecMapFloat64Int16V(*vp, true, d); changed {
  19871. *vp = v
  19872. }
  19873. }
  19874. func (_ fastpathT) DecMapFloat64Int16V(v map[float64]int16, canChange bool,
  19875. d *Decoder) (_ map[float64]int16, changed bool) {
  19876. dd, esep := d.d, d.hh.hasElemSeparators()
  19877. containerLen := dd.ReadMapStart()
  19878. if canChange && v == nil {
  19879. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  19880. v = make(map[float64]int16, xlen)
  19881. changed = true
  19882. }
  19883. if containerLen == 0 {
  19884. dd.ReadMapEnd()
  19885. return v, changed
  19886. }
  19887. var mk float64
  19888. var mv int16
  19889. hasLen := containerLen > 0
  19890. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19891. if esep {
  19892. dd.ReadMapElemKey()
  19893. }
  19894. mk = dd.DecodeFloat(false)
  19895. if esep {
  19896. dd.ReadMapElemValue()
  19897. }
  19898. if dd.TryDecodeAsNil() {
  19899. if d.h.DeleteOnNilMapValue {
  19900. delete(v, mk)
  19901. } else {
  19902. v[mk] = 0
  19903. }
  19904. continue
  19905. }
  19906. mv = int16(dd.DecodeInt(16))
  19907. if v != nil {
  19908. v[mk] = mv
  19909. }
  19910. }
  19911. dd.ReadMapEnd()
  19912. return v, changed
  19913. }
  19914. func (d *Decoder) fastpathDecMapFloat64Int32R(f *codecFnInfo, rv reflect.Value) {
  19915. if rv.Kind() == reflect.Ptr {
  19916. vp := rv2i(rv).(*map[float64]int32)
  19917. if v, changed := fastpathTV.DecMapFloat64Int32V(*vp, true, d); changed {
  19918. *vp = v
  19919. }
  19920. return
  19921. }
  19922. fastpathTV.DecMapFloat64Int32V(rv2i(rv).(map[float64]int32), false, d)
  19923. }
  19924. func (f fastpathT) DecMapFloat64Int32X(vp *map[float64]int32, d *Decoder) {
  19925. if v, changed := f.DecMapFloat64Int32V(*vp, true, d); changed {
  19926. *vp = v
  19927. }
  19928. }
  19929. func (_ fastpathT) DecMapFloat64Int32V(v map[float64]int32, canChange bool,
  19930. d *Decoder) (_ map[float64]int32, changed bool) {
  19931. dd, esep := d.d, d.hh.hasElemSeparators()
  19932. containerLen := dd.ReadMapStart()
  19933. if canChange && v == nil {
  19934. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  19935. v = make(map[float64]int32, xlen)
  19936. changed = true
  19937. }
  19938. if containerLen == 0 {
  19939. dd.ReadMapEnd()
  19940. return v, changed
  19941. }
  19942. var mk float64
  19943. var mv int32
  19944. hasLen := containerLen > 0
  19945. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  19946. if esep {
  19947. dd.ReadMapElemKey()
  19948. }
  19949. mk = dd.DecodeFloat(false)
  19950. if esep {
  19951. dd.ReadMapElemValue()
  19952. }
  19953. if dd.TryDecodeAsNil() {
  19954. if d.h.DeleteOnNilMapValue {
  19955. delete(v, mk)
  19956. } else {
  19957. v[mk] = 0
  19958. }
  19959. continue
  19960. }
  19961. mv = int32(dd.DecodeInt(32))
  19962. if v != nil {
  19963. v[mk] = mv
  19964. }
  19965. }
  19966. dd.ReadMapEnd()
  19967. return v, changed
  19968. }
  19969. func (d *Decoder) fastpathDecMapFloat64Int64R(f *codecFnInfo, rv reflect.Value) {
  19970. if rv.Kind() == reflect.Ptr {
  19971. vp := rv2i(rv).(*map[float64]int64)
  19972. if v, changed := fastpathTV.DecMapFloat64Int64V(*vp, true, d); changed {
  19973. *vp = v
  19974. }
  19975. return
  19976. }
  19977. fastpathTV.DecMapFloat64Int64V(rv2i(rv).(map[float64]int64), false, d)
  19978. }
  19979. func (f fastpathT) DecMapFloat64Int64X(vp *map[float64]int64, d *Decoder) {
  19980. if v, changed := f.DecMapFloat64Int64V(*vp, true, d); changed {
  19981. *vp = v
  19982. }
  19983. }
  19984. func (_ fastpathT) DecMapFloat64Int64V(v map[float64]int64, canChange bool,
  19985. d *Decoder) (_ map[float64]int64, changed bool) {
  19986. dd, esep := d.d, d.hh.hasElemSeparators()
  19987. containerLen := dd.ReadMapStart()
  19988. if canChange && v == nil {
  19989. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  19990. v = make(map[float64]int64, xlen)
  19991. changed = true
  19992. }
  19993. if containerLen == 0 {
  19994. dd.ReadMapEnd()
  19995. return v, changed
  19996. }
  19997. var mk float64
  19998. var mv int64
  19999. hasLen := containerLen > 0
  20000. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20001. if esep {
  20002. dd.ReadMapElemKey()
  20003. }
  20004. mk = dd.DecodeFloat(false)
  20005. if esep {
  20006. dd.ReadMapElemValue()
  20007. }
  20008. if dd.TryDecodeAsNil() {
  20009. if d.h.DeleteOnNilMapValue {
  20010. delete(v, mk)
  20011. } else {
  20012. v[mk] = 0
  20013. }
  20014. continue
  20015. }
  20016. mv = dd.DecodeInt(64)
  20017. if v != nil {
  20018. v[mk] = mv
  20019. }
  20020. }
  20021. dd.ReadMapEnd()
  20022. return v, changed
  20023. }
  20024. func (d *Decoder) fastpathDecMapFloat64Float32R(f *codecFnInfo, rv reflect.Value) {
  20025. if rv.Kind() == reflect.Ptr {
  20026. vp := rv2i(rv).(*map[float64]float32)
  20027. if v, changed := fastpathTV.DecMapFloat64Float32V(*vp, true, d); changed {
  20028. *vp = v
  20029. }
  20030. return
  20031. }
  20032. fastpathTV.DecMapFloat64Float32V(rv2i(rv).(map[float64]float32), false, d)
  20033. }
  20034. func (f fastpathT) DecMapFloat64Float32X(vp *map[float64]float32, d *Decoder) {
  20035. if v, changed := f.DecMapFloat64Float32V(*vp, true, d); changed {
  20036. *vp = v
  20037. }
  20038. }
  20039. func (_ fastpathT) DecMapFloat64Float32V(v map[float64]float32, canChange bool,
  20040. d *Decoder) (_ map[float64]float32, changed bool) {
  20041. dd, esep := d.d, d.hh.hasElemSeparators()
  20042. containerLen := dd.ReadMapStart()
  20043. if canChange && v == nil {
  20044. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  20045. v = make(map[float64]float32, xlen)
  20046. changed = true
  20047. }
  20048. if containerLen == 0 {
  20049. dd.ReadMapEnd()
  20050. return v, changed
  20051. }
  20052. var mk float64
  20053. var mv float32
  20054. hasLen := containerLen > 0
  20055. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20056. if esep {
  20057. dd.ReadMapElemKey()
  20058. }
  20059. mk = dd.DecodeFloat(false)
  20060. if esep {
  20061. dd.ReadMapElemValue()
  20062. }
  20063. if dd.TryDecodeAsNil() {
  20064. if d.h.DeleteOnNilMapValue {
  20065. delete(v, mk)
  20066. } else {
  20067. v[mk] = 0
  20068. }
  20069. continue
  20070. }
  20071. mv = float32(dd.DecodeFloat(true))
  20072. if v != nil {
  20073. v[mk] = mv
  20074. }
  20075. }
  20076. dd.ReadMapEnd()
  20077. return v, changed
  20078. }
  20079. func (d *Decoder) fastpathDecMapFloat64Float64R(f *codecFnInfo, rv reflect.Value) {
  20080. if rv.Kind() == reflect.Ptr {
  20081. vp := rv2i(rv).(*map[float64]float64)
  20082. if v, changed := fastpathTV.DecMapFloat64Float64V(*vp, true, d); changed {
  20083. *vp = v
  20084. }
  20085. return
  20086. }
  20087. fastpathTV.DecMapFloat64Float64V(rv2i(rv).(map[float64]float64), false, d)
  20088. }
  20089. func (f fastpathT) DecMapFloat64Float64X(vp *map[float64]float64, d *Decoder) {
  20090. if v, changed := f.DecMapFloat64Float64V(*vp, true, d); changed {
  20091. *vp = v
  20092. }
  20093. }
  20094. func (_ fastpathT) DecMapFloat64Float64V(v map[float64]float64, canChange bool,
  20095. d *Decoder) (_ map[float64]float64, changed bool) {
  20096. dd, esep := d.d, d.hh.hasElemSeparators()
  20097. containerLen := dd.ReadMapStart()
  20098. if canChange && v == nil {
  20099. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  20100. v = make(map[float64]float64, xlen)
  20101. changed = true
  20102. }
  20103. if containerLen == 0 {
  20104. dd.ReadMapEnd()
  20105. return v, changed
  20106. }
  20107. var mk float64
  20108. var mv float64
  20109. hasLen := containerLen > 0
  20110. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20111. if esep {
  20112. dd.ReadMapElemKey()
  20113. }
  20114. mk = dd.DecodeFloat(false)
  20115. if esep {
  20116. dd.ReadMapElemValue()
  20117. }
  20118. if dd.TryDecodeAsNil() {
  20119. if d.h.DeleteOnNilMapValue {
  20120. delete(v, mk)
  20121. } else {
  20122. v[mk] = 0
  20123. }
  20124. continue
  20125. }
  20126. mv = dd.DecodeFloat(false)
  20127. if v != nil {
  20128. v[mk] = mv
  20129. }
  20130. }
  20131. dd.ReadMapEnd()
  20132. return v, changed
  20133. }
  20134. func (d *Decoder) fastpathDecMapFloat64BoolR(f *codecFnInfo, rv reflect.Value) {
  20135. if rv.Kind() == reflect.Ptr {
  20136. vp := rv2i(rv).(*map[float64]bool)
  20137. if v, changed := fastpathTV.DecMapFloat64BoolV(*vp, true, d); changed {
  20138. *vp = v
  20139. }
  20140. return
  20141. }
  20142. fastpathTV.DecMapFloat64BoolV(rv2i(rv).(map[float64]bool), false, d)
  20143. }
  20144. func (f fastpathT) DecMapFloat64BoolX(vp *map[float64]bool, d *Decoder) {
  20145. if v, changed := f.DecMapFloat64BoolV(*vp, true, d); changed {
  20146. *vp = v
  20147. }
  20148. }
  20149. func (_ fastpathT) DecMapFloat64BoolV(v map[float64]bool, canChange bool,
  20150. d *Decoder) (_ map[float64]bool, changed bool) {
  20151. dd, esep := d.d, d.hh.hasElemSeparators()
  20152. containerLen := dd.ReadMapStart()
  20153. if canChange && v == nil {
  20154. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  20155. v = make(map[float64]bool, xlen)
  20156. changed = true
  20157. }
  20158. if containerLen == 0 {
  20159. dd.ReadMapEnd()
  20160. return v, changed
  20161. }
  20162. var mk float64
  20163. var mv bool
  20164. hasLen := containerLen > 0
  20165. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20166. if esep {
  20167. dd.ReadMapElemKey()
  20168. }
  20169. mk = dd.DecodeFloat(false)
  20170. if esep {
  20171. dd.ReadMapElemValue()
  20172. }
  20173. if dd.TryDecodeAsNil() {
  20174. if d.h.DeleteOnNilMapValue {
  20175. delete(v, mk)
  20176. } else {
  20177. v[mk] = false
  20178. }
  20179. continue
  20180. }
  20181. mv = dd.DecodeBool()
  20182. if v != nil {
  20183. v[mk] = mv
  20184. }
  20185. }
  20186. dd.ReadMapEnd()
  20187. return v, changed
  20188. }
  20189. func (d *Decoder) fastpathDecMapUintIntfR(f *codecFnInfo, rv reflect.Value) {
  20190. if rv.Kind() == reflect.Ptr {
  20191. vp := rv2i(rv).(*map[uint]interface{})
  20192. if v, changed := fastpathTV.DecMapUintIntfV(*vp, true, d); changed {
  20193. *vp = v
  20194. }
  20195. return
  20196. }
  20197. fastpathTV.DecMapUintIntfV(rv2i(rv).(map[uint]interface{}), false, d)
  20198. }
  20199. func (f fastpathT) DecMapUintIntfX(vp *map[uint]interface{}, d *Decoder) {
  20200. if v, changed := f.DecMapUintIntfV(*vp, true, d); changed {
  20201. *vp = v
  20202. }
  20203. }
  20204. func (_ fastpathT) DecMapUintIntfV(v map[uint]interface{}, canChange bool,
  20205. d *Decoder) (_ map[uint]interface{}, changed bool) {
  20206. dd, esep := d.d, d.hh.hasElemSeparators()
  20207. containerLen := dd.ReadMapStart()
  20208. if canChange && v == nil {
  20209. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  20210. v = make(map[uint]interface{}, xlen)
  20211. changed = true
  20212. }
  20213. if containerLen == 0 {
  20214. dd.ReadMapEnd()
  20215. return v, changed
  20216. }
  20217. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  20218. var mk uint
  20219. var mv interface{}
  20220. hasLen := containerLen > 0
  20221. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20222. if esep {
  20223. dd.ReadMapElemKey()
  20224. }
  20225. mk = uint(dd.DecodeUint(uintBitsize))
  20226. if esep {
  20227. dd.ReadMapElemValue()
  20228. }
  20229. if dd.TryDecodeAsNil() {
  20230. if d.h.DeleteOnNilMapValue {
  20231. delete(v, mk)
  20232. } else {
  20233. v[mk] = nil
  20234. }
  20235. continue
  20236. }
  20237. if mapGet {
  20238. mv = v[mk]
  20239. } else {
  20240. mv = nil
  20241. }
  20242. d.decode(&mv)
  20243. if v != nil {
  20244. v[mk] = mv
  20245. }
  20246. }
  20247. dd.ReadMapEnd()
  20248. return v, changed
  20249. }
  20250. func (d *Decoder) fastpathDecMapUintStringR(f *codecFnInfo, rv reflect.Value) {
  20251. if rv.Kind() == reflect.Ptr {
  20252. vp := rv2i(rv).(*map[uint]string)
  20253. if v, changed := fastpathTV.DecMapUintStringV(*vp, true, d); changed {
  20254. *vp = v
  20255. }
  20256. return
  20257. }
  20258. fastpathTV.DecMapUintStringV(rv2i(rv).(map[uint]string), false, d)
  20259. }
  20260. func (f fastpathT) DecMapUintStringX(vp *map[uint]string, d *Decoder) {
  20261. if v, changed := f.DecMapUintStringV(*vp, true, d); changed {
  20262. *vp = v
  20263. }
  20264. }
  20265. func (_ fastpathT) DecMapUintStringV(v map[uint]string, canChange bool,
  20266. d *Decoder) (_ map[uint]string, changed bool) {
  20267. dd, esep := d.d, d.hh.hasElemSeparators()
  20268. containerLen := dd.ReadMapStart()
  20269. if canChange && v == nil {
  20270. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  20271. v = make(map[uint]string, xlen)
  20272. changed = true
  20273. }
  20274. if containerLen == 0 {
  20275. dd.ReadMapEnd()
  20276. return v, changed
  20277. }
  20278. var mk uint
  20279. var mv string
  20280. hasLen := containerLen > 0
  20281. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20282. if esep {
  20283. dd.ReadMapElemKey()
  20284. }
  20285. mk = uint(dd.DecodeUint(uintBitsize))
  20286. if esep {
  20287. dd.ReadMapElemValue()
  20288. }
  20289. if dd.TryDecodeAsNil() {
  20290. if d.h.DeleteOnNilMapValue {
  20291. delete(v, mk)
  20292. } else {
  20293. v[mk] = ""
  20294. }
  20295. continue
  20296. }
  20297. mv = dd.DecodeString()
  20298. if v != nil {
  20299. v[mk] = mv
  20300. }
  20301. }
  20302. dd.ReadMapEnd()
  20303. return v, changed
  20304. }
  20305. func (d *Decoder) fastpathDecMapUintUintR(f *codecFnInfo, rv reflect.Value) {
  20306. if rv.Kind() == reflect.Ptr {
  20307. vp := rv2i(rv).(*map[uint]uint)
  20308. if v, changed := fastpathTV.DecMapUintUintV(*vp, true, d); changed {
  20309. *vp = v
  20310. }
  20311. return
  20312. }
  20313. fastpathTV.DecMapUintUintV(rv2i(rv).(map[uint]uint), false, d)
  20314. }
  20315. func (f fastpathT) DecMapUintUintX(vp *map[uint]uint, d *Decoder) {
  20316. if v, changed := f.DecMapUintUintV(*vp, true, d); changed {
  20317. *vp = v
  20318. }
  20319. }
  20320. func (_ fastpathT) DecMapUintUintV(v map[uint]uint, canChange bool,
  20321. d *Decoder) (_ map[uint]uint, changed bool) {
  20322. dd, esep := d.d, d.hh.hasElemSeparators()
  20323. containerLen := dd.ReadMapStart()
  20324. if canChange && v == nil {
  20325. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  20326. v = make(map[uint]uint, xlen)
  20327. changed = true
  20328. }
  20329. if containerLen == 0 {
  20330. dd.ReadMapEnd()
  20331. return v, changed
  20332. }
  20333. var mk uint
  20334. var mv uint
  20335. hasLen := containerLen > 0
  20336. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20337. if esep {
  20338. dd.ReadMapElemKey()
  20339. }
  20340. mk = uint(dd.DecodeUint(uintBitsize))
  20341. if esep {
  20342. dd.ReadMapElemValue()
  20343. }
  20344. if dd.TryDecodeAsNil() {
  20345. if d.h.DeleteOnNilMapValue {
  20346. delete(v, mk)
  20347. } else {
  20348. v[mk] = 0
  20349. }
  20350. continue
  20351. }
  20352. mv = uint(dd.DecodeUint(uintBitsize))
  20353. if v != nil {
  20354. v[mk] = mv
  20355. }
  20356. }
  20357. dd.ReadMapEnd()
  20358. return v, changed
  20359. }
  20360. func (d *Decoder) fastpathDecMapUintUint8R(f *codecFnInfo, rv reflect.Value) {
  20361. if rv.Kind() == reflect.Ptr {
  20362. vp := rv2i(rv).(*map[uint]uint8)
  20363. if v, changed := fastpathTV.DecMapUintUint8V(*vp, true, d); changed {
  20364. *vp = v
  20365. }
  20366. return
  20367. }
  20368. fastpathTV.DecMapUintUint8V(rv2i(rv).(map[uint]uint8), false, d)
  20369. }
  20370. func (f fastpathT) DecMapUintUint8X(vp *map[uint]uint8, d *Decoder) {
  20371. if v, changed := f.DecMapUintUint8V(*vp, true, d); changed {
  20372. *vp = v
  20373. }
  20374. }
  20375. func (_ fastpathT) DecMapUintUint8V(v map[uint]uint8, canChange bool,
  20376. d *Decoder) (_ map[uint]uint8, changed bool) {
  20377. dd, esep := d.d, d.hh.hasElemSeparators()
  20378. containerLen := dd.ReadMapStart()
  20379. if canChange && v == nil {
  20380. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  20381. v = make(map[uint]uint8, xlen)
  20382. changed = true
  20383. }
  20384. if containerLen == 0 {
  20385. dd.ReadMapEnd()
  20386. return v, changed
  20387. }
  20388. var mk uint
  20389. var mv uint8
  20390. hasLen := containerLen > 0
  20391. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20392. if esep {
  20393. dd.ReadMapElemKey()
  20394. }
  20395. mk = uint(dd.DecodeUint(uintBitsize))
  20396. if esep {
  20397. dd.ReadMapElemValue()
  20398. }
  20399. if dd.TryDecodeAsNil() {
  20400. if d.h.DeleteOnNilMapValue {
  20401. delete(v, mk)
  20402. } else {
  20403. v[mk] = 0
  20404. }
  20405. continue
  20406. }
  20407. mv = uint8(dd.DecodeUint(8))
  20408. if v != nil {
  20409. v[mk] = mv
  20410. }
  20411. }
  20412. dd.ReadMapEnd()
  20413. return v, changed
  20414. }
  20415. func (d *Decoder) fastpathDecMapUintUint16R(f *codecFnInfo, rv reflect.Value) {
  20416. if rv.Kind() == reflect.Ptr {
  20417. vp := rv2i(rv).(*map[uint]uint16)
  20418. if v, changed := fastpathTV.DecMapUintUint16V(*vp, true, d); changed {
  20419. *vp = v
  20420. }
  20421. return
  20422. }
  20423. fastpathTV.DecMapUintUint16V(rv2i(rv).(map[uint]uint16), false, d)
  20424. }
  20425. func (f fastpathT) DecMapUintUint16X(vp *map[uint]uint16, d *Decoder) {
  20426. if v, changed := f.DecMapUintUint16V(*vp, true, d); changed {
  20427. *vp = v
  20428. }
  20429. }
  20430. func (_ fastpathT) DecMapUintUint16V(v map[uint]uint16, canChange bool,
  20431. d *Decoder) (_ map[uint]uint16, changed bool) {
  20432. dd, esep := d.d, d.hh.hasElemSeparators()
  20433. containerLen := dd.ReadMapStart()
  20434. if canChange && v == nil {
  20435. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  20436. v = make(map[uint]uint16, xlen)
  20437. changed = true
  20438. }
  20439. if containerLen == 0 {
  20440. dd.ReadMapEnd()
  20441. return v, changed
  20442. }
  20443. var mk uint
  20444. var mv uint16
  20445. hasLen := containerLen > 0
  20446. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20447. if esep {
  20448. dd.ReadMapElemKey()
  20449. }
  20450. mk = uint(dd.DecodeUint(uintBitsize))
  20451. if esep {
  20452. dd.ReadMapElemValue()
  20453. }
  20454. if dd.TryDecodeAsNil() {
  20455. if d.h.DeleteOnNilMapValue {
  20456. delete(v, mk)
  20457. } else {
  20458. v[mk] = 0
  20459. }
  20460. continue
  20461. }
  20462. mv = uint16(dd.DecodeUint(16))
  20463. if v != nil {
  20464. v[mk] = mv
  20465. }
  20466. }
  20467. dd.ReadMapEnd()
  20468. return v, changed
  20469. }
  20470. func (d *Decoder) fastpathDecMapUintUint32R(f *codecFnInfo, rv reflect.Value) {
  20471. if rv.Kind() == reflect.Ptr {
  20472. vp := rv2i(rv).(*map[uint]uint32)
  20473. if v, changed := fastpathTV.DecMapUintUint32V(*vp, true, d); changed {
  20474. *vp = v
  20475. }
  20476. return
  20477. }
  20478. fastpathTV.DecMapUintUint32V(rv2i(rv).(map[uint]uint32), false, d)
  20479. }
  20480. func (f fastpathT) DecMapUintUint32X(vp *map[uint]uint32, d *Decoder) {
  20481. if v, changed := f.DecMapUintUint32V(*vp, true, d); changed {
  20482. *vp = v
  20483. }
  20484. }
  20485. func (_ fastpathT) DecMapUintUint32V(v map[uint]uint32, canChange bool,
  20486. d *Decoder) (_ map[uint]uint32, changed bool) {
  20487. dd, esep := d.d, d.hh.hasElemSeparators()
  20488. containerLen := dd.ReadMapStart()
  20489. if canChange && v == nil {
  20490. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  20491. v = make(map[uint]uint32, xlen)
  20492. changed = true
  20493. }
  20494. if containerLen == 0 {
  20495. dd.ReadMapEnd()
  20496. return v, changed
  20497. }
  20498. var mk uint
  20499. var mv uint32
  20500. hasLen := containerLen > 0
  20501. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20502. if esep {
  20503. dd.ReadMapElemKey()
  20504. }
  20505. mk = uint(dd.DecodeUint(uintBitsize))
  20506. if esep {
  20507. dd.ReadMapElemValue()
  20508. }
  20509. if dd.TryDecodeAsNil() {
  20510. if d.h.DeleteOnNilMapValue {
  20511. delete(v, mk)
  20512. } else {
  20513. v[mk] = 0
  20514. }
  20515. continue
  20516. }
  20517. mv = uint32(dd.DecodeUint(32))
  20518. if v != nil {
  20519. v[mk] = mv
  20520. }
  20521. }
  20522. dd.ReadMapEnd()
  20523. return v, changed
  20524. }
  20525. func (d *Decoder) fastpathDecMapUintUint64R(f *codecFnInfo, rv reflect.Value) {
  20526. if rv.Kind() == reflect.Ptr {
  20527. vp := rv2i(rv).(*map[uint]uint64)
  20528. if v, changed := fastpathTV.DecMapUintUint64V(*vp, true, d); changed {
  20529. *vp = v
  20530. }
  20531. return
  20532. }
  20533. fastpathTV.DecMapUintUint64V(rv2i(rv).(map[uint]uint64), false, d)
  20534. }
  20535. func (f fastpathT) DecMapUintUint64X(vp *map[uint]uint64, d *Decoder) {
  20536. if v, changed := f.DecMapUintUint64V(*vp, true, d); changed {
  20537. *vp = v
  20538. }
  20539. }
  20540. func (_ fastpathT) DecMapUintUint64V(v map[uint]uint64, canChange bool,
  20541. d *Decoder) (_ map[uint]uint64, changed bool) {
  20542. dd, esep := d.d, d.hh.hasElemSeparators()
  20543. containerLen := dd.ReadMapStart()
  20544. if canChange && v == nil {
  20545. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  20546. v = make(map[uint]uint64, xlen)
  20547. changed = true
  20548. }
  20549. if containerLen == 0 {
  20550. dd.ReadMapEnd()
  20551. return v, changed
  20552. }
  20553. var mk uint
  20554. var mv uint64
  20555. hasLen := containerLen > 0
  20556. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20557. if esep {
  20558. dd.ReadMapElemKey()
  20559. }
  20560. mk = uint(dd.DecodeUint(uintBitsize))
  20561. if esep {
  20562. dd.ReadMapElemValue()
  20563. }
  20564. if dd.TryDecodeAsNil() {
  20565. if d.h.DeleteOnNilMapValue {
  20566. delete(v, mk)
  20567. } else {
  20568. v[mk] = 0
  20569. }
  20570. continue
  20571. }
  20572. mv = dd.DecodeUint(64)
  20573. if v != nil {
  20574. v[mk] = mv
  20575. }
  20576. }
  20577. dd.ReadMapEnd()
  20578. return v, changed
  20579. }
  20580. func (d *Decoder) fastpathDecMapUintUintptrR(f *codecFnInfo, rv reflect.Value) {
  20581. if rv.Kind() == reflect.Ptr {
  20582. vp := rv2i(rv).(*map[uint]uintptr)
  20583. if v, changed := fastpathTV.DecMapUintUintptrV(*vp, true, d); changed {
  20584. *vp = v
  20585. }
  20586. return
  20587. }
  20588. fastpathTV.DecMapUintUintptrV(rv2i(rv).(map[uint]uintptr), false, d)
  20589. }
  20590. func (f fastpathT) DecMapUintUintptrX(vp *map[uint]uintptr, d *Decoder) {
  20591. if v, changed := f.DecMapUintUintptrV(*vp, true, d); changed {
  20592. *vp = v
  20593. }
  20594. }
  20595. func (_ fastpathT) DecMapUintUintptrV(v map[uint]uintptr, canChange bool,
  20596. d *Decoder) (_ map[uint]uintptr, changed bool) {
  20597. dd, esep := d.d, d.hh.hasElemSeparators()
  20598. containerLen := dd.ReadMapStart()
  20599. if canChange && v == nil {
  20600. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  20601. v = make(map[uint]uintptr, xlen)
  20602. changed = true
  20603. }
  20604. if containerLen == 0 {
  20605. dd.ReadMapEnd()
  20606. return v, changed
  20607. }
  20608. var mk uint
  20609. var mv uintptr
  20610. hasLen := containerLen > 0
  20611. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20612. if esep {
  20613. dd.ReadMapElemKey()
  20614. }
  20615. mk = uint(dd.DecodeUint(uintBitsize))
  20616. if esep {
  20617. dd.ReadMapElemValue()
  20618. }
  20619. if dd.TryDecodeAsNil() {
  20620. if d.h.DeleteOnNilMapValue {
  20621. delete(v, mk)
  20622. } else {
  20623. v[mk] = 0
  20624. }
  20625. continue
  20626. }
  20627. mv = uintptr(dd.DecodeUint(uintBitsize))
  20628. if v != nil {
  20629. v[mk] = mv
  20630. }
  20631. }
  20632. dd.ReadMapEnd()
  20633. return v, changed
  20634. }
  20635. func (d *Decoder) fastpathDecMapUintIntR(f *codecFnInfo, rv reflect.Value) {
  20636. if rv.Kind() == reflect.Ptr {
  20637. vp := rv2i(rv).(*map[uint]int)
  20638. if v, changed := fastpathTV.DecMapUintIntV(*vp, true, d); changed {
  20639. *vp = v
  20640. }
  20641. return
  20642. }
  20643. fastpathTV.DecMapUintIntV(rv2i(rv).(map[uint]int), false, d)
  20644. }
  20645. func (f fastpathT) DecMapUintIntX(vp *map[uint]int, d *Decoder) {
  20646. if v, changed := f.DecMapUintIntV(*vp, true, d); changed {
  20647. *vp = v
  20648. }
  20649. }
  20650. func (_ fastpathT) DecMapUintIntV(v map[uint]int, canChange bool,
  20651. d *Decoder) (_ map[uint]int, changed bool) {
  20652. dd, esep := d.d, d.hh.hasElemSeparators()
  20653. containerLen := dd.ReadMapStart()
  20654. if canChange && v == nil {
  20655. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  20656. v = make(map[uint]int, xlen)
  20657. changed = true
  20658. }
  20659. if containerLen == 0 {
  20660. dd.ReadMapEnd()
  20661. return v, changed
  20662. }
  20663. var mk uint
  20664. var mv int
  20665. hasLen := containerLen > 0
  20666. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20667. if esep {
  20668. dd.ReadMapElemKey()
  20669. }
  20670. mk = uint(dd.DecodeUint(uintBitsize))
  20671. if esep {
  20672. dd.ReadMapElemValue()
  20673. }
  20674. if dd.TryDecodeAsNil() {
  20675. if d.h.DeleteOnNilMapValue {
  20676. delete(v, mk)
  20677. } else {
  20678. v[mk] = 0
  20679. }
  20680. continue
  20681. }
  20682. mv = int(dd.DecodeInt(intBitsize))
  20683. if v != nil {
  20684. v[mk] = mv
  20685. }
  20686. }
  20687. dd.ReadMapEnd()
  20688. return v, changed
  20689. }
  20690. func (d *Decoder) fastpathDecMapUintInt8R(f *codecFnInfo, rv reflect.Value) {
  20691. if rv.Kind() == reflect.Ptr {
  20692. vp := rv2i(rv).(*map[uint]int8)
  20693. if v, changed := fastpathTV.DecMapUintInt8V(*vp, true, d); changed {
  20694. *vp = v
  20695. }
  20696. return
  20697. }
  20698. fastpathTV.DecMapUintInt8V(rv2i(rv).(map[uint]int8), false, d)
  20699. }
  20700. func (f fastpathT) DecMapUintInt8X(vp *map[uint]int8, d *Decoder) {
  20701. if v, changed := f.DecMapUintInt8V(*vp, true, d); changed {
  20702. *vp = v
  20703. }
  20704. }
  20705. func (_ fastpathT) DecMapUintInt8V(v map[uint]int8, canChange bool,
  20706. d *Decoder) (_ map[uint]int8, changed bool) {
  20707. dd, esep := d.d, d.hh.hasElemSeparators()
  20708. containerLen := dd.ReadMapStart()
  20709. if canChange && v == nil {
  20710. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  20711. v = make(map[uint]int8, xlen)
  20712. changed = true
  20713. }
  20714. if containerLen == 0 {
  20715. dd.ReadMapEnd()
  20716. return v, changed
  20717. }
  20718. var mk uint
  20719. var mv int8
  20720. hasLen := containerLen > 0
  20721. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20722. if esep {
  20723. dd.ReadMapElemKey()
  20724. }
  20725. mk = uint(dd.DecodeUint(uintBitsize))
  20726. if esep {
  20727. dd.ReadMapElemValue()
  20728. }
  20729. if dd.TryDecodeAsNil() {
  20730. if d.h.DeleteOnNilMapValue {
  20731. delete(v, mk)
  20732. } else {
  20733. v[mk] = 0
  20734. }
  20735. continue
  20736. }
  20737. mv = int8(dd.DecodeInt(8))
  20738. if v != nil {
  20739. v[mk] = mv
  20740. }
  20741. }
  20742. dd.ReadMapEnd()
  20743. return v, changed
  20744. }
  20745. func (d *Decoder) fastpathDecMapUintInt16R(f *codecFnInfo, rv reflect.Value) {
  20746. if rv.Kind() == reflect.Ptr {
  20747. vp := rv2i(rv).(*map[uint]int16)
  20748. if v, changed := fastpathTV.DecMapUintInt16V(*vp, true, d); changed {
  20749. *vp = v
  20750. }
  20751. return
  20752. }
  20753. fastpathTV.DecMapUintInt16V(rv2i(rv).(map[uint]int16), false, d)
  20754. }
  20755. func (f fastpathT) DecMapUintInt16X(vp *map[uint]int16, d *Decoder) {
  20756. if v, changed := f.DecMapUintInt16V(*vp, true, d); changed {
  20757. *vp = v
  20758. }
  20759. }
  20760. func (_ fastpathT) DecMapUintInt16V(v map[uint]int16, canChange bool,
  20761. d *Decoder) (_ map[uint]int16, changed bool) {
  20762. dd, esep := d.d, d.hh.hasElemSeparators()
  20763. containerLen := dd.ReadMapStart()
  20764. if canChange && v == nil {
  20765. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  20766. v = make(map[uint]int16, xlen)
  20767. changed = true
  20768. }
  20769. if containerLen == 0 {
  20770. dd.ReadMapEnd()
  20771. return v, changed
  20772. }
  20773. var mk uint
  20774. var mv int16
  20775. hasLen := containerLen > 0
  20776. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20777. if esep {
  20778. dd.ReadMapElemKey()
  20779. }
  20780. mk = uint(dd.DecodeUint(uintBitsize))
  20781. if esep {
  20782. dd.ReadMapElemValue()
  20783. }
  20784. if dd.TryDecodeAsNil() {
  20785. if d.h.DeleteOnNilMapValue {
  20786. delete(v, mk)
  20787. } else {
  20788. v[mk] = 0
  20789. }
  20790. continue
  20791. }
  20792. mv = int16(dd.DecodeInt(16))
  20793. if v != nil {
  20794. v[mk] = mv
  20795. }
  20796. }
  20797. dd.ReadMapEnd()
  20798. return v, changed
  20799. }
  20800. func (d *Decoder) fastpathDecMapUintInt32R(f *codecFnInfo, rv reflect.Value) {
  20801. if rv.Kind() == reflect.Ptr {
  20802. vp := rv2i(rv).(*map[uint]int32)
  20803. if v, changed := fastpathTV.DecMapUintInt32V(*vp, true, d); changed {
  20804. *vp = v
  20805. }
  20806. return
  20807. }
  20808. fastpathTV.DecMapUintInt32V(rv2i(rv).(map[uint]int32), false, d)
  20809. }
  20810. func (f fastpathT) DecMapUintInt32X(vp *map[uint]int32, d *Decoder) {
  20811. if v, changed := f.DecMapUintInt32V(*vp, true, d); changed {
  20812. *vp = v
  20813. }
  20814. }
  20815. func (_ fastpathT) DecMapUintInt32V(v map[uint]int32, canChange bool,
  20816. d *Decoder) (_ map[uint]int32, changed bool) {
  20817. dd, esep := d.d, d.hh.hasElemSeparators()
  20818. containerLen := dd.ReadMapStart()
  20819. if canChange && v == nil {
  20820. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  20821. v = make(map[uint]int32, xlen)
  20822. changed = true
  20823. }
  20824. if containerLen == 0 {
  20825. dd.ReadMapEnd()
  20826. return v, changed
  20827. }
  20828. var mk uint
  20829. var mv int32
  20830. hasLen := containerLen > 0
  20831. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20832. if esep {
  20833. dd.ReadMapElemKey()
  20834. }
  20835. mk = uint(dd.DecodeUint(uintBitsize))
  20836. if esep {
  20837. dd.ReadMapElemValue()
  20838. }
  20839. if dd.TryDecodeAsNil() {
  20840. if d.h.DeleteOnNilMapValue {
  20841. delete(v, mk)
  20842. } else {
  20843. v[mk] = 0
  20844. }
  20845. continue
  20846. }
  20847. mv = int32(dd.DecodeInt(32))
  20848. if v != nil {
  20849. v[mk] = mv
  20850. }
  20851. }
  20852. dd.ReadMapEnd()
  20853. return v, changed
  20854. }
  20855. func (d *Decoder) fastpathDecMapUintInt64R(f *codecFnInfo, rv reflect.Value) {
  20856. if rv.Kind() == reflect.Ptr {
  20857. vp := rv2i(rv).(*map[uint]int64)
  20858. if v, changed := fastpathTV.DecMapUintInt64V(*vp, true, d); changed {
  20859. *vp = v
  20860. }
  20861. return
  20862. }
  20863. fastpathTV.DecMapUintInt64V(rv2i(rv).(map[uint]int64), false, d)
  20864. }
  20865. func (f fastpathT) DecMapUintInt64X(vp *map[uint]int64, d *Decoder) {
  20866. if v, changed := f.DecMapUintInt64V(*vp, true, d); changed {
  20867. *vp = v
  20868. }
  20869. }
  20870. func (_ fastpathT) DecMapUintInt64V(v map[uint]int64, canChange bool,
  20871. d *Decoder) (_ map[uint]int64, changed bool) {
  20872. dd, esep := d.d, d.hh.hasElemSeparators()
  20873. containerLen := dd.ReadMapStart()
  20874. if canChange && v == nil {
  20875. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  20876. v = make(map[uint]int64, xlen)
  20877. changed = true
  20878. }
  20879. if containerLen == 0 {
  20880. dd.ReadMapEnd()
  20881. return v, changed
  20882. }
  20883. var mk uint
  20884. var mv int64
  20885. hasLen := containerLen > 0
  20886. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20887. if esep {
  20888. dd.ReadMapElemKey()
  20889. }
  20890. mk = uint(dd.DecodeUint(uintBitsize))
  20891. if esep {
  20892. dd.ReadMapElemValue()
  20893. }
  20894. if dd.TryDecodeAsNil() {
  20895. if d.h.DeleteOnNilMapValue {
  20896. delete(v, mk)
  20897. } else {
  20898. v[mk] = 0
  20899. }
  20900. continue
  20901. }
  20902. mv = dd.DecodeInt(64)
  20903. if v != nil {
  20904. v[mk] = mv
  20905. }
  20906. }
  20907. dd.ReadMapEnd()
  20908. return v, changed
  20909. }
  20910. func (d *Decoder) fastpathDecMapUintFloat32R(f *codecFnInfo, rv reflect.Value) {
  20911. if rv.Kind() == reflect.Ptr {
  20912. vp := rv2i(rv).(*map[uint]float32)
  20913. if v, changed := fastpathTV.DecMapUintFloat32V(*vp, true, d); changed {
  20914. *vp = v
  20915. }
  20916. return
  20917. }
  20918. fastpathTV.DecMapUintFloat32V(rv2i(rv).(map[uint]float32), false, d)
  20919. }
  20920. func (f fastpathT) DecMapUintFloat32X(vp *map[uint]float32, d *Decoder) {
  20921. if v, changed := f.DecMapUintFloat32V(*vp, true, d); changed {
  20922. *vp = v
  20923. }
  20924. }
  20925. func (_ fastpathT) DecMapUintFloat32V(v map[uint]float32, canChange bool,
  20926. d *Decoder) (_ map[uint]float32, changed bool) {
  20927. dd, esep := d.d, d.hh.hasElemSeparators()
  20928. containerLen := dd.ReadMapStart()
  20929. if canChange && v == nil {
  20930. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  20931. v = make(map[uint]float32, xlen)
  20932. changed = true
  20933. }
  20934. if containerLen == 0 {
  20935. dd.ReadMapEnd()
  20936. return v, changed
  20937. }
  20938. var mk uint
  20939. var mv float32
  20940. hasLen := containerLen > 0
  20941. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20942. if esep {
  20943. dd.ReadMapElemKey()
  20944. }
  20945. mk = uint(dd.DecodeUint(uintBitsize))
  20946. if esep {
  20947. dd.ReadMapElemValue()
  20948. }
  20949. if dd.TryDecodeAsNil() {
  20950. if d.h.DeleteOnNilMapValue {
  20951. delete(v, mk)
  20952. } else {
  20953. v[mk] = 0
  20954. }
  20955. continue
  20956. }
  20957. mv = float32(dd.DecodeFloat(true))
  20958. if v != nil {
  20959. v[mk] = mv
  20960. }
  20961. }
  20962. dd.ReadMapEnd()
  20963. return v, changed
  20964. }
  20965. func (d *Decoder) fastpathDecMapUintFloat64R(f *codecFnInfo, rv reflect.Value) {
  20966. if rv.Kind() == reflect.Ptr {
  20967. vp := rv2i(rv).(*map[uint]float64)
  20968. if v, changed := fastpathTV.DecMapUintFloat64V(*vp, true, d); changed {
  20969. *vp = v
  20970. }
  20971. return
  20972. }
  20973. fastpathTV.DecMapUintFloat64V(rv2i(rv).(map[uint]float64), false, d)
  20974. }
  20975. func (f fastpathT) DecMapUintFloat64X(vp *map[uint]float64, d *Decoder) {
  20976. if v, changed := f.DecMapUintFloat64V(*vp, true, d); changed {
  20977. *vp = v
  20978. }
  20979. }
  20980. func (_ fastpathT) DecMapUintFloat64V(v map[uint]float64, canChange bool,
  20981. d *Decoder) (_ map[uint]float64, changed bool) {
  20982. dd, esep := d.d, d.hh.hasElemSeparators()
  20983. containerLen := dd.ReadMapStart()
  20984. if canChange && v == nil {
  20985. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  20986. v = make(map[uint]float64, xlen)
  20987. changed = true
  20988. }
  20989. if containerLen == 0 {
  20990. dd.ReadMapEnd()
  20991. return v, changed
  20992. }
  20993. var mk uint
  20994. var mv float64
  20995. hasLen := containerLen > 0
  20996. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  20997. if esep {
  20998. dd.ReadMapElemKey()
  20999. }
  21000. mk = uint(dd.DecodeUint(uintBitsize))
  21001. if esep {
  21002. dd.ReadMapElemValue()
  21003. }
  21004. if dd.TryDecodeAsNil() {
  21005. if d.h.DeleteOnNilMapValue {
  21006. delete(v, mk)
  21007. } else {
  21008. v[mk] = 0
  21009. }
  21010. continue
  21011. }
  21012. mv = dd.DecodeFloat(false)
  21013. if v != nil {
  21014. v[mk] = mv
  21015. }
  21016. }
  21017. dd.ReadMapEnd()
  21018. return v, changed
  21019. }
  21020. func (d *Decoder) fastpathDecMapUintBoolR(f *codecFnInfo, rv reflect.Value) {
  21021. if rv.Kind() == reflect.Ptr {
  21022. vp := rv2i(rv).(*map[uint]bool)
  21023. if v, changed := fastpathTV.DecMapUintBoolV(*vp, true, d); changed {
  21024. *vp = v
  21025. }
  21026. return
  21027. }
  21028. fastpathTV.DecMapUintBoolV(rv2i(rv).(map[uint]bool), false, d)
  21029. }
  21030. func (f fastpathT) DecMapUintBoolX(vp *map[uint]bool, d *Decoder) {
  21031. if v, changed := f.DecMapUintBoolV(*vp, true, d); changed {
  21032. *vp = v
  21033. }
  21034. }
  21035. func (_ fastpathT) DecMapUintBoolV(v map[uint]bool, canChange bool,
  21036. d *Decoder) (_ map[uint]bool, changed bool) {
  21037. dd, esep := d.d, d.hh.hasElemSeparators()
  21038. containerLen := dd.ReadMapStart()
  21039. if canChange && v == nil {
  21040. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  21041. v = make(map[uint]bool, xlen)
  21042. changed = true
  21043. }
  21044. if containerLen == 0 {
  21045. dd.ReadMapEnd()
  21046. return v, changed
  21047. }
  21048. var mk uint
  21049. var mv bool
  21050. hasLen := containerLen > 0
  21051. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21052. if esep {
  21053. dd.ReadMapElemKey()
  21054. }
  21055. mk = uint(dd.DecodeUint(uintBitsize))
  21056. if esep {
  21057. dd.ReadMapElemValue()
  21058. }
  21059. if dd.TryDecodeAsNil() {
  21060. if d.h.DeleteOnNilMapValue {
  21061. delete(v, mk)
  21062. } else {
  21063. v[mk] = false
  21064. }
  21065. continue
  21066. }
  21067. mv = dd.DecodeBool()
  21068. if v != nil {
  21069. v[mk] = mv
  21070. }
  21071. }
  21072. dd.ReadMapEnd()
  21073. return v, changed
  21074. }
  21075. func (d *Decoder) fastpathDecMapUint8IntfR(f *codecFnInfo, rv reflect.Value) {
  21076. if rv.Kind() == reflect.Ptr {
  21077. vp := rv2i(rv).(*map[uint8]interface{})
  21078. if v, changed := fastpathTV.DecMapUint8IntfV(*vp, true, d); changed {
  21079. *vp = v
  21080. }
  21081. return
  21082. }
  21083. fastpathTV.DecMapUint8IntfV(rv2i(rv).(map[uint8]interface{}), false, d)
  21084. }
  21085. func (f fastpathT) DecMapUint8IntfX(vp *map[uint8]interface{}, d *Decoder) {
  21086. if v, changed := f.DecMapUint8IntfV(*vp, true, d); changed {
  21087. *vp = v
  21088. }
  21089. }
  21090. func (_ fastpathT) DecMapUint8IntfV(v map[uint8]interface{}, canChange bool,
  21091. d *Decoder) (_ map[uint8]interface{}, changed bool) {
  21092. dd, esep := d.d, d.hh.hasElemSeparators()
  21093. containerLen := dd.ReadMapStart()
  21094. if canChange && v == nil {
  21095. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  21096. v = make(map[uint8]interface{}, xlen)
  21097. changed = true
  21098. }
  21099. if containerLen == 0 {
  21100. dd.ReadMapEnd()
  21101. return v, changed
  21102. }
  21103. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  21104. var mk uint8
  21105. var mv interface{}
  21106. hasLen := containerLen > 0
  21107. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21108. if esep {
  21109. dd.ReadMapElemKey()
  21110. }
  21111. mk = uint8(dd.DecodeUint(8))
  21112. if esep {
  21113. dd.ReadMapElemValue()
  21114. }
  21115. if dd.TryDecodeAsNil() {
  21116. if d.h.DeleteOnNilMapValue {
  21117. delete(v, mk)
  21118. } else {
  21119. v[mk] = nil
  21120. }
  21121. continue
  21122. }
  21123. if mapGet {
  21124. mv = v[mk]
  21125. } else {
  21126. mv = nil
  21127. }
  21128. d.decode(&mv)
  21129. if v != nil {
  21130. v[mk] = mv
  21131. }
  21132. }
  21133. dd.ReadMapEnd()
  21134. return v, changed
  21135. }
  21136. func (d *Decoder) fastpathDecMapUint8StringR(f *codecFnInfo, rv reflect.Value) {
  21137. if rv.Kind() == reflect.Ptr {
  21138. vp := rv2i(rv).(*map[uint8]string)
  21139. if v, changed := fastpathTV.DecMapUint8StringV(*vp, true, d); changed {
  21140. *vp = v
  21141. }
  21142. return
  21143. }
  21144. fastpathTV.DecMapUint8StringV(rv2i(rv).(map[uint8]string), false, d)
  21145. }
  21146. func (f fastpathT) DecMapUint8StringX(vp *map[uint8]string, d *Decoder) {
  21147. if v, changed := f.DecMapUint8StringV(*vp, true, d); changed {
  21148. *vp = v
  21149. }
  21150. }
  21151. func (_ fastpathT) DecMapUint8StringV(v map[uint8]string, canChange bool,
  21152. d *Decoder) (_ map[uint8]string, changed bool) {
  21153. dd, esep := d.d, d.hh.hasElemSeparators()
  21154. containerLen := dd.ReadMapStart()
  21155. if canChange && v == nil {
  21156. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  21157. v = make(map[uint8]string, xlen)
  21158. changed = true
  21159. }
  21160. if containerLen == 0 {
  21161. dd.ReadMapEnd()
  21162. return v, changed
  21163. }
  21164. var mk uint8
  21165. var mv string
  21166. hasLen := containerLen > 0
  21167. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21168. if esep {
  21169. dd.ReadMapElemKey()
  21170. }
  21171. mk = uint8(dd.DecodeUint(8))
  21172. if esep {
  21173. dd.ReadMapElemValue()
  21174. }
  21175. if dd.TryDecodeAsNil() {
  21176. if d.h.DeleteOnNilMapValue {
  21177. delete(v, mk)
  21178. } else {
  21179. v[mk] = ""
  21180. }
  21181. continue
  21182. }
  21183. mv = dd.DecodeString()
  21184. if v != nil {
  21185. v[mk] = mv
  21186. }
  21187. }
  21188. dd.ReadMapEnd()
  21189. return v, changed
  21190. }
  21191. func (d *Decoder) fastpathDecMapUint8UintR(f *codecFnInfo, rv reflect.Value) {
  21192. if rv.Kind() == reflect.Ptr {
  21193. vp := rv2i(rv).(*map[uint8]uint)
  21194. if v, changed := fastpathTV.DecMapUint8UintV(*vp, true, d); changed {
  21195. *vp = v
  21196. }
  21197. return
  21198. }
  21199. fastpathTV.DecMapUint8UintV(rv2i(rv).(map[uint8]uint), false, d)
  21200. }
  21201. func (f fastpathT) DecMapUint8UintX(vp *map[uint8]uint, d *Decoder) {
  21202. if v, changed := f.DecMapUint8UintV(*vp, true, d); changed {
  21203. *vp = v
  21204. }
  21205. }
  21206. func (_ fastpathT) DecMapUint8UintV(v map[uint8]uint, canChange bool,
  21207. d *Decoder) (_ map[uint8]uint, changed bool) {
  21208. dd, esep := d.d, d.hh.hasElemSeparators()
  21209. containerLen := dd.ReadMapStart()
  21210. if canChange && v == nil {
  21211. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  21212. v = make(map[uint8]uint, xlen)
  21213. changed = true
  21214. }
  21215. if containerLen == 0 {
  21216. dd.ReadMapEnd()
  21217. return v, changed
  21218. }
  21219. var mk uint8
  21220. var mv uint
  21221. hasLen := containerLen > 0
  21222. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21223. if esep {
  21224. dd.ReadMapElemKey()
  21225. }
  21226. mk = uint8(dd.DecodeUint(8))
  21227. if esep {
  21228. dd.ReadMapElemValue()
  21229. }
  21230. if dd.TryDecodeAsNil() {
  21231. if d.h.DeleteOnNilMapValue {
  21232. delete(v, mk)
  21233. } else {
  21234. v[mk] = 0
  21235. }
  21236. continue
  21237. }
  21238. mv = uint(dd.DecodeUint(uintBitsize))
  21239. if v != nil {
  21240. v[mk] = mv
  21241. }
  21242. }
  21243. dd.ReadMapEnd()
  21244. return v, changed
  21245. }
  21246. func (d *Decoder) fastpathDecMapUint8Uint8R(f *codecFnInfo, rv reflect.Value) {
  21247. if rv.Kind() == reflect.Ptr {
  21248. vp := rv2i(rv).(*map[uint8]uint8)
  21249. if v, changed := fastpathTV.DecMapUint8Uint8V(*vp, true, d); changed {
  21250. *vp = v
  21251. }
  21252. return
  21253. }
  21254. fastpathTV.DecMapUint8Uint8V(rv2i(rv).(map[uint8]uint8), false, d)
  21255. }
  21256. func (f fastpathT) DecMapUint8Uint8X(vp *map[uint8]uint8, d *Decoder) {
  21257. if v, changed := f.DecMapUint8Uint8V(*vp, true, d); changed {
  21258. *vp = v
  21259. }
  21260. }
  21261. func (_ fastpathT) DecMapUint8Uint8V(v map[uint8]uint8, canChange bool,
  21262. d *Decoder) (_ map[uint8]uint8, changed bool) {
  21263. dd, esep := d.d, d.hh.hasElemSeparators()
  21264. containerLen := dd.ReadMapStart()
  21265. if canChange && v == nil {
  21266. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  21267. v = make(map[uint8]uint8, xlen)
  21268. changed = true
  21269. }
  21270. if containerLen == 0 {
  21271. dd.ReadMapEnd()
  21272. return v, changed
  21273. }
  21274. var mk uint8
  21275. var mv uint8
  21276. hasLen := containerLen > 0
  21277. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21278. if esep {
  21279. dd.ReadMapElemKey()
  21280. }
  21281. mk = uint8(dd.DecodeUint(8))
  21282. if esep {
  21283. dd.ReadMapElemValue()
  21284. }
  21285. if dd.TryDecodeAsNil() {
  21286. if d.h.DeleteOnNilMapValue {
  21287. delete(v, mk)
  21288. } else {
  21289. v[mk] = 0
  21290. }
  21291. continue
  21292. }
  21293. mv = uint8(dd.DecodeUint(8))
  21294. if v != nil {
  21295. v[mk] = mv
  21296. }
  21297. }
  21298. dd.ReadMapEnd()
  21299. return v, changed
  21300. }
  21301. func (d *Decoder) fastpathDecMapUint8Uint16R(f *codecFnInfo, rv reflect.Value) {
  21302. if rv.Kind() == reflect.Ptr {
  21303. vp := rv2i(rv).(*map[uint8]uint16)
  21304. if v, changed := fastpathTV.DecMapUint8Uint16V(*vp, true, d); changed {
  21305. *vp = v
  21306. }
  21307. return
  21308. }
  21309. fastpathTV.DecMapUint8Uint16V(rv2i(rv).(map[uint8]uint16), false, d)
  21310. }
  21311. func (f fastpathT) DecMapUint8Uint16X(vp *map[uint8]uint16, d *Decoder) {
  21312. if v, changed := f.DecMapUint8Uint16V(*vp, true, d); changed {
  21313. *vp = v
  21314. }
  21315. }
  21316. func (_ fastpathT) DecMapUint8Uint16V(v map[uint8]uint16, canChange bool,
  21317. d *Decoder) (_ map[uint8]uint16, changed bool) {
  21318. dd, esep := d.d, d.hh.hasElemSeparators()
  21319. containerLen := dd.ReadMapStart()
  21320. if canChange && v == nil {
  21321. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  21322. v = make(map[uint8]uint16, xlen)
  21323. changed = true
  21324. }
  21325. if containerLen == 0 {
  21326. dd.ReadMapEnd()
  21327. return v, changed
  21328. }
  21329. var mk uint8
  21330. var mv uint16
  21331. hasLen := containerLen > 0
  21332. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21333. if esep {
  21334. dd.ReadMapElemKey()
  21335. }
  21336. mk = uint8(dd.DecodeUint(8))
  21337. if esep {
  21338. dd.ReadMapElemValue()
  21339. }
  21340. if dd.TryDecodeAsNil() {
  21341. if d.h.DeleteOnNilMapValue {
  21342. delete(v, mk)
  21343. } else {
  21344. v[mk] = 0
  21345. }
  21346. continue
  21347. }
  21348. mv = uint16(dd.DecodeUint(16))
  21349. if v != nil {
  21350. v[mk] = mv
  21351. }
  21352. }
  21353. dd.ReadMapEnd()
  21354. return v, changed
  21355. }
  21356. func (d *Decoder) fastpathDecMapUint8Uint32R(f *codecFnInfo, rv reflect.Value) {
  21357. if rv.Kind() == reflect.Ptr {
  21358. vp := rv2i(rv).(*map[uint8]uint32)
  21359. if v, changed := fastpathTV.DecMapUint8Uint32V(*vp, true, d); changed {
  21360. *vp = v
  21361. }
  21362. return
  21363. }
  21364. fastpathTV.DecMapUint8Uint32V(rv2i(rv).(map[uint8]uint32), false, d)
  21365. }
  21366. func (f fastpathT) DecMapUint8Uint32X(vp *map[uint8]uint32, d *Decoder) {
  21367. if v, changed := f.DecMapUint8Uint32V(*vp, true, d); changed {
  21368. *vp = v
  21369. }
  21370. }
  21371. func (_ fastpathT) DecMapUint8Uint32V(v map[uint8]uint32, canChange bool,
  21372. d *Decoder) (_ map[uint8]uint32, changed bool) {
  21373. dd, esep := d.d, d.hh.hasElemSeparators()
  21374. containerLen := dd.ReadMapStart()
  21375. if canChange && v == nil {
  21376. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  21377. v = make(map[uint8]uint32, xlen)
  21378. changed = true
  21379. }
  21380. if containerLen == 0 {
  21381. dd.ReadMapEnd()
  21382. return v, changed
  21383. }
  21384. var mk uint8
  21385. var mv uint32
  21386. hasLen := containerLen > 0
  21387. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21388. if esep {
  21389. dd.ReadMapElemKey()
  21390. }
  21391. mk = uint8(dd.DecodeUint(8))
  21392. if esep {
  21393. dd.ReadMapElemValue()
  21394. }
  21395. if dd.TryDecodeAsNil() {
  21396. if d.h.DeleteOnNilMapValue {
  21397. delete(v, mk)
  21398. } else {
  21399. v[mk] = 0
  21400. }
  21401. continue
  21402. }
  21403. mv = uint32(dd.DecodeUint(32))
  21404. if v != nil {
  21405. v[mk] = mv
  21406. }
  21407. }
  21408. dd.ReadMapEnd()
  21409. return v, changed
  21410. }
  21411. func (d *Decoder) fastpathDecMapUint8Uint64R(f *codecFnInfo, rv reflect.Value) {
  21412. if rv.Kind() == reflect.Ptr {
  21413. vp := rv2i(rv).(*map[uint8]uint64)
  21414. if v, changed := fastpathTV.DecMapUint8Uint64V(*vp, true, d); changed {
  21415. *vp = v
  21416. }
  21417. return
  21418. }
  21419. fastpathTV.DecMapUint8Uint64V(rv2i(rv).(map[uint8]uint64), false, d)
  21420. }
  21421. func (f fastpathT) DecMapUint8Uint64X(vp *map[uint8]uint64, d *Decoder) {
  21422. if v, changed := f.DecMapUint8Uint64V(*vp, true, d); changed {
  21423. *vp = v
  21424. }
  21425. }
  21426. func (_ fastpathT) DecMapUint8Uint64V(v map[uint8]uint64, canChange bool,
  21427. d *Decoder) (_ map[uint8]uint64, changed bool) {
  21428. dd, esep := d.d, d.hh.hasElemSeparators()
  21429. containerLen := dd.ReadMapStart()
  21430. if canChange && v == nil {
  21431. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  21432. v = make(map[uint8]uint64, xlen)
  21433. changed = true
  21434. }
  21435. if containerLen == 0 {
  21436. dd.ReadMapEnd()
  21437. return v, changed
  21438. }
  21439. var mk uint8
  21440. var mv uint64
  21441. hasLen := containerLen > 0
  21442. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21443. if esep {
  21444. dd.ReadMapElemKey()
  21445. }
  21446. mk = uint8(dd.DecodeUint(8))
  21447. if esep {
  21448. dd.ReadMapElemValue()
  21449. }
  21450. if dd.TryDecodeAsNil() {
  21451. if d.h.DeleteOnNilMapValue {
  21452. delete(v, mk)
  21453. } else {
  21454. v[mk] = 0
  21455. }
  21456. continue
  21457. }
  21458. mv = dd.DecodeUint(64)
  21459. if v != nil {
  21460. v[mk] = mv
  21461. }
  21462. }
  21463. dd.ReadMapEnd()
  21464. return v, changed
  21465. }
  21466. func (d *Decoder) fastpathDecMapUint8UintptrR(f *codecFnInfo, rv reflect.Value) {
  21467. if rv.Kind() == reflect.Ptr {
  21468. vp := rv2i(rv).(*map[uint8]uintptr)
  21469. if v, changed := fastpathTV.DecMapUint8UintptrV(*vp, true, d); changed {
  21470. *vp = v
  21471. }
  21472. return
  21473. }
  21474. fastpathTV.DecMapUint8UintptrV(rv2i(rv).(map[uint8]uintptr), false, d)
  21475. }
  21476. func (f fastpathT) DecMapUint8UintptrX(vp *map[uint8]uintptr, d *Decoder) {
  21477. if v, changed := f.DecMapUint8UintptrV(*vp, true, d); changed {
  21478. *vp = v
  21479. }
  21480. }
  21481. func (_ fastpathT) DecMapUint8UintptrV(v map[uint8]uintptr, canChange bool,
  21482. d *Decoder) (_ map[uint8]uintptr, changed bool) {
  21483. dd, esep := d.d, d.hh.hasElemSeparators()
  21484. containerLen := dd.ReadMapStart()
  21485. if canChange && v == nil {
  21486. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  21487. v = make(map[uint8]uintptr, xlen)
  21488. changed = true
  21489. }
  21490. if containerLen == 0 {
  21491. dd.ReadMapEnd()
  21492. return v, changed
  21493. }
  21494. var mk uint8
  21495. var mv uintptr
  21496. hasLen := containerLen > 0
  21497. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21498. if esep {
  21499. dd.ReadMapElemKey()
  21500. }
  21501. mk = uint8(dd.DecodeUint(8))
  21502. if esep {
  21503. dd.ReadMapElemValue()
  21504. }
  21505. if dd.TryDecodeAsNil() {
  21506. if d.h.DeleteOnNilMapValue {
  21507. delete(v, mk)
  21508. } else {
  21509. v[mk] = 0
  21510. }
  21511. continue
  21512. }
  21513. mv = uintptr(dd.DecodeUint(uintBitsize))
  21514. if v != nil {
  21515. v[mk] = mv
  21516. }
  21517. }
  21518. dd.ReadMapEnd()
  21519. return v, changed
  21520. }
  21521. func (d *Decoder) fastpathDecMapUint8IntR(f *codecFnInfo, rv reflect.Value) {
  21522. if rv.Kind() == reflect.Ptr {
  21523. vp := rv2i(rv).(*map[uint8]int)
  21524. if v, changed := fastpathTV.DecMapUint8IntV(*vp, true, d); changed {
  21525. *vp = v
  21526. }
  21527. return
  21528. }
  21529. fastpathTV.DecMapUint8IntV(rv2i(rv).(map[uint8]int), false, d)
  21530. }
  21531. func (f fastpathT) DecMapUint8IntX(vp *map[uint8]int, d *Decoder) {
  21532. if v, changed := f.DecMapUint8IntV(*vp, true, d); changed {
  21533. *vp = v
  21534. }
  21535. }
  21536. func (_ fastpathT) DecMapUint8IntV(v map[uint8]int, canChange bool,
  21537. d *Decoder) (_ map[uint8]int, changed bool) {
  21538. dd, esep := d.d, d.hh.hasElemSeparators()
  21539. containerLen := dd.ReadMapStart()
  21540. if canChange && v == nil {
  21541. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  21542. v = make(map[uint8]int, xlen)
  21543. changed = true
  21544. }
  21545. if containerLen == 0 {
  21546. dd.ReadMapEnd()
  21547. return v, changed
  21548. }
  21549. var mk uint8
  21550. var mv int
  21551. hasLen := containerLen > 0
  21552. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21553. if esep {
  21554. dd.ReadMapElemKey()
  21555. }
  21556. mk = uint8(dd.DecodeUint(8))
  21557. if esep {
  21558. dd.ReadMapElemValue()
  21559. }
  21560. if dd.TryDecodeAsNil() {
  21561. if d.h.DeleteOnNilMapValue {
  21562. delete(v, mk)
  21563. } else {
  21564. v[mk] = 0
  21565. }
  21566. continue
  21567. }
  21568. mv = int(dd.DecodeInt(intBitsize))
  21569. if v != nil {
  21570. v[mk] = mv
  21571. }
  21572. }
  21573. dd.ReadMapEnd()
  21574. return v, changed
  21575. }
  21576. func (d *Decoder) fastpathDecMapUint8Int8R(f *codecFnInfo, rv reflect.Value) {
  21577. if rv.Kind() == reflect.Ptr {
  21578. vp := rv2i(rv).(*map[uint8]int8)
  21579. if v, changed := fastpathTV.DecMapUint8Int8V(*vp, true, d); changed {
  21580. *vp = v
  21581. }
  21582. return
  21583. }
  21584. fastpathTV.DecMapUint8Int8V(rv2i(rv).(map[uint8]int8), false, d)
  21585. }
  21586. func (f fastpathT) DecMapUint8Int8X(vp *map[uint8]int8, d *Decoder) {
  21587. if v, changed := f.DecMapUint8Int8V(*vp, true, d); changed {
  21588. *vp = v
  21589. }
  21590. }
  21591. func (_ fastpathT) DecMapUint8Int8V(v map[uint8]int8, canChange bool,
  21592. d *Decoder) (_ map[uint8]int8, changed bool) {
  21593. dd, esep := d.d, d.hh.hasElemSeparators()
  21594. containerLen := dd.ReadMapStart()
  21595. if canChange && v == nil {
  21596. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  21597. v = make(map[uint8]int8, xlen)
  21598. changed = true
  21599. }
  21600. if containerLen == 0 {
  21601. dd.ReadMapEnd()
  21602. return v, changed
  21603. }
  21604. var mk uint8
  21605. var mv int8
  21606. hasLen := containerLen > 0
  21607. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21608. if esep {
  21609. dd.ReadMapElemKey()
  21610. }
  21611. mk = uint8(dd.DecodeUint(8))
  21612. if esep {
  21613. dd.ReadMapElemValue()
  21614. }
  21615. if dd.TryDecodeAsNil() {
  21616. if d.h.DeleteOnNilMapValue {
  21617. delete(v, mk)
  21618. } else {
  21619. v[mk] = 0
  21620. }
  21621. continue
  21622. }
  21623. mv = int8(dd.DecodeInt(8))
  21624. if v != nil {
  21625. v[mk] = mv
  21626. }
  21627. }
  21628. dd.ReadMapEnd()
  21629. return v, changed
  21630. }
  21631. func (d *Decoder) fastpathDecMapUint8Int16R(f *codecFnInfo, rv reflect.Value) {
  21632. if rv.Kind() == reflect.Ptr {
  21633. vp := rv2i(rv).(*map[uint8]int16)
  21634. if v, changed := fastpathTV.DecMapUint8Int16V(*vp, true, d); changed {
  21635. *vp = v
  21636. }
  21637. return
  21638. }
  21639. fastpathTV.DecMapUint8Int16V(rv2i(rv).(map[uint8]int16), false, d)
  21640. }
  21641. func (f fastpathT) DecMapUint8Int16X(vp *map[uint8]int16, d *Decoder) {
  21642. if v, changed := f.DecMapUint8Int16V(*vp, true, d); changed {
  21643. *vp = v
  21644. }
  21645. }
  21646. func (_ fastpathT) DecMapUint8Int16V(v map[uint8]int16, canChange bool,
  21647. d *Decoder) (_ map[uint8]int16, changed bool) {
  21648. dd, esep := d.d, d.hh.hasElemSeparators()
  21649. containerLen := dd.ReadMapStart()
  21650. if canChange && v == nil {
  21651. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  21652. v = make(map[uint8]int16, xlen)
  21653. changed = true
  21654. }
  21655. if containerLen == 0 {
  21656. dd.ReadMapEnd()
  21657. return v, changed
  21658. }
  21659. var mk uint8
  21660. var mv int16
  21661. hasLen := containerLen > 0
  21662. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21663. if esep {
  21664. dd.ReadMapElemKey()
  21665. }
  21666. mk = uint8(dd.DecodeUint(8))
  21667. if esep {
  21668. dd.ReadMapElemValue()
  21669. }
  21670. if dd.TryDecodeAsNil() {
  21671. if d.h.DeleteOnNilMapValue {
  21672. delete(v, mk)
  21673. } else {
  21674. v[mk] = 0
  21675. }
  21676. continue
  21677. }
  21678. mv = int16(dd.DecodeInt(16))
  21679. if v != nil {
  21680. v[mk] = mv
  21681. }
  21682. }
  21683. dd.ReadMapEnd()
  21684. return v, changed
  21685. }
  21686. func (d *Decoder) fastpathDecMapUint8Int32R(f *codecFnInfo, rv reflect.Value) {
  21687. if rv.Kind() == reflect.Ptr {
  21688. vp := rv2i(rv).(*map[uint8]int32)
  21689. if v, changed := fastpathTV.DecMapUint8Int32V(*vp, true, d); changed {
  21690. *vp = v
  21691. }
  21692. return
  21693. }
  21694. fastpathTV.DecMapUint8Int32V(rv2i(rv).(map[uint8]int32), false, d)
  21695. }
  21696. func (f fastpathT) DecMapUint8Int32X(vp *map[uint8]int32, d *Decoder) {
  21697. if v, changed := f.DecMapUint8Int32V(*vp, true, d); changed {
  21698. *vp = v
  21699. }
  21700. }
  21701. func (_ fastpathT) DecMapUint8Int32V(v map[uint8]int32, canChange bool,
  21702. d *Decoder) (_ map[uint8]int32, changed bool) {
  21703. dd, esep := d.d, d.hh.hasElemSeparators()
  21704. containerLen := dd.ReadMapStart()
  21705. if canChange && v == nil {
  21706. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  21707. v = make(map[uint8]int32, xlen)
  21708. changed = true
  21709. }
  21710. if containerLen == 0 {
  21711. dd.ReadMapEnd()
  21712. return v, changed
  21713. }
  21714. var mk uint8
  21715. var mv int32
  21716. hasLen := containerLen > 0
  21717. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21718. if esep {
  21719. dd.ReadMapElemKey()
  21720. }
  21721. mk = uint8(dd.DecodeUint(8))
  21722. if esep {
  21723. dd.ReadMapElemValue()
  21724. }
  21725. if dd.TryDecodeAsNil() {
  21726. if d.h.DeleteOnNilMapValue {
  21727. delete(v, mk)
  21728. } else {
  21729. v[mk] = 0
  21730. }
  21731. continue
  21732. }
  21733. mv = int32(dd.DecodeInt(32))
  21734. if v != nil {
  21735. v[mk] = mv
  21736. }
  21737. }
  21738. dd.ReadMapEnd()
  21739. return v, changed
  21740. }
  21741. func (d *Decoder) fastpathDecMapUint8Int64R(f *codecFnInfo, rv reflect.Value) {
  21742. if rv.Kind() == reflect.Ptr {
  21743. vp := rv2i(rv).(*map[uint8]int64)
  21744. if v, changed := fastpathTV.DecMapUint8Int64V(*vp, true, d); changed {
  21745. *vp = v
  21746. }
  21747. return
  21748. }
  21749. fastpathTV.DecMapUint8Int64V(rv2i(rv).(map[uint8]int64), false, d)
  21750. }
  21751. func (f fastpathT) DecMapUint8Int64X(vp *map[uint8]int64, d *Decoder) {
  21752. if v, changed := f.DecMapUint8Int64V(*vp, true, d); changed {
  21753. *vp = v
  21754. }
  21755. }
  21756. func (_ fastpathT) DecMapUint8Int64V(v map[uint8]int64, canChange bool,
  21757. d *Decoder) (_ map[uint8]int64, changed bool) {
  21758. dd, esep := d.d, d.hh.hasElemSeparators()
  21759. containerLen := dd.ReadMapStart()
  21760. if canChange && v == nil {
  21761. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  21762. v = make(map[uint8]int64, xlen)
  21763. changed = true
  21764. }
  21765. if containerLen == 0 {
  21766. dd.ReadMapEnd()
  21767. return v, changed
  21768. }
  21769. var mk uint8
  21770. var mv int64
  21771. hasLen := containerLen > 0
  21772. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21773. if esep {
  21774. dd.ReadMapElemKey()
  21775. }
  21776. mk = uint8(dd.DecodeUint(8))
  21777. if esep {
  21778. dd.ReadMapElemValue()
  21779. }
  21780. if dd.TryDecodeAsNil() {
  21781. if d.h.DeleteOnNilMapValue {
  21782. delete(v, mk)
  21783. } else {
  21784. v[mk] = 0
  21785. }
  21786. continue
  21787. }
  21788. mv = dd.DecodeInt(64)
  21789. if v != nil {
  21790. v[mk] = mv
  21791. }
  21792. }
  21793. dd.ReadMapEnd()
  21794. return v, changed
  21795. }
  21796. func (d *Decoder) fastpathDecMapUint8Float32R(f *codecFnInfo, rv reflect.Value) {
  21797. if rv.Kind() == reflect.Ptr {
  21798. vp := rv2i(rv).(*map[uint8]float32)
  21799. if v, changed := fastpathTV.DecMapUint8Float32V(*vp, true, d); changed {
  21800. *vp = v
  21801. }
  21802. return
  21803. }
  21804. fastpathTV.DecMapUint8Float32V(rv2i(rv).(map[uint8]float32), false, d)
  21805. }
  21806. func (f fastpathT) DecMapUint8Float32X(vp *map[uint8]float32, d *Decoder) {
  21807. if v, changed := f.DecMapUint8Float32V(*vp, true, d); changed {
  21808. *vp = v
  21809. }
  21810. }
  21811. func (_ fastpathT) DecMapUint8Float32V(v map[uint8]float32, canChange bool,
  21812. d *Decoder) (_ map[uint8]float32, changed bool) {
  21813. dd, esep := d.d, d.hh.hasElemSeparators()
  21814. containerLen := dd.ReadMapStart()
  21815. if canChange && v == nil {
  21816. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  21817. v = make(map[uint8]float32, xlen)
  21818. changed = true
  21819. }
  21820. if containerLen == 0 {
  21821. dd.ReadMapEnd()
  21822. return v, changed
  21823. }
  21824. var mk uint8
  21825. var mv float32
  21826. hasLen := containerLen > 0
  21827. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21828. if esep {
  21829. dd.ReadMapElemKey()
  21830. }
  21831. mk = uint8(dd.DecodeUint(8))
  21832. if esep {
  21833. dd.ReadMapElemValue()
  21834. }
  21835. if dd.TryDecodeAsNil() {
  21836. if d.h.DeleteOnNilMapValue {
  21837. delete(v, mk)
  21838. } else {
  21839. v[mk] = 0
  21840. }
  21841. continue
  21842. }
  21843. mv = float32(dd.DecodeFloat(true))
  21844. if v != nil {
  21845. v[mk] = mv
  21846. }
  21847. }
  21848. dd.ReadMapEnd()
  21849. return v, changed
  21850. }
  21851. func (d *Decoder) fastpathDecMapUint8Float64R(f *codecFnInfo, rv reflect.Value) {
  21852. if rv.Kind() == reflect.Ptr {
  21853. vp := rv2i(rv).(*map[uint8]float64)
  21854. if v, changed := fastpathTV.DecMapUint8Float64V(*vp, true, d); changed {
  21855. *vp = v
  21856. }
  21857. return
  21858. }
  21859. fastpathTV.DecMapUint8Float64V(rv2i(rv).(map[uint8]float64), false, d)
  21860. }
  21861. func (f fastpathT) DecMapUint8Float64X(vp *map[uint8]float64, d *Decoder) {
  21862. if v, changed := f.DecMapUint8Float64V(*vp, true, d); changed {
  21863. *vp = v
  21864. }
  21865. }
  21866. func (_ fastpathT) DecMapUint8Float64V(v map[uint8]float64, canChange bool,
  21867. d *Decoder) (_ map[uint8]float64, changed bool) {
  21868. dd, esep := d.d, d.hh.hasElemSeparators()
  21869. containerLen := dd.ReadMapStart()
  21870. if canChange && v == nil {
  21871. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  21872. v = make(map[uint8]float64, xlen)
  21873. changed = true
  21874. }
  21875. if containerLen == 0 {
  21876. dd.ReadMapEnd()
  21877. return v, changed
  21878. }
  21879. var mk uint8
  21880. var mv float64
  21881. hasLen := containerLen > 0
  21882. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21883. if esep {
  21884. dd.ReadMapElemKey()
  21885. }
  21886. mk = uint8(dd.DecodeUint(8))
  21887. if esep {
  21888. dd.ReadMapElemValue()
  21889. }
  21890. if dd.TryDecodeAsNil() {
  21891. if d.h.DeleteOnNilMapValue {
  21892. delete(v, mk)
  21893. } else {
  21894. v[mk] = 0
  21895. }
  21896. continue
  21897. }
  21898. mv = dd.DecodeFloat(false)
  21899. if v != nil {
  21900. v[mk] = mv
  21901. }
  21902. }
  21903. dd.ReadMapEnd()
  21904. return v, changed
  21905. }
  21906. func (d *Decoder) fastpathDecMapUint8BoolR(f *codecFnInfo, rv reflect.Value) {
  21907. if rv.Kind() == reflect.Ptr {
  21908. vp := rv2i(rv).(*map[uint8]bool)
  21909. if v, changed := fastpathTV.DecMapUint8BoolV(*vp, true, d); changed {
  21910. *vp = v
  21911. }
  21912. return
  21913. }
  21914. fastpathTV.DecMapUint8BoolV(rv2i(rv).(map[uint8]bool), false, d)
  21915. }
  21916. func (f fastpathT) DecMapUint8BoolX(vp *map[uint8]bool, d *Decoder) {
  21917. if v, changed := f.DecMapUint8BoolV(*vp, true, d); changed {
  21918. *vp = v
  21919. }
  21920. }
  21921. func (_ fastpathT) DecMapUint8BoolV(v map[uint8]bool, canChange bool,
  21922. d *Decoder) (_ map[uint8]bool, changed bool) {
  21923. dd, esep := d.d, d.hh.hasElemSeparators()
  21924. containerLen := dd.ReadMapStart()
  21925. if canChange && v == nil {
  21926. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  21927. v = make(map[uint8]bool, xlen)
  21928. changed = true
  21929. }
  21930. if containerLen == 0 {
  21931. dd.ReadMapEnd()
  21932. return v, changed
  21933. }
  21934. var mk uint8
  21935. var mv bool
  21936. hasLen := containerLen > 0
  21937. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21938. if esep {
  21939. dd.ReadMapElemKey()
  21940. }
  21941. mk = uint8(dd.DecodeUint(8))
  21942. if esep {
  21943. dd.ReadMapElemValue()
  21944. }
  21945. if dd.TryDecodeAsNil() {
  21946. if d.h.DeleteOnNilMapValue {
  21947. delete(v, mk)
  21948. } else {
  21949. v[mk] = false
  21950. }
  21951. continue
  21952. }
  21953. mv = dd.DecodeBool()
  21954. if v != nil {
  21955. v[mk] = mv
  21956. }
  21957. }
  21958. dd.ReadMapEnd()
  21959. return v, changed
  21960. }
  21961. func (d *Decoder) fastpathDecMapUint16IntfR(f *codecFnInfo, rv reflect.Value) {
  21962. if rv.Kind() == reflect.Ptr {
  21963. vp := rv2i(rv).(*map[uint16]interface{})
  21964. if v, changed := fastpathTV.DecMapUint16IntfV(*vp, true, d); changed {
  21965. *vp = v
  21966. }
  21967. return
  21968. }
  21969. fastpathTV.DecMapUint16IntfV(rv2i(rv).(map[uint16]interface{}), false, d)
  21970. }
  21971. func (f fastpathT) DecMapUint16IntfX(vp *map[uint16]interface{}, d *Decoder) {
  21972. if v, changed := f.DecMapUint16IntfV(*vp, true, d); changed {
  21973. *vp = v
  21974. }
  21975. }
  21976. func (_ fastpathT) DecMapUint16IntfV(v map[uint16]interface{}, canChange bool,
  21977. d *Decoder) (_ map[uint16]interface{}, changed bool) {
  21978. dd, esep := d.d, d.hh.hasElemSeparators()
  21979. containerLen := dd.ReadMapStart()
  21980. if canChange && v == nil {
  21981. xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
  21982. v = make(map[uint16]interface{}, xlen)
  21983. changed = true
  21984. }
  21985. if containerLen == 0 {
  21986. dd.ReadMapEnd()
  21987. return v, changed
  21988. }
  21989. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  21990. var mk uint16
  21991. var mv interface{}
  21992. hasLen := containerLen > 0
  21993. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  21994. if esep {
  21995. dd.ReadMapElemKey()
  21996. }
  21997. mk = uint16(dd.DecodeUint(16))
  21998. if esep {
  21999. dd.ReadMapElemValue()
  22000. }
  22001. if dd.TryDecodeAsNil() {
  22002. if d.h.DeleteOnNilMapValue {
  22003. delete(v, mk)
  22004. } else {
  22005. v[mk] = nil
  22006. }
  22007. continue
  22008. }
  22009. if mapGet {
  22010. mv = v[mk]
  22011. } else {
  22012. mv = nil
  22013. }
  22014. d.decode(&mv)
  22015. if v != nil {
  22016. v[mk] = mv
  22017. }
  22018. }
  22019. dd.ReadMapEnd()
  22020. return v, changed
  22021. }
  22022. func (d *Decoder) fastpathDecMapUint16StringR(f *codecFnInfo, rv reflect.Value) {
  22023. if rv.Kind() == reflect.Ptr {
  22024. vp := rv2i(rv).(*map[uint16]string)
  22025. if v, changed := fastpathTV.DecMapUint16StringV(*vp, true, d); changed {
  22026. *vp = v
  22027. }
  22028. return
  22029. }
  22030. fastpathTV.DecMapUint16StringV(rv2i(rv).(map[uint16]string), false, d)
  22031. }
  22032. func (f fastpathT) DecMapUint16StringX(vp *map[uint16]string, d *Decoder) {
  22033. if v, changed := f.DecMapUint16StringV(*vp, true, d); changed {
  22034. *vp = v
  22035. }
  22036. }
  22037. func (_ fastpathT) DecMapUint16StringV(v map[uint16]string, canChange bool,
  22038. d *Decoder) (_ map[uint16]string, changed bool) {
  22039. dd, esep := d.d, d.hh.hasElemSeparators()
  22040. containerLen := dd.ReadMapStart()
  22041. if canChange && v == nil {
  22042. xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
  22043. v = make(map[uint16]string, xlen)
  22044. changed = true
  22045. }
  22046. if containerLen == 0 {
  22047. dd.ReadMapEnd()
  22048. return v, changed
  22049. }
  22050. var mk uint16
  22051. var mv string
  22052. hasLen := containerLen > 0
  22053. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22054. if esep {
  22055. dd.ReadMapElemKey()
  22056. }
  22057. mk = uint16(dd.DecodeUint(16))
  22058. if esep {
  22059. dd.ReadMapElemValue()
  22060. }
  22061. if dd.TryDecodeAsNil() {
  22062. if d.h.DeleteOnNilMapValue {
  22063. delete(v, mk)
  22064. } else {
  22065. v[mk] = ""
  22066. }
  22067. continue
  22068. }
  22069. mv = dd.DecodeString()
  22070. if v != nil {
  22071. v[mk] = mv
  22072. }
  22073. }
  22074. dd.ReadMapEnd()
  22075. return v, changed
  22076. }
  22077. func (d *Decoder) fastpathDecMapUint16UintR(f *codecFnInfo, rv reflect.Value) {
  22078. if rv.Kind() == reflect.Ptr {
  22079. vp := rv2i(rv).(*map[uint16]uint)
  22080. if v, changed := fastpathTV.DecMapUint16UintV(*vp, true, d); changed {
  22081. *vp = v
  22082. }
  22083. return
  22084. }
  22085. fastpathTV.DecMapUint16UintV(rv2i(rv).(map[uint16]uint), false, d)
  22086. }
  22087. func (f fastpathT) DecMapUint16UintX(vp *map[uint16]uint, d *Decoder) {
  22088. if v, changed := f.DecMapUint16UintV(*vp, true, d); changed {
  22089. *vp = v
  22090. }
  22091. }
  22092. func (_ fastpathT) DecMapUint16UintV(v map[uint16]uint, canChange bool,
  22093. d *Decoder) (_ map[uint16]uint, changed bool) {
  22094. dd, esep := d.d, d.hh.hasElemSeparators()
  22095. containerLen := dd.ReadMapStart()
  22096. if canChange && v == nil {
  22097. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  22098. v = make(map[uint16]uint, xlen)
  22099. changed = true
  22100. }
  22101. if containerLen == 0 {
  22102. dd.ReadMapEnd()
  22103. return v, changed
  22104. }
  22105. var mk uint16
  22106. var mv uint
  22107. hasLen := containerLen > 0
  22108. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22109. if esep {
  22110. dd.ReadMapElemKey()
  22111. }
  22112. mk = uint16(dd.DecodeUint(16))
  22113. if esep {
  22114. dd.ReadMapElemValue()
  22115. }
  22116. if dd.TryDecodeAsNil() {
  22117. if d.h.DeleteOnNilMapValue {
  22118. delete(v, mk)
  22119. } else {
  22120. v[mk] = 0
  22121. }
  22122. continue
  22123. }
  22124. mv = uint(dd.DecodeUint(uintBitsize))
  22125. if v != nil {
  22126. v[mk] = mv
  22127. }
  22128. }
  22129. dd.ReadMapEnd()
  22130. return v, changed
  22131. }
  22132. func (d *Decoder) fastpathDecMapUint16Uint8R(f *codecFnInfo, rv reflect.Value) {
  22133. if rv.Kind() == reflect.Ptr {
  22134. vp := rv2i(rv).(*map[uint16]uint8)
  22135. if v, changed := fastpathTV.DecMapUint16Uint8V(*vp, true, d); changed {
  22136. *vp = v
  22137. }
  22138. return
  22139. }
  22140. fastpathTV.DecMapUint16Uint8V(rv2i(rv).(map[uint16]uint8), false, d)
  22141. }
  22142. func (f fastpathT) DecMapUint16Uint8X(vp *map[uint16]uint8, d *Decoder) {
  22143. if v, changed := f.DecMapUint16Uint8V(*vp, true, d); changed {
  22144. *vp = v
  22145. }
  22146. }
  22147. func (_ fastpathT) DecMapUint16Uint8V(v map[uint16]uint8, canChange bool,
  22148. d *Decoder) (_ map[uint16]uint8, changed bool) {
  22149. dd, esep := d.d, d.hh.hasElemSeparators()
  22150. containerLen := dd.ReadMapStart()
  22151. if canChange && v == nil {
  22152. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  22153. v = make(map[uint16]uint8, xlen)
  22154. changed = true
  22155. }
  22156. if containerLen == 0 {
  22157. dd.ReadMapEnd()
  22158. return v, changed
  22159. }
  22160. var mk uint16
  22161. var mv uint8
  22162. hasLen := containerLen > 0
  22163. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22164. if esep {
  22165. dd.ReadMapElemKey()
  22166. }
  22167. mk = uint16(dd.DecodeUint(16))
  22168. if esep {
  22169. dd.ReadMapElemValue()
  22170. }
  22171. if dd.TryDecodeAsNil() {
  22172. if d.h.DeleteOnNilMapValue {
  22173. delete(v, mk)
  22174. } else {
  22175. v[mk] = 0
  22176. }
  22177. continue
  22178. }
  22179. mv = uint8(dd.DecodeUint(8))
  22180. if v != nil {
  22181. v[mk] = mv
  22182. }
  22183. }
  22184. dd.ReadMapEnd()
  22185. return v, changed
  22186. }
  22187. func (d *Decoder) fastpathDecMapUint16Uint16R(f *codecFnInfo, rv reflect.Value) {
  22188. if rv.Kind() == reflect.Ptr {
  22189. vp := rv2i(rv).(*map[uint16]uint16)
  22190. if v, changed := fastpathTV.DecMapUint16Uint16V(*vp, true, d); changed {
  22191. *vp = v
  22192. }
  22193. return
  22194. }
  22195. fastpathTV.DecMapUint16Uint16V(rv2i(rv).(map[uint16]uint16), false, d)
  22196. }
  22197. func (f fastpathT) DecMapUint16Uint16X(vp *map[uint16]uint16, d *Decoder) {
  22198. if v, changed := f.DecMapUint16Uint16V(*vp, true, d); changed {
  22199. *vp = v
  22200. }
  22201. }
  22202. func (_ fastpathT) DecMapUint16Uint16V(v map[uint16]uint16, canChange bool,
  22203. d *Decoder) (_ map[uint16]uint16, changed bool) {
  22204. dd, esep := d.d, d.hh.hasElemSeparators()
  22205. containerLen := dd.ReadMapStart()
  22206. if canChange && v == nil {
  22207. xlen := decInferLen(containerLen, d.h.MaxInitLen, 4)
  22208. v = make(map[uint16]uint16, xlen)
  22209. changed = true
  22210. }
  22211. if containerLen == 0 {
  22212. dd.ReadMapEnd()
  22213. return v, changed
  22214. }
  22215. var mk uint16
  22216. var mv uint16
  22217. hasLen := containerLen > 0
  22218. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22219. if esep {
  22220. dd.ReadMapElemKey()
  22221. }
  22222. mk = uint16(dd.DecodeUint(16))
  22223. if esep {
  22224. dd.ReadMapElemValue()
  22225. }
  22226. if dd.TryDecodeAsNil() {
  22227. if d.h.DeleteOnNilMapValue {
  22228. delete(v, mk)
  22229. } else {
  22230. v[mk] = 0
  22231. }
  22232. continue
  22233. }
  22234. mv = uint16(dd.DecodeUint(16))
  22235. if v != nil {
  22236. v[mk] = mv
  22237. }
  22238. }
  22239. dd.ReadMapEnd()
  22240. return v, changed
  22241. }
  22242. func (d *Decoder) fastpathDecMapUint16Uint32R(f *codecFnInfo, rv reflect.Value) {
  22243. if rv.Kind() == reflect.Ptr {
  22244. vp := rv2i(rv).(*map[uint16]uint32)
  22245. if v, changed := fastpathTV.DecMapUint16Uint32V(*vp, true, d); changed {
  22246. *vp = v
  22247. }
  22248. return
  22249. }
  22250. fastpathTV.DecMapUint16Uint32V(rv2i(rv).(map[uint16]uint32), false, d)
  22251. }
  22252. func (f fastpathT) DecMapUint16Uint32X(vp *map[uint16]uint32, d *Decoder) {
  22253. if v, changed := f.DecMapUint16Uint32V(*vp, true, d); changed {
  22254. *vp = v
  22255. }
  22256. }
  22257. func (_ fastpathT) DecMapUint16Uint32V(v map[uint16]uint32, canChange bool,
  22258. d *Decoder) (_ map[uint16]uint32, changed bool) {
  22259. dd, esep := d.d, d.hh.hasElemSeparators()
  22260. containerLen := dd.ReadMapStart()
  22261. if canChange && v == nil {
  22262. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  22263. v = make(map[uint16]uint32, xlen)
  22264. changed = true
  22265. }
  22266. if containerLen == 0 {
  22267. dd.ReadMapEnd()
  22268. return v, changed
  22269. }
  22270. var mk uint16
  22271. var mv uint32
  22272. hasLen := containerLen > 0
  22273. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22274. if esep {
  22275. dd.ReadMapElemKey()
  22276. }
  22277. mk = uint16(dd.DecodeUint(16))
  22278. if esep {
  22279. dd.ReadMapElemValue()
  22280. }
  22281. if dd.TryDecodeAsNil() {
  22282. if d.h.DeleteOnNilMapValue {
  22283. delete(v, mk)
  22284. } else {
  22285. v[mk] = 0
  22286. }
  22287. continue
  22288. }
  22289. mv = uint32(dd.DecodeUint(32))
  22290. if v != nil {
  22291. v[mk] = mv
  22292. }
  22293. }
  22294. dd.ReadMapEnd()
  22295. return v, changed
  22296. }
  22297. func (d *Decoder) fastpathDecMapUint16Uint64R(f *codecFnInfo, rv reflect.Value) {
  22298. if rv.Kind() == reflect.Ptr {
  22299. vp := rv2i(rv).(*map[uint16]uint64)
  22300. if v, changed := fastpathTV.DecMapUint16Uint64V(*vp, true, d); changed {
  22301. *vp = v
  22302. }
  22303. return
  22304. }
  22305. fastpathTV.DecMapUint16Uint64V(rv2i(rv).(map[uint16]uint64), false, d)
  22306. }
  22307. func (f fastpathT) DecMapUint16Uint64X(vp *map[uint16]uint64, d *Decoder) {
  22308. if v, changed := f.DecMapUint16Uint64V(*vp, true, d); changed {
  22309. *vp = v
  22310. }
  22311. }
  22312. func (_ fastpathT) DecMapUint16Uint64V(v map[uint16]uint64, canChange bool,
  22313. d *Decoder) (_ map[uint16]uint64, changed bool) {
  22314. dd, esep := d.d, d.hh.hasElemSeparators()
  22315. containerLen := dd.ReadMapStart()
  22316. if canChange && v == nil {
  22317. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  22318. v = make(map[uint16]uint64, xlen)
  22319. changed = true
  22320. }
  22321. if containerLen == 0 {
  22322. dd.ReadMapEnd()
  22323. return v, changed
  22324. }
  22325. var mk uint16
  22326. var mv uint64
  22327. hasLen := containerLen > 0
  22328. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22329. if esep {
  22330. dd.ReadMapElemKey()
  22331. }
  22332. mk = uint16(dd.DecodeUint(16))
  22333. if esep {
  22334. dd.ReadMapElemValue()
  22335. }
  22336. if dd.TryDecodeAsNil() {
  22337. if d.h.DeleteOnNilMapValue {
  22338. delete(v, mk)
  22339. } else {
  22340. v[mk] = 0
  22341. }
  22342. continue
  22343. }
  22344. mv = dd.DecodeUint(64)
  22345. if v != nil {
  22346. v[mk] = mv
  22347. }
  22348. }
  22349. dd.ReadMapEnd()
  22350. return v, changed
  22351. }
  22352. func (d *Decoder) fastpathDecMapUint16UintptrR(f *codecFnInfo, rv reflect.Value) {
  22353. if rv.Kind() == reflect.Ptr {
  22354. vp := rv2i(rv).(*map[uint16]uintptr)
  22355. if v, changed := fastpathTV.DecMapUint16UintptrV(*vp, true, d); changed {
  22356. *vp = v
  22357. }
  22358. return
  22359. }
  22360. fastpathTV.DecMapUint16UintptrV(rv2i(rv).(map[uint16]uintptr), false, d)
  22361. }
  22362. func (f fastpathT) DecMapUint16UintptrX(vp *map[uint16]uintptr, d *Decoder) {
  22363. if v, changed := f.DecMapUint16UintptrV(*vp, true, d); changed {
  22364. *vp = v
  22365. }
  22366. }
  22367. func (_ fastpathT) DecMapUint16UintptrV(v map[uint16]uintptr, canChange bool,
  22368. d *Decoder) (_ map[uint16]uintptr, changed bool) {
  22369. dd, esep := d.d, d.hh.hasElemSeparators()
  22370. containerLen := dd.ReadMapStart()
  22371. if canChange && v == nil {
  22372. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  22373. v = make(map[uint16]uintptr, xlen)
  22374. changed = true
  22375. }
  22376. if containerLen == 0 {
  22377. dd.ReadMapEnd()
  22378. return v, changed
  22379. }
  22380. var mk uint16
  22381. var mv uintptr
  22382. hasLen := containerLen > 0
  22383. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22384. if esep {
  22385. dd.ReadMapElemKey()
  22386. }
  22387. mk = uint16(dd.DecodeUint(16))
  22388. if esep {
  22389. dd.ReadMapElemValue()
  22390. }
  22391. if dd.TryDecodeAsNil() {
  22392. if d.h.DeleteOnNilMapValue {
  22393. delete(v, mk)
  22394. } else {
  22395. v[mk] = 0
  22396. }
  22397. continue
  22398. }
  22399. mv = uintptr(dd.DecodeUint(uintBitsize))
  22400. if v != nil {
  22401. v[mk] = mv
  22402. }
  22403. }
  22404. dd.ReadMapEnd()
  22405. return v, changed
  22406. }
  22407. func (d *Decoder) fastpathDecMapUint16IntR(f *codecFnInfo, rv reflect.Value) {
  22408. if rv.Kind() == reflect.Ptr {
  22409. vp := rv2i(rv).(*map[uint16]int)
  22410. if v, changed := fastpathTV.DecMapUint16IntV(*vp, true, d); changed {
  22411. *vp = v
  22412. }
  22413. return
  22414. }
  22415. fastpathTV.DecMapUint16IntV(rv2i(rv).(map[uint16]int), false, d)
  22416. }
  22417. func (f fastpathT) DecMapUint16IntX(vp *map[uint16]int, d *Decoder) {
  22418. if v, changed := f.DecMapUint16IntV(*vp, true, d); changed {
  22419. *vp = v
  22420. }
  22421. }
  22422. func (_ fastpathT) DecMapUint16IntV(v map[uint16]int, canChange bool,
  22423. d *Decoder) (_ map[uint16]int, changed bool) {
  22424. dd, esep := d.d, d.hh.hasElemSeparators()
  22425. containerLen := dd.ReadMapStart()
  22426. if canChange && v == nil {
  22427. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  22428. v = make(map[uint16]int, xlen)
  22429. changed = true
  22430. }
  22431. if containerLen == 0 {
  22432. dd.ReadMapEnd()
  22433. return v, changed
  22434. }
  22435. var mk uint16
  22436. var mv int
  22437. hasLen := containerLen > 0
  22438. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22439. if esep {
  22440. dd.ReadMapElemKey()
  22441. }
  22442. mk = uint16(dd.DecodeUint(16))
  22443. if esep {
  22444. dd.ReadMapElemValue()
  22445. }
  22446. if dd.TryDecodeAsNil() {
  22447. if d.h.DeleteOnNilMapValue {
  22448. delete(v, mk)
  22449. } else {
  22450. v[mk] = 0
  22451. }
  22452. continue
  22453. }
  22454. mv = int(dd.DecodeInt(intBitsize))
  22455. if v != nil {
  22456. v[mk] = mv
  22457. }
  22458. }
  22459. dd.ReadMapEnd()
  22460. return v, changed
  22461. }
  22462. func (d *Decoder) fastpathDecMapUint16Int8R(f *codecFnInfo, rv reflect.Value) {
  22463. if rv.Kind() == reflect.Ptr {
  22464. vp := rv2i(rv).(*map[uint16]int8)
  22465. if v, changed := fastpathTV.DecMapUint16Int8V(*vp, true, d); changed {
  22466. *vp = v
  22467. }
  22468. return
  22469. }
  22470. fastpathTV.DecMapUint16Int8V(rv2i(rv).(map[uint16]int8), false, d)
  22471. }
  22472. func (f fastpathT) DecMapUint16Int8X(vp *map[uint16]int8, d *Decoder) {
  22473. if v, changed := f.DecMapUint16Int8V(*vp, true, d); changed {
  22474. *vp = v
  22475. }
  22476. }
  22477. func (_ fastpathT) DecMapUint16Int8V(v map[uint16]int8, canChange bool,
  22478. d *Decoder) (_ map[uint16]int8, changed bool) {
  22479. dd, esep := d.d, d.hh.hasElemSeparators()
  22480. containerLen := dd.ReadMapStart()
  22481. if canChange && v == nil {
  22482. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  22483. v = make(map[uint16]int8, xlen)
  22484. changed = true
  22485. }
  22486. if containerLen == 0 {
  22487. dd.ReadMapEnd()
  22488. return v, changed
  22489. }
  22490. var mk uint16
  22491. var mv int8
  22492. hasLen := containerLen > 0
  22493. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22494. if esep {
  22495. dd.ReadMapElemKey()
  22496. }
  22497. mk = uint16(dd.DecodeUint(16))
  22498. if esep {
  22499. dd.ReadMapElemValue()
  22500. }
  22501. if dd.TryDecodeAsNil() {
  22502. if d.h.DeleteOnNilMapValue {
  22503. delete(v, mk)
  22504. } else {
  22505. v[mk] = 0
  22506. }
  22507. continue
  22508. }
  22509. mv = int8(dd.DecodeInt(8))
  22510. if v != nil {
  22511. v[mk] = mv
  22512. }
  22513. }
  22514. dd.ReadMapEnd()
  22515. return v, changed
  22516. }
  22517. func (d *Decoder) fastpathDecMapUint16Int16R(f *codecFnInfo, rv reflect.Value) {
  22518. if rv.Kind() == reflect.Ptr {
  22519. vp := rv2i(rv).(*map[uint16]int16)
  22520. if v, changed := fastpathTV.DecMapUint16Int16V(*vp, true, d); changed {
  22521. *vp = v
  22522. }
  22523. return
  22524. }
  22525. fastpathTV.DecMapUint16Int16V(rv2i(rv).(map[uint16]int16), false, d)
  22526. }
  22527. func (f fastpathT) DecMapUint16Int16X(vp *map[uint16]int16, d *Decoder) {
  22528. if v, changed := f.DecMapUint16Int16V(*vp, true, d); changed {
  22529. *vp = v
  22530. }
  22531. }
  22532. func (_ fastpathT) DecMapUint16Int16V(v map[uint16]int16, canChange bool,
  22533. d *Decoder) (_ map[uint16]int16, changed bool) {
  22534. dd, esep := d.d, d.hh.hasElemSeparators()
  22535. containerLen := dd.ReadMapStart()
  22536. if canChange && v == nil {
  22537. xlen := decInferLen(containerLen, d.h.MaxInitLen, 4)
  22538. v = make(map[uint16]int16, xlen)
  22539. changed = true
  22540. }
  22541. if containerLen == 0 {
  22542. dd.ReadMapEnd()
  22543. return v, changed
  22544. }
  22545. var mk uint16
  22546. var mv int16
  22547. hasLen := containerLen > 0
  22548. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22549. if esep {
  22550. dd.ReadMapElemKey()
  22551. }
  22552. mk = uint16(dd.DecodeUint(16))
  22553. if esep {
  22554. dd.ReadMapElemValue()
  22555. }
  22556. if dd.TryDecodeAsNil() {
  22557. if d.h.DeleteOnNilMapValue {
  22558. delete(v, mk)
  22559. } else {
  22560. v[mk] = 0
  22561. }
  22562. continue
  22563. }
  22564. mv = int16(dd.DecodeInt(16))
  22565. if v != nil {
  22566. v[mk] = mv
  22567. }
  22568. }
  22569. dd.ReadMapEnd()
  22570. return v, changed
  22571. }
  22572. func (d *Decoder) fastpathDecMapUint16Int32R(f *codecFnInfo, rv reflect.Value) {
  22573. if rv.Kind() == reflect.Ptr {
  22574. vp := rv2i(rv).(*map[uint16]int32)
  22575. if v, changed := fastpathTV.DecMapUint16Int32V(*vp, true, d); changed {
  22576. *vp = v
  22577. }
  22578. return
  22579. }
  22580. fastpathTV.DecMapUint16Int32V(rv2i(rv).(map[uint16]int32), false, d)
  22581. }
  22582. func (f fastpathT) DecMapUint16Int32X(vp *map[uint16]int32, d *Decoder) {
  22583. if v, changed := f.DecMapUint16Int32V(*vp, true, d); changed {
  22584. *vp = v
  22585. }
  22586. }
  22587. func (_ fastpathT) DecMapUint16Int32V(v map[uint16]int32, canChange bool,
  22588. d *Decoder) (_ map[uint16]int32, changed bool) {
  22589. dd, esep := d.d, d.hh.hasElemSeparators()
  22590. containerLen := dd.ReadMapStart()
  22591. if canChange && v == nil {
  22592. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  22593. v = make(map[uint16]int32, xlen)
  22594. changed = true
  22595. }
  22596. if containerLen == 0 {
  22597. dd.ReadMapEnd()
  22598. return v, changed
  22599. }
  22600. var mk uint16
  22601. var mv int32
  22602. hasLen := containerLen > 0
  22603. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22604. if esep {
  22605. dd.ReadMapElemKey()
  22606. }
  22607. mk = uint16(dd.DecodeUint(16))
  22608. if esep {
  22609. dd.ReadMapElemValue()
  22610. }
  22611. if dd.TryDecodeAsNil() {
  22612. if d.h.DeleteOnNilMapValue {
  22613. delete(v, mk)
  22614. } else {
  22615. v[mk] = 0
  22616. }
  22617. continue
  22618. }
  22619. mv = int32(dd.DecodeInt(32))
  22620. if v != nil {
  22621. v[mk] = mv
  22622. }
  22623. }
  22624. dd.ReadMapEnd()
  22625. return v, changed
  22626. }
  22627. func (d *Decoder) fastpathDecMapUint16Int64R(f *codecFnInfo, rv reflect.Value) {
  22628. if rv.Kind() == reflect.Ptr {
  22629. vp := rv2i(rv).(*map[uint16]int64)
  22630. if v, changed := fastpathTV.DecMapUint16Int64V(*vp, true, d); changed {
  22631. *vp = v
  22632. }
  22633. return
  22634. }
  22635. fastpathTV.DecMapUint16Int64V(rv2i(rv).(map[uint16]int64), false, d)
  22636. }
  22637. func (f fastpathT) DecMapUint16Int64X(vp *map[uint16]int64, d *Decoder) {
  22638. if v, changed := f.DecMapUint16Int64V(*vp, true, d); changed {
  22639. *vp = v
  22640. }
  22641. }
  22642. func (_ fastpathT) DecMapUint16Int64V(v map[uint16]int64, canChange bool,
  22643. d *Decoder) (_ map[uint16]int64, changed bool) {
  22644. dd, esep := d.d, d.hh.hasElemSeparators()
  22645. containerLen := dd.ReadMapStart()
  22646. if canChange && v == nil {
  22647. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  22648. v = make(map[uint16]int64, xlen)
  22649. changed = true
  22650. }
  22651. if containerLen == 0 {
  22652. dd.ReadMapEnd()
  22653. return v, changed
  22654. }
  22655. var mk uint16
  22656. var mv int64
  22657. hasLen := containerLen > 0
  22658. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22659. if esep {
  22660. dd.ReadMapElemKey()
  22661. }
  22662. mk = uint16(dd.DecodeUint(16))
  22663. if esep {
  22664. dd.ReadMapElemValue()
  22665. }
  22666. if dd.TryDecodeAsNil() {
  22667. if d.h.DeleteOnNilMapValue {
  22668. delete(v, mk)
  22669. } else {
  22670. v[mk] = 0
  22671. }
  22672. continue
  22673. }
  22674. mv = dd.DecodeInt(64)
  22675. if v != nil {
  22676. v[mk] = mv
  22677. }
  22678. }
  22679. dd.ReadMapEnd()
  22680. return v, changed
  22681. }
  22682. func (d *Decoder) fastpathDecMapUint16Float32R(f *codecFnInfo, rv reflect.Value) {
  22683. if rv.Kind() == reflect.Ptr {
  22684. vp := rv2i(rv).(*map[uint16]float32)
  22685. if v, changed := fastpathTV.DecMapUint16Float32V(*vp, true, d); changed {
  22686. *vp = v
  22687. }
  22688. return
  22689. }
  22690. fastpathTV.DecMapUint16Float32V(rv2i(rv).(map[uint16]float32), false, d)
  22691. }
  22692. func (f fastpathT) DecMapUint16Float32X(vp *map[uint16]float32, d *Decoder) {
  22693. if v, changed := f.DecMapUint16Float32V(*vp, true, d); changed {
  22694. *vp = v
  22695. }
  22696. }
  22697. func (_ fastpathT) DecMapUint16Float32V(v map[uint16]float32, canChange bool,
  22698. d *Decoder) (_ map[uint16]float32, changed bool) {
  22699. dd, esep := d.d, d.hh.hasElemSeparators()
  22700. containerLen := dd.ReadMapStart()
  22701. if canChange && v == nil {
  22702. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  22703. v = make(map[uint16]float32, xlen)
  22704. changed = true
  22705. }
  22706. if containerLen == 0 {
  22707. dd.ReadMapEnd()
  22708. return v, changed
  22709. }
  22710. var mk uint16
  22711. var mv float32
  22712. hasLen := containerLen > 0
  22713. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22714. if esep {
  22715. dd.ReadMapElemKey()
  22716. }
  22717. mk = uint16(dd.DecodeUint(16))
  22718. if esep {
  22719. dd.ReadMapElemValue()
  22720. }
  22721. if dd.TryDecodeAsNil() {
  22722. if d.h.DeleteOnNilMapValue {
  22723. delete(v, mk)
  22724. } else {
  22725. v[mk] = 0
  22726. }
  22727. continue
  22728. }
  22729. mv = float32(dd.DecodeFloat(true))
  22730. if v != nil {
  22731. v[mk] = mv
  22732. }
  22733. }
  22734. dd.ReadMapEnd()
  22735. return v, changed
  22736. }
  22737. func (d *Decoder) fastpathDecMapUint16Float64R(f *codecFnInfo, rv reflect.Value) {
  22738. if rv.Kind() == reflect.Ptr {
  22739. vp := rv2i(rv).(*map[uint16]float64)
  22740. if v, changed := fastpathTV.DecMapUint16Float64V(*vp, true, d); changed {
  22741. *vp = v
  22742. }
  22743. return
  22744. }
  22745. fastpathTV.DecMapUint16Float64V(rv2i(rv).(map[uint16]float64), false, d)
  22746. }
  22747. func (f fastpathT) DecMapUint16Float64X(vp *map[uint16]float64, d *Decoder) {
  22748. if v, changed := f.DecMapUint16Float64V(*vp, true, d); changed {
  22749. *vp = v
  22750. }
  22751. }
  22752. func (_ fastpathT) DecMapUint16Float64V(v map[uint16]float64, canChange bool,
  22753. d *Decoder) (_ map[uint16]float64, changed bool) {
  22754. dd, esep := d.d, d.hh.hasElemSeparators()
  22755. containerLen := dd.ReadMapStart()
  22756. if canChange && v == nil {
  22757. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  22758. v = make(map[uint16]float64, xlen)
  22759. changed = true
  22760. }
  22761. if containerLen == 0 {
  22762. dd.ReadMapEnd()
  22763. return v, changed
  22764. }
  22765. var mk uint16
  22766. var mv float64
  22767. hasLen := containerLen > 0
  22768. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22769. if esep {
  22770. dd.ReadMapElemKey()
  22771. }
  22772. mk = uint16(dd.DecodeUint(16))
  22773. if esep {
  22774. dd.ReadMapElemValue()
  22775. }
  22776. if dd.TryDecodeAsNil() {
  22777. if d.h.DeleteOnNilMapValue {
  22778. delete(v, mk)
  22779. } else {
  22780. v[mk] = 0
  22781. }
  22782. continue
  22783. }
  22784. mv = dd.DecodeFloat(false)
  22785. if v != nil {
  22786. v[mk] = mv
  22787. }
  22788. }
  22789. dd.ReadMapEnd()
  22790. return v, changed
  22791. }
  22792. func (d *Decoder) fastpathDecMapUint16BoolR(f *codecFnInfo, rv reflect.Value) {
  22793. if rv.Kind() == reflect.Ptr {
  22794. vp := rv2i(rv).(*map[uint16]bool)
  22795. if v, changed := fastpathTV.DecMapUint16BoolV(*vp, true, d); changed {
  22796. *vp = v
  22797. }
  22798. return
  22799. }
  22800. fastpathTV.DecMapUint16BoolV(rv2i(rv).(map[uint16]bool), false, d)
  22801. }
  22802. func (f fastpathT) DecMapUint16BoolX(vp *map[uint16]bool, d *Decoder) {
  22803. if v, changed := f.DecMapUint16BoolV(*vp, true, d); changed {
  22804. *vp = v
  22805. }
  22806. }
  22807. func (_ fastpathT) DecMapUint16BoolV(v map[uint16]bool, canChange bool,
  22808. d *Decoder) (_ map[uint16]bool, changed bool) {
  22809. dd, esep := d.d, d.hh.hasElemSeparators()
  22810. containerLen := dd.ReadMapStart()
  22811. if canChange && v == nil {
  22812. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  22813. v = make(map[uint16]bool, xlen)
  22814. changed = true
  22815. }
  22816. if containerLen == 0 {
  22817. dd.ReadMapEnd()
  22818. return v, changed
  22819. }
  22820. var mk uint16
  22821. var mv bool
  22822. hasLen := containerLen > 0
  22823. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22824. if esep {
  22825. dd.ReadMapElemKey()
  22826. }
  22827. mk = uint16(dd.DecodeUint(16))
  22828. if esep {
  22829. dd.ReadMapElemValue()
  22830. }
  22831. if dd.TryDecodeAsNil() {
  22832. if d.h.DeleteOnNilMapValue {
  22833. delete(v, mk)
  22834. } else {
  22835. v[mk] = false
  22836. }
  22837. continue
  22838. }
  22839. mv = dd.DecodeBool()
  22840. if v != nil {
  22841. v[mk] = mv
  22842. }
  22843. }
  22844. dd.ReadMapEnd()
  22845. return v, changed
  22846. }
  22847. func (d *Decoder) fastpathDecMapUint32IntfR(f *codecFnInfo, rv reflect.Value) {
  22848. if rv.Kind() == reflect.Ptr {
  22849. vp := rv2i(rv).(*map[uint32]interface{})
  22850. if v, changed := fastpathTV.DecMapUint32IntfV(*vp, true, d); changed {
  22851. *vp = v
  22852. }
  22853. return
  22854. }
  22855. fastpathTV.DecMapUint32IntfV(rv2i(rv).(map[uint32]interface{}), false, d)
  22856. }
  22857. func (f fastpathT) DecMapUint32IntfX(vp *map[uint32]interface{}, d *Decoder) {
  22858. if v, changed := f.DecMapUint32IntfV(*vp, true, d); changed {
  22859. *vp = v
  22860. }
  22861. }
  22862. func (_ fastpathT) DecMapUint32IntfV(v map[uint32]interface{}, canChange bool,
  22863. d *Decoder) (_ map[uint32]interface{}, changed bool) {
  22864. dd, esep := d.d, d.hh.hasElemSeparators()
  22865. containerLen := dd.ReadMapStart()
  22866. if canChange && v == nil {
  22867. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  22868. v = make(map[uint32]interface{}, xlen)
  22869. changed = true
  22870. }
  22871. if containerLen == 0 {
  22872. dd.ReadMapEnd()
  22873. return v, changed
  22874. }
  22875. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  22876. var mk uint32
  22877. var mv interface{}
  22878. hasLen := containerLen > 0
  22879. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22880. if esep {
  22881. dd.ReadMapElemKey()
  22882. }
  22883. mk = uint32(dd.DecodeUint(32))
  22884. if esep {
  22885. dd.ReadMapElemValue()
  22886. }
  22887. if dd.TryDecodeAsNil() {
  22888. if d.h.DeleteOnNilMapValue {
  22889. delete(v, mk)
  22890. } else {
  22891. v[mk] = nil
  22892. }
  22893. continue
  22894. }
  22895. if mapGet {
  22896. mv = v[mk]
  22897. } else {
  22898. mv = nil
  22899. }
  22900. d.decode(&mv)
  22901. if v != nil {
  22902. v[mk] = mv
  22903. }
  22904. }
  22905. dd.ReadMapEnd()
  22906. return v, changed
  22907. }
  22908. func (d *Decoder) fastpathDecMapUint32StringR(f *codecFnInfo, rv reflect.Value) {
  22909. if rv.Kind() == reflect.Ptr {
  22910. vp := rv2i(rv).(*map[uint32]string)
  22911. if v, changed := fastpathTV.DecMapUint32StringV(*vp, true, d); changed {
  22912. *vp = v
  22913. }
  22914. return
  22915. }
  22916. fastpathTV.DecMapUint32StringV(rv2i(rv).(map[uint32]string), false, d)
  22917. }
  22918. func (f fastpathT) DecMapUint32StringX(vp *map[uint32]string, d *Decoder) {
  22919. if v, changed := f.DecMapUint32StringV(*vp, true, d); changed {
  22920. *vp = v
  22921. }
  22922. }
  22923. func (_ fastpathT) DecMapUint32StringV(v map[uint32]string, canChange bool,
  22924. d *Decoder) (_ map[uint32]string, changed bool) {
  22925. dd, esep := d.d, d.hh.hasElemSeparators()
  22926. containerLen := dd.ReadMapStart()
  22927. if canChange && v == nil {
  22928. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  22929. v = make(map[uint32]string, xlen)
  22930. changed = true
  22931. }
  22932. if containerLen == 0 {
  22933. dd.ReadMapEnd()
  22934. return v, changed
  22935. }
  22936. var mk uint32
  22937. var mv string
  22938. hasLen := containerLen > 0
  22939. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22940. if esep {
  22941. dd.ReadMapElemKey()
  22942. }
  22943. mk = uint32(dd.DecodeUint(32))
  22944. if esep {
  22945. dd.ReadMapElemValue()
  22946. }
  22947. if dd.TryDecodeAsNil() {
  22948. if d.h.DeleteOnNilMapValue {
  22949. delete(v, mk)
  22950. } else {
  22951. v[mk] = ""
  22952. }
  22953. continue
  22954. }
  22955. mv = dd.DecodeString()
  22956. if v != nil {
  22957. v[mk] = mv
  22958. }
  22959. }
  22960. dd.ReadMapEnd()
  22961. return v, changed
  22962. }
  22963. func (d *Decoder) fastpathDecMapUint32UintR(f *codecFnInfo, rv reflect.Value) {
  22964. if rv.Kind() == reflect.Ptr {
  22965. vp := rv2i(rv).(*map[uint32]uint)
  22966. if v, changed := fastpathTV.DecMapUint32UintV(*vp, true, d); changed {
  22967. *vp = v
  22968. }
  22969. return
  22970. }
  22971. fastpathTV.DecMapUint32UintV(rv2i(rv).(map[uint32]uint), false, d)
  22972. }
  22973. func (f fastpathT) DecMapUint32UintX(vp *map[uint32]uint, d *Decoder) {
  22974. if v, changed := f.DecMapUint32UintV(*vp, true, d); changed {
  22975. *vp = v
  22976. }
  22977. }
  22978. func (_ fastpathT) DecMapUint32UintV(v map[uint32]uint, canChange bool,
  22979. d *Decoder) (_ map[uint32]uint, changed bool) {
  22980. dd, esep := d.d, d.hh.hasElemSeparators()
  22981. containerLen := dd.ReadMapStart()
  22982. if canChange && v == nil {
  22983. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  22984. v = make(map[uint32]uint, xlen)
  22985. changed = true
  22986. }
  22987. if containerLen == 0 {
  22988. dd.ReadMapEnd()
  22989. return v, changed
  22990. }
  22991. var mk uint32
  22992. var mv uint
  22993. hasLen := containerLen > 0
  22994. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  22995. if esep {
  22996. dd.ReadMapElemKey()
  22997. }
  22998. mk = uint32(dd.DecodeUint(32))
  22999. if esep {
  23000. dd.ReadMapElemValue()
  23001. }
  23002. if dd.TryDecodeAsNil() {
  23003. if d.h.DeleteOnNilMapValue {
  23004. delete(v, mk)
  23005. } else {
  23006. v[mk] = 0
  23007. }
  23008. continue
  23009. }
  23010. mv = uint(dd.DecodeUint(uintBitsize))
  23011. if v != nil {
  23012. v[mk] = mv
  23013. }
  23014. }
  23015. dd.ReadMapEnd()
  23016. return v, changed
  23017. }
  23018. func (d *Decoder) fastpathDecMapUint32Uint8R(f *codecFnInfo, rv reflect.Value) {
  23019. if rv.Kind() == reflect.Ptr {
  23020. vp := rv2i(rv).(*map[uint32]uint8)
  23021. if v, changed := fastpathTV.DecMapUint32Uint8V(*vp, true, d); changed {
  23022. *vp = v
  23023. }
  23024. return
  23025. }
  23026. fastpathTV.DecMapUint32Uint8V(rv2i(rv).(map[uint32]uint8), false, d)
  23027. }
  23028. func (f fastpathT) DecMapUint32Uint8X(vp *map[uint32]uint8, d *Decoder) {
  23029. if v, changed := f.DecMapUint32Uint8V(*vp, true, d); changed {
  23030. *vp = v
  23031. }
  23032. }
  23033. func (_ fastpathT) DecMapUint32Uint8V(v map[uint32]uint8, canChange bool,
  23034. d *Decoder) (_ map[uint32]uint8, changed bool) {
  23035. dd, esep := d.d, d.hh.hasElemSeparators()
  23036. containerLen := dd.ReadMapStart()
  23037. if canChange && v == nil {
  23038. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  23039. v = make(map[uint32]uint8, xlen)
  23040. changed = true
  23041. }
  23042. if containerLen == 0 {
  23043. dd.ReadMapEnd()
  23044. return v, changed
  23045. }
  23046. var mk uint32
  23047. var mv uint8
  23048. hasLen := containerLen > 0
  23049. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23050. if esep {
  23051. dd.ReadMapElemKey()
  23052. }
  23053. mk = uint32(dd.DecodeUint(32))
  23054. if esep {
  23055. dd.ReadMapElemValue()
  23056. }
  23057. if dd.TryDecodeAsNil() {
  23058. if d.h.DeleteOnNilMapValue {
  23059. delete(v, mk)
  23060. } else {
  23061. v[mk] = 0
  23062. }
  23063. continue
  23064. }
  23065. mv = uint8(dd.DecodeUint(8))
  23066. if v != nil {
  23067. v[mk] = mv
  23068. }
  23069. }
  23070. dd.ReadMapEnd()
  23071. return v, changed
  23072. }
  23073. func (d *Decoder) fastpathDecMapUint32Uint16R(f *codecFnInfo, rv reflect.Value) {
  23074. if rv.Kind() == reflect.Ptr {
  23075. vp := rv2i(rv).(*map[uint32]uint16)
  23076. if v, changed := fastpathTV.DecMapUint32Uint16V(*vp, true, d); changed {
  23077. *vp = v
  23078. }
  23079. return
  23080. }
  23081. fastpathTV.DecMapUint32Uint16V(rv2i(rv).(map[uint32]uint16), false, d)
  23082. }
  23083. func (f fastpathT) DecMapUint32Uint16X(vp *map[uint32]uint16, d *Decoder) {
  23084. if v, changed := f.DecMapUint32Uint16V(*vp, true, d); changed {
  23085. *vp = v
  23086. }
  23087. }
  23088. func (_ fastpathT) DecMapUint32Uint16V(v map[uint32]uint16, canChange bool,
  23089. d *Decoder) (_ map[uint32]uint16, changed bool) {
  23090. dd, esep := d.d, d.hh.hasElemSeparators()
  23091. containerLen := dd.ReadMapStart()
  23092. if canChange && v == nil {
  23093. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  23094. v = make(map[uint32]uint16, xlen)
  23095. changed = true
  23096. }
  23097. if containerLen == 0 {
  23098. dd.ReadMapEnd()
  23099. return v, changed
  23100. }
  23101. var mk uint32
  23102. var mv uint16
  23103. hasLen := containerLen > 0
  23104. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23105. if esep {
  23106. dd.ReadMapElemKey()
  23107. }
  23108. mk = uint32(dd.DecodeUint(32))
  23109. if esep {
  23110. dd.ReadMapElemValue()
  23111. }
  23112. if dd.TryDecodeAsNil() {
  23113. if d.h.DeleteOnNilMapValue {
  23114. delete(v, mk)
  23115. } else {
  23116. v[mk] = 0
  23117. }
  23118. continue
  23119. }
  23120. mv = uint16(dd.DecodeUint(16))
  23121. if v != nil {
  23122. v[mk] = mv
  23123. }
  23124. }
  23125. dd.ReadMapEnd()
  23126. return v, changed
  23127. }
  23128. func (d *Decoder) fastpathDecMapUint32Uint32R(f *codecFnInfo, rv reflect.Value) {
  23129. if rv.Kind() == reflect.Ptr {
  23130. vp := rv2i(rv).(*map[uint32]uint32)
  23131. if v, changed := fastpathTV.DecMapUint32Uint32V(*vp, true, d); changed {
  23132. *vp = v
  23133. }
  23134. return
  23135. }
  23136. fastpathTV.DecMapUint32Uint32V(rv2i(rv).(map[uint32]uint32), false, d)
  23137. }
  23138. func (f fastpathT) DecMapUint32Uint32X(vp *map[uint32]uint32, d *Decoder) {
  23139. if v, changed := f.DecMapUint32Uint32V(*vp, true, d); changed {
  23140. *vp = v
  23141. }
  23142. }
  23143. func (_ fastpathT) DecMapUint32Uint32V(v map[uint32]uint32, canChange bool,
  23144. d *Decoder) (_ map[uint32]uint32, changed bool) {
  23145. dd, esep := d.d, d.hh.hasElemSeparators()
  23146. containerLen := dd.ReadMapStart()
  23147. if canChange && v == nil {
  23148. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  23149. v = make(map[uint32]uint32, xlen)
  23150. changed = true
  23151. }
  23152. if containerLen == 0 {
  23153. dd.ReadMapEnd()
  23154. return v, changed
  23155. }
  23156. var mk uint32
  23157. var mv uint32
  23158. hasLen := containerLen > 0
  23159. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23160. if esep {
  23161. dd.ReadMapElemKey()
  23162. }
  23163. mk = uint32(dd.DecodeUint(32))
  23164. if esep {
  23165. dd.ReadMapElemValue()
  23166. }
  23167. if dd.TryDecodeAsNil() {
  23168. if d.h.DeleteOnNilMapValue {
  23169. delete(v, mk)
  23170. } else {
  23171. v[mk] = 0
  23172. }
  23173. continue
  23174. }
  23175. mv = uint32(dd.DecodeUint(32))
  23176. if v != nil {
  23177. v[mk] = mv
  23178. }
  23179. }
  23180. dd.ReadMapEnd()
  23181. return v, changed
  23182. }
  23183. func (d *Decoder) fastpathDecMapUint32Uint64R(f *codecFnInfo, rv reflect.Value) {
  23184. if rv.Kind() == reflect.Ptr {
  23185. vp := rv2i(rv).(*map[uint32]uint64)
  23186. if v, changed := fastpathTV.DecMapUint32Uint64V(*vp, true, d); changed {
  23187. *vp = v
  23188. }
  23189. return
  23190. }
  23191. fastpathTV.DecMapUint32Uint64V(rv2i(rv).(map[uint32]uint64), false, d)
  23192. }
  23193. func (f fastpathT) DecMapUint32Uint64X(vp *map[uint32]uint64, d *Decoder) {
  23194. if v, changed := f.DecMapUint32Uint64V(*vp, true, d); changed {
  23195. *vp = v
  23196. }
  23197. }
  23198. func (_ fastpathT) DecMapUint32Uint64V(v map[uint32]uint64, canChange bool,
  23199. d *Decoder) (_ map[uint32]uint64, changed bool) {
  23200. dd, esep := d.d, d.hh.hasElemSeparators()
  23201. containerLen := dd.ReadMapStart()
  23202. if canChange && v == nil {
  23203. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  23204. v = make(map[uint32]uint64, xlen)
  23205. changed = true
  23206. }
  23207. if containerLen == 0 {
  23208. dd.ReadMapEnd()
  23209. return v, changed
  23210. }
  23211. var mk uint32
  23212. var mv uint64
  23213. hasLen := containerLen > 0
  23214. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23215. if esep {
  23216. dd.ReadMapElemKey()
  23217. }
  23218. mk = uint32(dd.DecodeUint(32))
  23219. if esep {
  23220. dd.ReadMapElemValue()
  23221. }
  23222. if dd.TryDecodeAsNil() {
  23223. if d.h.DeleteOnNilMapValue {
  23224. delete(v, mk)
  23225. } else {
  23226. v[mk] = 0
  23227. }
  23228. continue
  23229. }
  23230. mv = dd.DecodeUint(64)
  23231. if v != nil {
  23232. v[mk] = mv
  23233. }
  23234. }
  23235. dd.ReadMapEnd()
  23236. return v, changed
  23237. }
  23238. func (d *Decoder) fastpathDecMapUint32UintptrR(f *codecFnInfo, rv reflect.Value) {
  23239. if rv.Kind() == reflect.Ptr {
  23240. vp := rv2i(rv).(*map[uint32]uintptr)
  23241. if v, changed := fastpathTV.DecMapUint32UintptrV(*vp, true, d); changed {
  23242. *vp = v
  23243. }
  23244. return
  23245. }
  23246. fastpathTV.DecMapUint32UintptrV(rv2i(rv).(map[uint32]uintptr), false, d)
  23247. }
  23248. func (f fastpathT) DecMapUint32UintptrX(vp *map[uint32]uintptr, d *Decoder) {
  23249. if v, changed := f.DecMapUint32UintptrV(*vp, true, d); changed {
  23250. *vp = v
  23251. }
  23252. }
  23253. func (_ fastpathT) DecMapUint32UintptrV(v map[uint32]uintptr, canChange bool,
  23254. d *Decoder) (_ map[uint32]uintptr, changed bool) {
  23255. dd, esep := d.d, d.hh.hasElemSeparators()
  23256. containerLen := dd.ReadMapStart()
  23257. if canChange && v == nil {
  23258. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  23259. v = make(map[uint32]uintptr, xlen)
  23260. changed = true
  23261. }
  23262. if containerLen == 0 {
  23263. dd.ReadMapEnd()
  23264. return v, changed
  23265. }
  23266. var mk uint32
  23267. var mv uintptr
  23268. hasLen := containerLen > 0
  23269. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23270. if esep {
  23271. dd.ReadMapElemKey()
  23272. }
  23273. mk = uint32(dd.DecodeUint(32))
  23274. if esep {
  23275. dd.ReadMapElemValue()
  23276. }
  23277. if dd.TryDecodeAsNil() {
  23278. if d.h.DeleteOnNilMapValue {
  23279. delete(v, mk)
  23280. } else {
  23281. v[mk] = 0
  23282. }
  23283. continue
  23284. }
  23285. mv = uintptr(dd.DecodeUint(uintBitsize))
  23286. if v != nil {
  23287. v[mk] = mv
  23288. }
  23289. }
  23290. dd.ReadMapEnd()
  23291. return v, changed
  23292. }
  23293. func (d *Decoder) fastpathDecMapUint32IntR(f *codecFnInfo, rv reflect.Value) {
  23294. if rv.Kind() == reflect.Ptr {
  23295. vp := rv2i(rv).(*map[uint32]int)
  23296. if v, changed := fastpathTV.DecMapUint32IntV(*vp, true, d); changed {
  23297. *vp = v
  23298. }
  23299. return
  23300. }
  23301. fastpathTV.DecMapUint32IntV(rv2i(rv).(map[uint32]int), false, d)
  23302. }
  23303. func (f fastpathT) DecMapUint32IntX(vp *map[uint32]int, d *Decoder) {
  23304. if v, changed := f.DecMapUint32IntV(*vp, true, d); changed {
  23305. *vp = v
  23306. }
  23307. }
  23308. func (_ fastpathT) DecMapUint32IntV(v map[uint32]int, canChange bool,
  23309. d *Decoder) (_ map[uint32]int, changed bool) {
  23310. dd, esep := d.d, d.hh.hasElemSeparators()
  23311. containerLen := dd.ReadMapStart()
  23312. if canChange && v == nil {
  23313. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  23314. v = make(map[uint32]int, xlen)
  23315. changed = true
  23316. }
  23317. if containerLen == 0 {
  23318. dd.ReadMapEnd()
  23319. return v, changed
  23320. }
  23321. var mk uint32
  23322. var mv int
  23323. hasLen := containerLen > 0
  23324. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23325. if esep {
  23326. dd.ReadMapElemKey()
  23327. }
  23328. mk = uint32(dd.DecodeUint(32))
  23329. if esep {
  23330. dd.ReadMapElemValue()
  23331. }
  23332. if dd.TryDecodeAsNil() {
  23333. if d.h.DeleteOnNilMapValue {
  23334. delete(v, mk)
  23335. } else {
  23336. v[mk] = 0
  23337. }
  23338. continue
  23339. }
  23340. mv = int(dd.DecodeInt(intBitsize))
  23341. if v != nil {
  23342. v[mk] = mv
  23343. }
  23344. }
  23345. dd.ReadMapEnd()
  23346. return v, changed
  23347. }
  23348. func (d *Decoder) fastpathDecMapUint32Int8R(f *codecFnInfo, rv reflect.Value) {
  23349. if rv.Kind() == reflect.Ptr {
  23350. vp := rv2i(rv).(*map[uint32]int8)
  23351. if v, changed := fastpathTV.DecMapUint32Int8V(*vp, true, d); changed {
  23352. *vp = v
  23353. }
  23354. return
  23355. }
  23356. fastpathTV.DecMapUint32Int8V(rv2i(rv).(map[uint32]int8), false, d)
  23357. }
  23358. func (f fastpathT) DecMapUint32Int8X(vp *map[uint32]int8, d *Decoder) {
  23359. if v, changed := f.DecMapUint32Int8V(*vp, true, d); changed {
  23360. *vp = v
  23361. }
  23362. }
  23363. func (_ fastpathT) DecMapUint32Int8V(v map[uint32]int8, canChange bool,
  23364. d *Decoder) (_ map[uint32]int8, changed bool) {
  23365. dd, esep := d.d, d.hh.hasElemSeparators()
  23366. containerLen := dd.ReadMapStart()
  23367. if canChange && v == nil {
  23368. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  23369. v = make(map[uint32]int8, xlen)
  23370. changed = true
  23371. }
  23372. if containerLen == 0 {
  23373. dd.ReadMapEnd()
  23374. return v, changed
  23375. }
  23376. var mk uint32
  23377. var mv int8
  23378. hasLen := containerLen > 0
  23379. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23380. if esep {
  23381. dd.ReadMapElemKey()
  23382. }
  23383. mk = uint32(dd.DecodeUint(32))
  23384. if esep {
  23385. dd.ReadMapElemValue()
  23386. }
  23387. if dd.TryDecodeAsNil() {
  23388. if d.h.DeleteOnNilMapValue {
  23389. delete(v, mk)
  23390. } else {
  23391. v[mk] = 0
  23392. }
  23393. continue
  23394. }
  23395. mv = int8(dd.DecodeInt(8))
  23396. if v != nil {
  23397. v[mk] = mv
  23398. }
  23399. }
  23400. dd.ReadMapEnd()
  23401. return v, changed
  23402. }
  23403. func (d *Decoder) fastpathDecMapUint32Int16R(f *codecFnInfo, rv reflect.Value) {
  23404. if rv.Kind() == reflect.Ptr {
  23405. vp := rv2i(rv).(*map[uint32]int16)
  23406. if v, changed := fastpathTV.DecMapUint32Int16V(*vp, true, d); changed {
  23407. *vp = v
  23408. }
  23409. return
  23410. }
  23411. fastpathTV.DecMapUint32Int16V(rv2i(rv).(map[uint32]int16), false, d)
  23412. }
  23413. func (f fastpathT) DecMapUint32Int16X(vp *map[uint32]int16, d *Decoder) {
  23414. if v, changed := f.DecMapUint32Int16V(*vp, true, d); changed {
  23415. *vp = v
  23416. }
  23417. }
  23418. func (_ fastpathT) DecMapUint32Int16V(v map[uint32]int16, canChange bool,
  23419. d *Decoder) (_ map[uint32]int16, changed bool) {
  23420. dd, esep := d.d, d.hh.hasElemSeparators()
  23421. containerLen := dd.ReadMapStart()
  23422. if canChange && v == nil {
  23423. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  23424. v = make(map[uint32]int16, xlen)
  23425. changed = true
  23426. }
  23427. if containerLen == 0 {
  23428. dd.ReadMapEnd()
  23429. return v, changed
  23430. }
  23431. var mk uint32
  23432. var mv int16
  23433. hasLen := containerLen > 0
  23434. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23435. if esep {
  23436. dd.ReadMapElemKey()
  23437. }
  23438. mk = uint32(dd.DecodeUint(32))
  23439. if esep {
  23440. dd.ReadMapElemValue()
  23441. }
  23442. if dd.TryDecodeAsNil() {
  23443. if d.h.DeleteOnNilMapValue {
  23444. delete(v, mk)
  23445. } else {
  23446. v[mk] = 0
  23447. }
  23448. continue
  23449. }
  23450. mv = int16(dd.DecodeInt(16))
  23451. if v != nil {
  23452. v[mk] = mv
  23453. }
  23454. }
  23455. dd.ReadMapEnd()
  23456. return v, changed
  23457. }
  23458. func (d *Decoder) fastpathDecMapUint32Int32R(f *codecFnInfo, rv reflect.Value) {
  23459. if rv.Kind() == reflect.Ptr {
  23460. vp := rv2i(rv).(*map[uint32]int32)
  23461. if v, changed := fastpathTV.DecMapUint32Int32V(*vp, true, d); changed {
  23462. *vp = v
  23463. }
  23464. return
  23465. }
  23466. fastpathTV.DecMapUint32Int32V(rv2i(rv).(map[uint32]int32), false, d)
  23467. }
  23468. func (f fastpathT) DecMapUint32Int32X(vp *map[uint32]int32, d *Decoder) {
  23469. if v, changed := f.DecMapUint32Int32V(*vp, true, d); changed {
  23470. *vp = v
  23471. }
  23472. }
  23473. func (_ fastpathT) DecMapUint32Int32V(v map[uint32]int32, canChange bool,
  23474. d *Decoder) (_ map[uint32]int32, changed bool) {
  23475. dd, esep := d.d, d.hh.hasElemSeparators()
  23476. containerLen := dd.ReadMapStart()
  23477. if canChange && v == nil {
  23478. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  23479. v = make(map[uint32]int32, xlen)
  23480. changed = true
  23481. }
  23482. if containerLen == 0 {
  23483. dd.ReadMapEnd()
  23484. return v, changed
  23485. }
  23486. var mk uint32
  23487. var mv int32
  23488. hasLen := containerLen > 0
  23489. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23490. if esep {
  23491. dd.ReadMapElemKey()
  23492. }
  23493. mk = uint32(dd.DecodeUint(32))
  23494. if esep {
  23495. dd.ReadMapElemValue()
  23496. }
  23497. if dd.TryDecodeAsNil() {
  23498. if d.h.DeleteOnNilMapValue {
  23499. delete(v, mk)
  23500. } else {
  23501. v[mk] = 0
  23502. }
  23503. continue
  23504. }
  23505. mv = int32(dd.DecodeInt(32))
  23506. if v != nil {
  23507. v[mk] = mv
  23508. }
  23509. }
  23510. dd.ReadMapEnd()
  23511. return v, changed
  23512. }
  23513. func (d *Decoder) fastpathDecMapUint32Int64R(f *codecFnInfo, rv reflect.Value) {
  23514. if rv.Kind() == reflect.Ptr {
  23515. vp := rv2i(rv).(*map[uint32]int64)
  23516. if v, changed := fastpathTV.DecMapUint32Int64V(*vp, true, d); changed {
  23517. *vp = v
  23518. }
  23519. return
  23520. }
  23521. fastpathTV.DecMapUint32Int64V(rv2i(rv).(map[uint32]int64), false, d)
  23522. }
  23523. func (f fastpathT) DecMapUint32Int64X(vp *map[uint32]int64, d *Decoder) {
  23524. if v, changed := f.DecMapUint32Int64V(*vp, true, d); changed {
  23525. *vp = v
  23526. }
  23527. }
  23528. func (_ fastpathT) DecMapUint32Int64V(v map[uint32]int64, canChange bool,
  23529. d *Decoder) (_ map[uint32]int64, changed bool) {
  23530. dd, esep := d.d, d.hh.hasElemSeparators()
  23531. containerLen := dd.ReadMapStart()
  23532. if canChange && v == nil {
  23533. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  23534. v = make(map[uint32]int64, xlen)
  23535. changed = true
  23536. }
  23537. if containerLen == 0 {
  23538. dd.ReadMapEnd()
  23539. return v, changed
  23540. }
  23541. var mk uint32
  23542. var mv int64
  23543. hasLen := containerLen > 0
  23544. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23545. if esep {
  23546. dd.ReadMapElemKey()
  23547. }
  23548. mk = uint32(dd.DecodeUint(32))
  23549. if esep {
  23550. dd.ReadMapElemValue()
  23551. }
  23552. if dd.TryDecodeAsNil() {
  23553. if d.h.DeleteOnNilMapValue {
  23554. delete(v, mk)
  23555. } else {
  23556. v[mk] = 0
  23557. }
  23558. continue
  23559. }
  23560. mv = dd.DecodeInt(64)
  23561. if v != nil {
  23562. v[mk] = mv
  23563. }
  23564. }
  23565. dd.ReadMapEnd()
  23566. return v, changed
  23567. }
  23568. func (d *Decoder) fastpathDecMapUint32Float32R(f *codecFnInfo, rv reflect.Value) {
  23569. if rv.Kind() == reflect.Ptr {
  23570. vp := rv2i(rv).(*map[uint32]float32)
  23571. if v, changed := fastpathTV.DecMapUint32Float32V(*vp, true, d); changed {
  23572. *vp = v
  23573. }
  23574. return
  23575. }
  23576. fastpathTV.DecMapUint32Float32V(rv2i(rv).(map[uint32]float32), false, d)
  23577. }
  23578. func (f fastpathT) DecMapUint32Float32X(vp *map[uint32]float32, d *Decoder) {
  23579. if v, changed := f.DecMapUint32Float32V(*vp, true, d); changed {
  23580. *vp = v
  23581. }
  23582. }
  23583. func (_ fastpathT) DecMapUint32Float32V(v map[uint32]float32, canChange bool,
  23584. d *Decoder) (_ map[uint32]float32, changed bool) {
  23585. dd, esep := d.d, d.hh.hasElemSeparators()
  23586. containerLen := dd.ReadMapStart()
  23587. if canChange && v == nil {
  23588. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  23589. v = make(map[uint32]float32, xlen)
  23590. changed = true
  23591. }
  23592. if containerLen == 0 {
  23593. dd.ReadMapEnd()
  23594. return v, changed
  23595. }
  23596. var mk uint32
  23597. var mv float32
  23598. hasLen := containerLen > 0
  23599. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23600. if esep {
  23601. dd.ReadMapElemKey()
  23602. }
  23603. mk = uint32(dd.DecodeUint(32))
  23604. if esep {
  23605. dd.ReadMapElemValue()
  23606. }
  23607. if dd.TryDecodeAsNil() {
  23608. if d.h.DeleteOnNilMapValue {
  23609. delete(v, mk)
  23610. } else {
  23611. v[mk] = 0
  23612. }
  23613. continue
  23614. }
  23615. mv = float32(dd.DecodeFloat(true))
  23616. if v != nil {
  23617. v[mk] = mv
  23618. }
  23619. }
  23620. dd.ReadMapEnd()
  23621. return v, changed
  23622. }
  23623. func (d *Decoder) fastpathDecMapUint32Float64R(f *codecFnInfo, rv reflect.Value) {
  23624. if rv.Kind() == reflect.Ptr {
  23625. vp := rv2i(rv).(*map[uint32]float64)
  23626. if v, changed := fastpathTV.DecMapUint32Float64V(*vp, true, d); changed {
  23627. *vp = v
  23628. }
  23629. return
  23630. }
  23631. fastpathTV.DecMapUint32Float64V(rv2i(rv).(map[uint32]float64), false, d)
  23632. }
  23633. func (f fastpathT) DecMapUint32Float64X(vp *map[uint32]float64, d *Decoder) {
  23634. if v, changed := f.DecMapUint32Float64V(*vp, true, d); changed {
  23635. *vp = v
  23636. }
  23637. }
  23638. func (_ fastpathT) DecMapUint32Float64V(v map[uint32]float64, canChange bool,
  23639. d *Decoder) (_ map[uint32]float64, changed bool) {
  23640. dd, esep := d.d, d.hh.hasElemSeparators()
  23641. containerLen := dd.ReadMapStart()
  23642. if canChange && v == nil {
  23643. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  23644. v = make(map[uint32]float64, xlen)
  23645. changed = true
  23646. }
  23647. if containerLen == 0 {
  23648. dd.ReadMapEnd()
  23649. return v, changed
  23650. }
  23651. var mk uint32
  23652. var mv float64
  23653. hasLen := containerLen > 0
  23654. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23655. if esep {
  23656. dd.ReadMapElemKey()
  23657. }
  23658. mk = uint32(dd.DecodeUint(32))
  23659. if esep {
  23660. dd.ReadMapElemValue()
  23661. }
  23662. if dd.TryDecodeAsNil() {
  23663. if d.h.DeleteOnNilMapValue {
  23664. delete(v, mk)
  23665. } else {
  23666. v[mk] = 0
  23667. }
  23668. continue
  23669. }
  23670. mv = dd.DecodeFloat(false)
  23671. if v != nil {
  23672. v[mk] = mv
  23673. }
  23674. }
  23675. dd.ReadMapEnd()
  23676. return v, changed
  23677. }
  23678. func (d *Decoder) fastpathDecMapUint32BoolR(f *codecFnInfo, rv reflect.Value) {
  23679. if rv.Kind() == reflect.Ptr {
  23680. vp := rv2i(rv).(*map[uint32]bool)
  23681. if v, changed := fastpathTV.DecMapUint32BoolV(*vp, true, d); changed {
  23682. *vp = v
  23683. }
  23684. return
  23685. }
  23686. fastpathTV.DecMapUint32BoolV(rv2i(rv).(map[uint32]bool), false, d)
  23687. }
  23688. func (f fastpathT) DecMapUint32BoolX(vp *map[uint32]bool, d *Decoder) {
  23689. if v, changed := f.DecMapUint32BoolV(*vp, true, d); changed {
  23690. *vp = v
  23691. }
  23692. }
  23693. func (_ fastpathT) DecMapUint32BoolV(v map[uint32]bool, canChange bool,
  23694. d *Decoder) (_ map[uint32]bool, changed bool) {
  23695. dd, esep := d.d, d.hh.hasElemSeparators()
  23696. containerLen := dd.ReadMapStart()
  23697. if canChange && v == nil {
  23698. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  23699. v = make(map[uint32]bool, xlen)
  23700. changed = true
  23701. }
  23702. if containerLen == 0 {
  23703. dd.ReadMapEnd()
  23704. return v, changed
  23705. }
  23706. var mk uint32
  23707. var mv bool
  23708. hasLen := containerLen > 0
  23709. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23710. if esep {
  23711. dd.ReadMapElemKey()
  23712. }
  23713. mk = uint32(dd.DecodeUint(32))
  23714. if esep {
  23715. dd.ReadMapElemValue()
  23716. }
  23717. if dd.TryDecodeAsNil() {
  23718. if d.h.DeleteOnNilMapValue {
  23719. delete(v, mk)
  23720. } else {
  23721. v[mk] = false
  23722. }
  23723. continue
  23724. }
  23725. mv = dd.DecodeBool()
  23726. if v != nil {
  23727. v[mk] = mv
  23728. }
  23729. }
  23730. dd.ReadMapEnd()
  23731. return v, changed
  23732. }
  23733. func (d *Decoder) fastpathDecMapUint64IntfR(f *codecFnInfo, rv reflect.Value) {
  23734. if rv.Kind() == reflect.Ptr {
  23735. vp := rv2i(rv).(*map[uint64]interface{})
  23736. if v, changed := fastpathTV.DecMapUint64IntfV(*vp, true, d); changed {
  23737. *vp = v
  23738. }
  23739. return
  23740. }
  23741. fastpathTV.DecMapUint64IntfV(rv2i(rv).(map[uint64]interface{}), false, d)
  23742. }
  23743. func (f fastpathT) DecMapUint64IntfX(vp *map[uint64]interface{}, d *Decoder) {
  23744. if v, changed := f.DecMapUint64IntfV(*vp, true, d); changed {
  23745. *vp = v
  23746. }
  23747. }
  23748. func (_ fastpathT) DecMapUint64IntfV(v map[uint64]interface{}, canChange bool,
  23749. d *Decoder) (_ map[uint64]interface{}, changed bool) {
  23750. dd, esep := d.d, d.hh.hasElemSeparators()
  23751. containerLen := dd.ReadMapStart()
  23752. if canChange && v == nil {
  23753. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  23754. v = make(map[uint64]interface{}, xlen)
  23755. changed = true
  23756. }
  23757. if containerLen == 0 {
  23758. dd.ReadMapEnd()
  23759. return v, changed
  23760. }
  23761. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  23762. var mk uint64
  23763. var mv interface{}
  23764. hasLen := containerLen > 0
  23765. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23766. if esep {
  23767. dd.ReadMapElemKey()
  23768. }
  23769. mk = dd.DecodeUint(64)
  23770. if esep {
  23771. dd.ReadMapElemValue()
  23772. }
  23773. if dd.TryDecodeAsNil() {
  23774. if d.h.DeleteOnNilMapValue {
  23775. delete(v, mk)
  23776. } else {
  23777. v[mk] = nil
  23778. }
  23779. continue
  23780. }
  23781. if mapGet {
  23782. mv = v[mk]
  23783. } else {
  23784. mv = nil
  23785. }
  23786. d.decode(&mv)
  23787. if v != nil {
  23788. v[mk] = mv
  23789. }
  23790. }
  23791. dd.ReadMapEnd()
  23792. return v, changed
  23793. }
  23794. func (d *Decoder) fastpathDecMapUint64StringR(f *codecFnInfo, rv reflect.Value) {
  23795. if rv.Kind() == reflect.Ptr {
  23796. vp := rv2i(rv).(*map[uint64]string)
  23797. if v, changed := fastpathTV.DecMapUint64StringV(*vp, true, d); changed {
  23798. *vp = v
  23799. }
  23800. return
  23801. }
  23802. fastpathTV.DecMapUint64StringV(rv2i(rv).(map[uint64]string), false, d)
  23803. }
  23804. func (f fastpathT) DecMapUint64StringX(vp *map[uint64]string, d *Decoder) {
  23805. if v, changed := f.DecMapUint64StringV(*vp, true, d); changed {
  23806. *vp = v
  23807. }
  23808. }
  23809. func (_ fastpathT) DecMapUint64StringV(v map[uint64]string, canChange bool,
  23810. d *Decoder) (_ map[uint64]string, changed bool) {
  23811. dd, esep := d.d, d.hh.hasElemSeparators()
  23812. containerLen := dd.ReadMapStart()
  23813. if canChange && v == nil {
  23814. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  23815. v = make(map[uint64]string, xlen)
  23816. changed = true
  23817. }
  23818. if containerLen == 0 {
  23819. dd.ReadMapEnd()
  23820. return v, changed
  23821. }
  23822. var mk uint64
  23823. var mv string
  23824. hasLen := containerLen > 0
  23825. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23826. if esep {
  23827. dd.ReadMapElemKey()
  23828. }
  23829. mk = dd.DecodeUint(64)
  23830. if esep {
  23831. dd.ReadMapElemValue()
  23832. }
  23833. if dd.TryDecodeAsNil() {
  23834. if d.h.DeleteOnNilMapValue {
  23835. delete(v, mk)
  23836. } else {
  23837. v[mk] = ""
  23838. }
  23839. continue
  23840. }
  23841. mv = dd.DecodeString()
  23842. if v != nil {
  23843. v[mk] = mv
  23844. }
  23845. }
  23846. dd.ReadMapEnd()
  23847. return v, changed
  23848. }
  23849. func (d *Decoder) fastpathDecMapUint64UintR(f *codecFnInfo, rv reflect.Value) {
  23850. if rv.Kind() == reflect.Ptr {
  23851. vp := rv2i(rv).(*map[uint64]uint)
  23852. if v, changed := fastpathTV.DecMapUint64UintV(*vp, true, d); changed {
  23853. *vp = v
  23854. }
  23855. return
  23856. }
  23857. fastpathTV.DecMapUint64UintV(rv2i(rv).(map[uint64]uint), false, d)
  23858. }
  23859. func (f fastpathT) DecMapUint64UintX(vp *map[uint64]uint, d *Decoder) {
  23860. if v, changed := f.DecMapUint64UintV(*vp, true, d); changed {
  23861. *vp = v
  23862. }
  23863. }
  23864. func (_ fastpathT) DecMapUint64UintV(v map[uint64]uint, canChange bool,
  23865. d *Decoder) (_ map[uint64]uint, changed bool) {
  23866. dd, esep := d.d, d.hh.hasElemSeparators()
  23867. containerLen := dd.ReadMapStart()
  23868. if canChange && v == nil {
  23869. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  23870. v = make(map[uint64]uint, xlen)
  23871. changed = true
  23872. }
  23873. if containerLen == 0 {
  23874. dd.ReadMapEnd()
  23875. return v, changed
  23876. }
  23877. var mk uint64
  23878. var mv uint
  23879. hasLen := containerLen > 0
  23880. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23881. if esep {
  23882. dd.ReadMapElemKey()
  23883. }
  23884. mk = dd.DecodeUint(64)
  23885. if esep {
  23886. dd.ReadMapElemValue()
  23887. }
  23888. if dd.TryDecodeAsNil() {
  23889. if d.h.DeleteOnNilMapValue {
  23890. delete(v, mk)
  23891. } else {
  23892. v[mk] = 0
  23893. }
  23894. continue
  23895. }
  23896. mv = uint(dd.DecodeUint(uintBitsize))
  23897. if v != nil {
  23898. v[mk] = mv
  23899. }
  23900. }
  23901. dd.ReadMapEnd()
  23902. return v, changed
  23903. }
  23904. func (d *Decoder) fastpathDecMapUint64Uint8R(f *codecFnInfo, rv reflect.Value) {
  23905. if rv.Kind() == reflect.Ptr {
  23906. vp := rv2i(rv).(*map[uint64]uint8)
  23907. if v, changed := fastpathTV.DecMapUint64Uint8V(*vp, true, d); changed {
  23908. *vp = v
  23909. }
  23910. return
  23911. }
  23912. fastpathTV.DecMapUint64Uint8V(rv2i(rv).(map[uint64]uint8), false, d)
  23913. }
  23914. func (f fastpathT) DecMapUint64Uint8X(vp *map[uint64]uint8, d *Decoder) {
  23915. if v, changed := f.DecMapUint64Uint8V(*vp, true, d); changed {
  23916. *vp = v
  23917. }
  23918. }
  23919. func (_ fastpathT) DecMapUint64Uint8V(v map[uint64]uint8, canChange bool,
  23920. d *Decoder) (_ map[uint64]uint8, changed bool) {
  23921. dd, esep := d.d, d.hh.hasElemSeparators()
  23922. containerLen := dd.ReadMapStart()
  23923. if canChange && v == nil {
  23924. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  23925. v = make(map[uint64]uint8, xlen)
  23926. changed = true
  23927. }
  23928. if containerLen == 0 {
  23929. dd.ReadMapEnd()
  23930. return v, changed
  23931. }
  23932. var mk uint64
  23933. var mv uint8
  23934. hasLen := containerLen > 0
  23935. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23936. if esep {
  23937. dd.ReadMapElemKey()
  23938. }
  23939. mk = dd.DecodeUint(64)
  23940. if esep {
  23941. dd.ReadMapElemValue()
  23942. }
  23943. if dd.TryDecodeAsNil() {
  23944. if d.h.DeleteOnNilMapValue {
  23945. delete(v, mk)
  23946. } else {
  23947. v[mk] = 0
  23948. }
  23949. continue
  23950. }
  23951. mv = uint8(dd.DecodeUint(8))
  23952. if v != nil {
  23953. v[mk] = mv
  23954. }
  23955. }
  23956. dd.ReadMapEnd()
  23957. return v, changed
  23958. }
  23959. func (d *Decoder) fastpathDecMapUint64Uint16R(f *codecFnInfo, rv reflect.Value) {
  23960. if rv.Kind() == reflect.Ptr {
  23961. vp := rv2i(rv).(*map[uint64]uint16)
  23962. if v, changed := fastpathTV.DecMapUint64Uint16V(*vp, true, d); changed {
  23963. *vp = v
  23964. }
  23965. return
  23966. }
  23967. fastpathTV.DecMapUint64Uint16V(rv2i(rv).(map[uint64]uint16), false, d)
  23968. }
  23969. func (f fastpathT) DecMapUint64Uint16X(vp *map[uint64]uint16, d *Decoder) {
  23970. if v, changed := f.DecMapUint64Uint16V(*vp, true, d); changed {
  23971. *vp = v
  23972. }
  23973. }
  23974. func (_ fastpathT) DecMapUint64Uint16V(v map[uint64]uint16, canChange bool,
  23975. d *Decoder) (_ map[uint64]uint16, changed bool) {
  23976. dd, esep := d.d, d.hh.hasElemSeparators()
  23977. containerLen := dd.ReadMapStart()
  23978. if canChange && v == nil {
  23979. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  23980. v = make(map[uint64]uint16, xlen)
  23981. changed = true
  23982. }
  23983. if containerLen == 0 {
  23984. dd.ReadMapEnd()
  23985. return v, changed
  23986. }
  23987. var mk uint64
  23988. var mv uint16
  23989. hasLen := containerLen > 0
  23990. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  23991. if esep {
  23992. dd.ReadMapElemKey()
  23993. }
  23994. mk = dd.DecodeUint(64)
  23995. if esep {
  23996. dd.ReadMapElemValue()
  23997. }
  23998. if dd.TryDecodeAsNil() {
  23999. if d.h.DeleteOnNilMapValue {
  24000. delete(v, mk)
  24001. } else {
  24002. v[mk] = 0
  24003. }
  24004. continue
  24005. }
  24006. mv = uint16(dd.DecodeUint(16))
  24007. if v != nil {
  24008. v[mk] = mv
  24009. }
  24010. }
  24011. dd.ReadMapEnd()
  24012. return v, changed
  24013. }
  24014. func (d *Decoder) fastpathDecMapUint64Uint32R(f *codecFnInfo, rv reflect.Value) {
  24015. if rv.Kind() == reflect.Ptr {
  24016. vp := rv2i(rv).(*map[uint64]uint32)
  24017. if v, changed := fastpathTV.DecMapUint64Uint32V(*vp, true, d); changed {
  24018. *vp = v
  24019. }
  24020. return
  24021. }
  24022. fastpathTV.DecMapUint64Uint32V(rv2i(rv).(map[uint64]uint32), false, d)
  24023. }
  24024. func (f fastpathT) DecMapUint64Uint32X(vp *map[uint64]uint32, d *Decoder) {
  24025. if v, changed := f.DecMapUint64Uint32V(*vp, true, d); changed {
  24026. *vp = v
  24027. }
  24028. }
  24029. func (_ fastpathT) DecMapUint64Uint32V(v map[uint64]uint32, canChange bool,
  24030. d *Decoder) (_ map[uint64]uint32, changed bool) {
  24031. dd, esep := d.d, d.hh.hasElemSeparators()
  24032. containerLen := dd.ReadMapStart()
  24033. if canChange && v == nil {
  24034. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  24035. v = make(map[uint64]uint32, xlen)
  24036. changed = true
  24037. }
  24038. if containerLen == 0 {
  24039. dd.ReadMapEnd()
  24040. return v, changed
  24041. }
  24042. var mk uint64
  24043. var mv uint32
  24044. hasLen := containerLen > 0
  24045. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24046. if esep {
  24047. dd.ReadMapElemKey()
  24048. }
  24049. mk = dd.DecodeUint(64)
  24050. if esep {
  24051. dd.ReadMapElemValue()
  24052. }
  24053. if dd.TryDecodeAsNil() {
  24054. if d.h.DeleteOnNilMapValue {
  24055. delete(v, mk)
  24056. } else {
  24057. v[mk] = 0
  24058. }
  24059. continue
  24060. }
  24061. mv = uint32(dd.DecodeUint(32))
  24062. if v != nil {
  24063. v[mk] = mv
  24064. }
  24065. }
  24066. dd.ReadMapEnd()
  24067. return v, changed
  24068. }
  24069. func (d *Decoder) fastpathDecMapUint64Uint64R(f *codecFnInfo, rv reflect.Value) {
  24070. if rv.Kind() == reflect.Ptr {
  24071. vp := rv2i(rv).(*map[uint64]uint64)
  24072. if v, changed := fastpathTV.DecMapUint64Uint64V(*vp, true, d); changed {
  24073. *vp = v
  24074. }
  24075. return
  24076. }
  24077. fastpathTV.DecMapUint64Uint64V(rv2i(rv).(map[uint64]uint64), false, d)
  24078. }
  24079. func (f fastpathT) DecMapUint64Uint64X(vp *map[uint64]uint64, d *Decoder) {
  24080. if v, changed := f.DecMapUint64Uint64V(*vp, true, d); changed {
  24081. *vp = v
  24082. }
  24083. }
  24084. func (_ fastpathT) DecMapUint64Uint64V(v map[uint64]uint64, canChange bool,
  24085. d *Decoder) (_ map[uint64]uint64, changed bool) {
  24086. dd, esep := d.d, d.hh.hasElemSeparators()
  24087. containerLen := dd.ReadMapStart()
  24088. if canChange && v == nil {
  24089. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  24090. v = make(map[uint64]uint64, xlen)
  24091. changed = true
  24092. }
  24093. if containerLen == 0 {
  24094. dd.ReadMapEnd()
  24095. return v, changed
  24096. }
  24097. var mk uint64
  24098. var mv uint64
  24099. hasLen := containerLen > 0
  24100. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24101. if esep {
  24102. dd.ReadMapElemKey()
  24103. }
  24104. mk = dd.DecodeUint(64)
  24105. if esep {
  24106. dd.ReadMapElemValue()
  24107. }
  24108. if dd.TryDecodeAsNil() {
  24109. if d.h.DeleteOnNilMapValue {
  24110. delete(v, mk)
  24111. } else {
  24112. v[mk] = 0
  24113. }
  24114. continue
  24115. }
  24116. mv = dd.DecodeUint(64)
  24117. if v != nil {
  24118. v[mk] = mv
  24119. }
  24120. }
  24121. dd.ReadMapEnd()
  24122. return v, changed
  24123. }
  24124. func (d *Decoder) fastpathDecMapUint64UintptrR(f *codecFnInfo, rv reflect.Value) {
  24125. if rv.Kind() == reflect.Ptr {
  24126. vp := rv2i(rv).(*map[uint64]uintptr)
  24127. if v, changed := fastpathTV.DecMapUint64UintptrV(*vp, true, d); changed {
  24128. *vp = v
  24129. }
  24130. return
  24131. }
  24132. fastpathTV.DecMapUint64UintptrV(rv2i(rv).(map[uint64]uintptr), false, d)
  24133. }
  24134. func (f fastpathT) DecMapUint64UintptrX(vp *map[uint64]uintptr, d *Decoder) {
  24135. if v, changed := f.DecMapUint64UintptrV(*vp, true, d); changed {
  24136. *vp = v
  24137. }
  24138. }
  24139. func (_ fastpathT) DecMapUint64UintptrV(v map[uint64]uintptr, canChange bool,
  24140. d *Decoder) (_ map[uint64]uintptr, changed bool) {
  24141. dd, esep := d.d, d.hh.hasElemSeparators()
  24142. containerLen := dd.ReadMapStart()
  24143. if canChange && v == nil {
  24144. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  24145. v = make(map[uint64]uintptr, xlen)
  24146. changed = true
  24147. }
  24148. if containerLen == 0 {
  24149. dd.ReadMapEnd()
  24150. return v, changed
  24151. }
  24152. var mk uint64
  24153. var mv uintptr
  24154. hasLen := containerLen > 0
  24155. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24156. if esep {
  24157. dd.ReadMapElemKey()
  24158. }
  24159. mk = dd.DecodeUint(64)
  24160. if esep {
  24161. dd.ReadMapElemValue()
  24162. }
  24163. if dd.TryDecodeAsNil() {
  24164. if d.h.DeleteOnNilMapValue {
  24165. delete(v, mk)
  24166. } else {
  24167. v[mk] = 0
  24168. }
  24169. continue
  24170. }
  24171. mv = uintptr(dd.DecodeUint(uintBitsize))
  24172. if v != nil {
  24173. v[mk] = mv
  24174. }
  24175. }
  24176. dd.ReadMapEnd()
  24177. return v, changed
  24178. }
  24179. func (d *Decoder) fastpathDecMapUint64IntR(f *codecFnInfo, rv reflect.Value) {
  24180. if rv.Kind() == reflect.Ptr {
  24181. vp := rv2i(rv).(*map[uint64]int)
  24182. if v, changed := fastpathTV.DecMapUint64IntV(*vp, true, d); changed {
  24183. *vp = v
  24184. }
  24185. return
  24186. }
  24187. fastpathTV.DecMapUint64IntV(rv2i(rv).(map[uint64]int), false, d)
  24188. }
  24189. func (f fastpathT) DecMapUint64IntX(vp *map[uint64]int, d *Decoder) {
  24190. if v, changed := f.DecMapUint64IntV(*vp, true, d); changed {
  24191. *vp = v
  24192. }
  24193. }
  24194. func (_ fastpathT) DecMapUint64IntV(v map[uint64]int, canChange bool,
  24195. d *Decoder) (_ map[uint64]int, changed bool) {
  24196. dd, esep := d.d, d.hh.hasElemSeparators()
  24197. containerLen := dd.ReadMapStart()
  24198. if canChange && v == nil {
  24199. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  24200. v = make(map[uint64]int, xlen)
  24201. changed = true
  24202. }
  24203. if containerLen == 0 {
  24204. dd.ReadMapEnd()
  24205. return v, changed
  24206. }
  24207. var mk uint64
  24208. var mv int
  24209. hasLen := containerLen > 0
  24210. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24211. if esep {
  24212. dd.ReadMapElemKey()
  24213. }
  24214. mk = dd.DecodeUint(64)
  24215. if esep {
  24216. dd.ReadMapElemValue()
  24217. }
  24218. if dd.TryDecodeAsNil() {
  24219. if d.h.DeleteOnNilMapValue {
  24220. delete(v, mk)
  24221. } else {
  24222. v[mk] = 0
  24223. }
  24224. continue
  24225. }
  24226. mv = int(dd.DecodeInt(intBitsize))
  24227. if v != nil {
  24228. v[mk] = mv
  24229. }
  24230. }
  24231. dd.ReadMapEnd()
  24232. return v, changed
  24233. }
  24234. func (d *Decoder) fastpathDecMapUint64Int8R(f *codecFnInfo, rv reflect.Value) {
  24235. if rv.Kind() == reflect.Ptr {
  24236. vp := rv2i(rv).(*map[uint64]int8)
  24237. if v, changed := fastpathTV.DecMapUint64Int8V(*vp, true, d); changed {
  24238. *vp = v
  24239. }
  24240. return
  24241. }
  24242. fastpathTV.DecMapUint64Int8V(rv2i(rv).(map[uint64]int8), false, d)
  24243. }
  24244. func (f fastpathT) DecMapUint64Int8X(vp *map[uint64]int8, d *Decoder) {
  24245. if v, changed := f.DecMapUint64Int8V(*vp, true, d); changed {
  24246. *vp = v
  24247. }
  24248. }
  24249. func (_ fastpathT) DecMapUint64Int8V(v map[uint64]int8, canChange bool,
  24250. d *Decoder) (_ map[uint64]int8, changed bool) {
  24251. dd, esep := d.d, d.hh.hasElemSeparators()
  24252. containerLen := dd.ReadMapStart()
  24253. if canChange && v == nil {
  24254. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  24255. v = make(map[uint64]int8, xlen)
  24256. changed = true
  24257. }
  24258. if containerLen == 0 {
  24259. dd.ReadMapEnd()
  24260. return v, changed
  24261. }
  24262. var mk uint64
  24263. var mv int8
  24264. hasLen := containerLen > 0
  24265. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24266. if esep {
  24267. dd.ReadMapElemKey()
  24268. }
  24269. mk = dd.DecodeUint(64)
  24270. if esep {
  24271. dd.ReadMapElemValue()
  24272. }
  24273. if dd.TryDecodeAsNil() {
  24274. if d.h.DeleteOnNilMapValue {
  24275. delete(v, mk)
  24276. } else {
  24277. v[mk] = 0
  24278. }
  24279. continue
  24280. }
  24281. mv = int8(dd.DecodeInt(8))
  24282. if v != nil {
  24283. v[mk] = mv
  24284. }
  24285. }
  24286. dd.ReadMapEnd()
  24287. return v, changed
  24288. }
  24289. func (d *Decoder) fastpathDecMapUint64Int16R(f *codecFnInfo, rv reflect.Value) {
  24290. if rv.Kind() == reflect.Ptr {
  24291. vp := rv2i(rv).(*map[uint64]int16)
  24292. if v, changed := fastpathTV.DecMapUint64Int16V(*vp, true, d); changed {
  24293. *vp = v
  24294. }
  24295. return
  24296. }
  24297. fastpathTV.DecMapUint64Int16V(rv2i(rv).(map[uint64]int16), false, d)
  24298. }
  24299. func (f fastpathT) DecMapUint64Int16X(vp *map[uint64]int16, d *Decoder) {
  24300. if v, changed := f.DecMapUint64Int16V(*vp, true, d); changed {
  24301. *vp = v
  24302. }
  24303. }
  24304. func (_ fastpathT) DecMapUint64Int16V(v map[uint64]int16, canChange bool,
  24305. d *Decoder) (_ map[uint64]int16, changed bool) {
  24306. dd, esep := d.d, d.hh.hasElemSeparators()
  24307. containerLen := dd.ReadMapStart()
  24308. if canChange && v == nil {
  24309. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  24310. v = make(map[uint64]int16, xlen)
  24311. changed = true
  24312. }
  24313. if containerLen == 0 {
  24314. dd.ReadMapEnd()
  24315. return v, changed
  24316. }
  24317. var mk uint64
  24318. var mv int16
  24319. hasLen := containerLen > 0
  24320. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24321. if esep {
  24322. dd.ReadMapElemKey()
  24323. }
  24324. mk = dd.DecodeUint(64)
  24325. if esep {
  24326. dd.ReadMapElemValue()
  24327. }
  24328. if dd.TryDecodeAsNil() {
  24329. if d.h.DeleteOnNilMapValue {
  24330. delete(v, mk)
  24331. } else {
  24332. v[mk] = 0
  24333. }
  24334. continue
  24335. }
  24336. mv = int16(dd.DecodeInt(16))
  24337. if v != nil {
  24338. v[mk] = mv
  24339. }
  24340. }
  24341. dd.ReadMapEnd()
  24342. return v, changed
  24343. }
  24344. func (d *Decoder) fastpathDecMapUint64Int32R(f *codecFnInfo, rv reflect.Value) {
  24345. if rv.Kind() == reflect.Ptr {
  24346. vp := rv2i(rv).(*map[uint64]int32)
  24347. if v, changed := fastpathTV.DecMapUint64Int32V(*vp, true, d); changed {
  24348. *vp = v
  24349. }
  24350. return
  24351. }
  24352. fastpathTV.DecMapUint64Int32V(rv2i(rv).(map[uint64]int32), false, d)
  24353. }
  24354. func (f fastpathT) DecMapUint64Int32X(vp *map[uint64]int32, d *Decoder) {
  24355. if v, changed := f.DecMapUint64Int32V(*vp, true, d); changed {
  24356. *vp = v
  24357. }
  24358. }
  24359. func (_ fastpathT) DecMapUint64Int32V(v map[uint64]int32, canChange bool,
  24360. d *Decoder) (_ map[uint64]int32, changed bool) {
  24361. dd, esep := d.d, d.hh.hasElemSeparators()
  24362. containerLen := dd.ReadMapStart()
  24363. if canChange && v == nil {
  24364. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  24365. v = make(map[uint64]int32, xlen)
  24366. changed = true
  24367. }
  24368. if containerLen == 0 {
  24369. dd.ReadMapEnd()
  24370. return v, changed
  24371. }
  24372. var mk uint64
  24373. var mv int32
  24374. hasLen := containerLen > 0
  24375. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24376. if esep {
  24377. dd.ReadMapElemKey()
  24378. }
  24379. mk = dd.DecodeUint(64)
  24380. if esep {
  24381. dd.ReadMapElemValue()
  24382. }
  24383. if dd.TryDecodeAsNil() {
  24384. if d.h.DeleteOnNilMapValue {
  24385. delete(v, mk)
  24386. } else {
  24387. v[mk] = 0
  24388. }
  24389. continue
  24390. }
  24391. mv = int32(dd.DecodeInt(32))
  24392. if v != nil {
  24393. v[mk] = mv
  24394. }
  24395. }
  24396. dd.ReadMapEnd()
  24397. return v, changed
  24398. }
  24399. func (d *Decoder) fastpathDecMapUint64Int64R(f *codecFnInfo, rv reflect.Value) {
  24400. if rv.Kind() == reflect.Ptr {
  24401. vp := rv2i(rv).(*map[uint64]int64)
  24402. if v, changed := fastpathTV.DecMapUint64Int64V(*vp, true, d); changed {
  24403. *vp = v
  24404. }
  24405. return
  24406. }
  24407. fastpathTV.DecMapUint64Int64V(rv2i(rv).(map[uint64]int64), false, d)
  24408. }
  24409. func (f fastpathT) DecMapUint64Int64X(vp *map[uint64]int64, d *Decoder) {
  24410. if v, changed := f.DecMapUint64Int64V(*vp, true, d); changed {
  24411. *vp = v
  24412. }
  24413. }
  24414. func (_ fastpathT) DecMapUint64Int64V(v map[uint64]int64, canChange bool,
  24415. d *Decoder) (_ map[uint64]int64, changed bool) {
  24416. dd, esep := d.d, d.hh.hasElemSeparators()
  24417. containerLen := dd.ReadMapStart()
  24418. if canChange && v == nil {
  24419. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  24420. v = make(map[uint64]int64, xlen)
  24421. changed = true
  24422. }
  24423. if containerLen == 0 {
  24424. dd.ReadMapEnd()
  24425. return v, changed
  24426. }
  24427. var mk uint64
  24428. var mv int64
  24429. hasLen := containerLen > 0
  24430. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24431. if esep {
  24432. dd.ReadMapElemKey()
  24433. }
  24434. mk = dd.DecodeUint(64)
  24435. if esep {
  24436. dd.ReadMapElemValue()
  24437. }
  24438. if dd.TryDecodeAsNil() {
  24439. if d.h.DeleteOnNilMapValue {
  24440. delete(v, mk)
  24441. } else {
  24442. v[mk] = 0
  24443. }
  24444. continue
  24445. }
  24446. mv = dd.DecodeInt(64)
  24447. if v != nil {
  24448. v[mk] = mv
  24449. }
  24450. }
  24451. dd.ReadMapEnd()
  24452. return v, changed
  24453. }
  24454. func (d *Decoder) fastpathDecMapUint64Float32R(f *codecFnInfo, rv reflect.Value) {
  24455. if rv.Kind() == reflect.Ptr {
  24456. vp := rv2i(rv).(*map[uint64]float32)
  24457. if v, changed := fastpathTV.DecMapUint64Float32V(*vp, true, d); changed {
  24458. *vp = v
  24459. }
  24460. return
  24461. }
  24462. fastpathTV.DecMapUint64Float32V(rv2i(rv).(map[uint64]float32), false, d)
  24463. }
  24464. func (f fastpathT) DecMapUint64Float32X(vp *map[uint64]float32, d *Decoder) {
  24465. if v, changed := f.DecMapUint64Float32V(*vp, true, d); changed {
  24466. *vp = v
  24467. }
  24468. }
  24469. func (_ fastpathT) DecMapUint64Float32V(v map[uint64]float32, canChange bool,
  24470. d *Decoder) (_ map[uint64]float32, changed bool) {
  24471. dd, esep := d.d, d.hh.hasElemSeparators()
  24472. containerLen := dd.ReadMapStart()
  24473. if canChange && v == nil {
  24474. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  24475. v = make(map[uint64]float32, xlen)
  24476. changed = true
  24477. }
  24478. if containerLen == 0 {
  24479. dd.ReadMapEnd()
  24480. return v, changed
  24481. }
  24482. var mk uint64
  24483. var mv float32
  24484. hasLen := containerLen > 0
  24485. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24486. if esep {
  24487. dd.ReadMapElemKey()
  24488. }
  24489. mk = dd.DecodeUint(64)
  24490. if esep {
  24491. dd.ReadMapElemValue()
  24492. }
  24493. if dd.TryDecodeAsNil() {
  24494. if d.h.DeleteOnNilMapValue {
  24495. delete(v, mk)
  24496. } else {
  24497. v[mk] = 0
  24498. }
  24499. continue
  24500. }
  24501. mv = float32(dd.DecodeFloat(true))
  24502. if v != nil {
  24503. v[mk] = mv
  24504. }
  24505. }
  24506. dd.ReadMapEnd()
  24507. return v, changed
  24508. }
  24509. func (d *Decoder) fastpathDecMapUint64Float64R(f *codecFnInfo, rv reflect.Value) {
  24510. if rv.Kind() == reflect.Ptr {
  24511. vp := rv2i(rv).(*map[uint64]float64)
  24512. if v, changed := fastpathTV.DecMapUint64Float64V(*vp, true, d); changed {
  24513. *vp = v
  24514. }
  24515. return
  24516. }
  24517. fastpathTV.DecMapUint64Float64V(rv2i(rv).(map[uint64]float64), false, d)
  24518. }
  24519. func (f fastpathT) DecMapUint64Float64X(vp *map[uint64]float64, d *Decoder) {
  24520. if v, changed := f.DecMapUint64Float64V(*vp, true, d); changed {
  24521. *vp = v
  24522. }
  24523. }
  24524. func (_ fastpathT) DecMapUint64Float64V(v map[uint64]float64, canChange bool,
  24525. d *Decoder) (_ map[uint64]float64, changed bool) {
  24526. dd, esep := d.d, d.hh.hasElemSeparators()
  24527. containerLen := dd.ReadMapStart()
  24528. if canChange && v == nil {
  24529. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  24530. v = make(map[uint64]float64, xlen)
  24531. changed = true
  24532. }
  24533. if containerLen == 0 {
  24534. dd.ReadMapEnd()
  24535. return v, changed
  24536. }
  24537. var mk uint64
  24538. var mv float64
  24539. hasLen := containerLen > 0
  24540. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24541. if esep {
  24542. dd.ReadMapElemKey()
  24543. }
  24544. mk = dd.DecodeUint(64)
  24545. if esep {
  24546. dd.ReadMapElemValue()
  24547. }
  24548. if dd.TryDecodeAsNil() {
  24549. if d.h.DeleteOnNilMapValue {
  24550. delete(v, mk)
  24551. } else {
  24552. v[mk] = 0
  24553. }
  24554. continue
  24555. }
  24556. mv = dd.DecodeFloat(false)
  24557. if v != nil {
  24558. v[mk] = mv
  24559. }
  24560. }
  24561. dd.ReadMapEnd()
  24562. return v, changed
  24563. }
  24564. func (d *Decoder) fastpathDecMapUint64BoolR(f *codecFnInfo, rv reflect.Value) {
  24565. if rv.Kind() == reflect.Ptr {
  24566. vp := rv2i(rv).(*map[uint64]bool)
  24567. if v, changed := fastpathTV.DecMapUint64BoolV(*vp, true, d); changed {
  24568. *vp = v
  24569. }
  24570. return
  24571. }
  24572. fastpathTV.DecMapUint64BoolV(rv2i(rv).(map[uint64]bool), false, d)
  24573. }
  24574. func (f fastpathT) DecMapUint64BoolX(vp *map[uint64]bool, d *Decoder) {
  24575. if v, changed := f.DecMapUint64BoolV(*vp, true, d); changed {
  24576. *vp = v
  24577. }
  24578. }
  24579. func (_ fastpathT) DecMapUint64BoolV(v map[uint64]bool, canChange bool,
  24580. d *Decoder) (_ map[uint64]bool, changed bool) {
  24581. dd, esep := d.d, d.hh.hasElemSeparators()
  24582. containerLen := dd.ReadMapStart()
  24583. if canChange && v == nil {
  24584. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  24585. v = make(map[uint64]bool, xlen)
  24586. changed = true
  24587. }
  24588. if containerLen == 0 {
  24589. dd.ReadMapEnd()
  24590. return v, changed
  24591. }
  24592. var mk uint64
  24593. var mv bool
  24594. hasLen := containerLen > 0
  24595. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24596. if esep {
  24597. dd.ReadMapElemKey()
  24598. }
  24599. mk = dd.DecodeUint(64)
  24600. if esep {
  24601. dd.ReadMapElemValue()
  24602. }
  24603. if dd.TryDecodeAsNil() {
  24604. if d.h.DeleteOnNilMapValue {
  24605. delete(v, mk)
  24606. } else {
  24607. v[mk] = false
  24608. }
  24609. continue
  24610. }
  24611. mv = dd.DecodeBool()
  24612. if v != nil {
  24613. v[mk] = mv
  24614. }
  24615. }
  24616. dd.ReadMapEnd()
  24617. return v, changed
  24618. }
  24619. func (d *Decoder) fastpathDecMapUintptrIntfR(f *codecFnInfo, rv reflect.Value) {
  24620. if rv.Kind() == reflect.Ptr {
  24621. vp := rv2i(rv).(*map[uintptr]interface{})
  24622. if v, changed := fastpathTV.DecMapUintptrIntfV(*vp, true, d); changed {
  24623. *vp = v
  24624. }
  24625. return
  24626. }
  24627. fastpathTV.DecMapUintptrIntfV(rv2i(rv).(map[uintptr]interface{}), false, d)
  24628. }
  24629. func (f fastpathT) DecMapUintptrIntfX(vp *map[uintptr]interface{}, d *Decoder) {
  24630. if v, changed := f.DecMapUintptrIntfV(*vp, true, d); changed {
  24631. *vp = v
  24632. }
  24633. }
  24634. func (_ fastpathT) DecMapUintptrIntfV(v map[uintptr]interface{}, canChange bool,
  24635. d *Decoder) (_ map[uintptr]interface{}, changed bool) {
  24636. dd, esep := d.d, d.hh.hasElemSeparators()
  24637. containerLen := dd.ReadMapStart()
  24638. if canChange && v == nil {
  24639. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  24640. v = make(map[uintptr]interface{}, xlen)
  24641. changed = true
  24642. }
  24643. if containerLen == 0 {
  24644. dd.ReadMapEnd()
  24645. return v, changed
  24646. }
  24647. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  24648. var mk uintptr
  24649. var mv interface{}
  24650. hasLen := containerLen > 0
  24651. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24652. if esep {
  24653. dd.ReadMapElemKey()
  24654. }
  24655. mk = uintptr(dd.DecodeUint(uintBitsize))
  24656. if esep {
  24657. dd.ReadMapElemValue()
  24658. }
  24659. if dd.TryDecodeAsNil() {
  24660. if d.h.DeleteOnNilMapValue {
  24661. delete(v, mk)
  24662. } else {
  24663. v[mk] = nil
  24664. }
  24665. continue
  24666. }
  24667. if mapGet {
  24668. mv = v[mk]
  24669. } else {
  24670. mv = nil
  24671. }
  24672. d.decode(&mv)
  24673. if v != nil {
  24674. v[mk] = mv
  24675. }
  24676. }
  24677. dd.ReadMapEnd()
  24678. return v, changed
  24679. }
  24680. func (d *Decoder) fastpathDecMapUintptrStringR(f *codecFnInfo, rv reflect.Value) {
  24681. if rv.Kind() == reflect.Ptr {
  24682. vp := rv2i(rv).(*map[uintptr]string)
  24683. if v, changed := fastpathTV.DecMapUintptrStringV(*vp, true, d); changed {
  24684. *vp = v
  24685. }
  24686. return
  24687. }
  24688. fastpathTV.DecMapUintptrStringV(rv2i(rv).(map[uintptr]string), false, d)
  24689. }
  24690. func (f fastpathT) DecMapUintptrStringX(vp *map[uintptr]string, d *Decoder) {
  24691. if v, changed := f.DecMapUintptrStringV(*vp, true, d); changed {
  24692. *vp = v
  24693. }
  24694. }
  24695. func (_ fastpathT) DecMapUintptrStringV(v map[uintptr]string, canChange bool,
  24696. d *Decoder) (_ map[uintptr]string, changed bool) {
  24697. dd, esep := d.d, d.hh.hasElemSeparators()
  24698. containerLen := dd.ReadMapStart()
  24699. if canChange && v == nil {
  24700. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  24701. v = make(map[uintptr]string, xlen)
  24702. changed = true
  24703. }
  24704. if containerLen == 0 {
  24705. dd.ReadMapEnd()
  24706. return v, changed
  24707. }
  24708. var mk uintptr
  24709. var mv string
  24710. hasLen := containerLen > 0
  24711. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24712. if esep {
  24713. dd.ReadMapElemKey()
  24714. }
  24715. mk = uintptr(dd.DecodeUint(uintBitsize))
  24716. if esep {
  24717. dd.ReadMapElemValue()
  24718. }
  24719. if dd.TryDecodeAsNil() {
  24720. if d.h.DeleteOnNilMapValue {
  24721. delete(v, mk)
  24722. } else {
  24723. v[mk] = ""
  24724. }
  24725. continue
  24726. }
  24727. mv = dd.DecodeString()
  24728. if v != nil {
  24729. v[mk] = mv
  24730. }
  24731. }
  24732. dd.ReadMapEnd()
  24733. return v, changed
  24734. }
  24735. func (d *Decoder) fastpathDecMapUintptrUintR(f *codecFnInfo, rv reflect.Value) {
  24736. if rv.Kind() == reflect.Ptr {
  24737. vp := rv2i(rv).(*map[uintptr]uint)
  24738. if v, changed := fastpathTV.DecMapUintptrUintV(*vp, true, d); changed {
  24739. *vp = v
  24740. }
  24741. return
  24742. }
  24743. fastpathTV.DecMapUintptrUintV(rv2i(rv).(map[uintptr]uint), false, d)
  24744. }
  24745. func (f fastpathT) DecMapUintptrUintX(vp *map[uintptr]uint, d *Decoder) {
  24746. if v, changed := f.DecMapUintptrUintV(*vp, true, d); changed {
  24747. *vp = v
  24748. }
  24749. }
  24750. func (_ fastpathT) DecMapUintptrUintV(v map[uintptr]uint, canChange bool,
  24751. d *Decoder) (_ map[uintptr]uint, changed bool) {
  24752. dd, esep := d.d, d.hh.hasElemSeparators()
  24753. containerLen := dd.ReadMapStart()
  24754. if canChange && v == nil {
  24755. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  24756. v = make(map[uintptr]uint, xlen)
  24757. changed = true
  24758. }
  24759. if containerLen == 0 {
  24760. dd.ReadMapEnd()
  24761. return v, changed
  24762. }
  24763. var mk uintptr
  24764. var mv uint
  24765. hasLen := containerLen > 0
  24766. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24767. if esep {
  24768. dd.ReadMapElemKey()
  24769. }
  24770. mk = uintptr(dd.DecodeUint(uintBitsize))
  24771. if esep {
  24772. dd.ReadMapElemValue()
  24773. }
  24774. if dd.TryDecodeAsNil() {
  24775. if d.h.DeleteOnNilMapValue {
  24776. delete(v, mk)
  24777. } else {
  24778. v[mk] = 0
  24779. }
  24780. continue
  24781. }
  24782. mv = uint(dd.DecodeUint(uintBitsize))
  24783. if v != nil {
  24784. v[mk] = mv
  24785. }
  24786. }
  24787. dd.ReadMapEnd()
  24788. return v, changed
  24789. }
  24790. func (d *Decoder) fastpathDecMapUintptrUint8R(f *codecFnInfo, rv reflect.Value) {
  24791. if rv.Kind() == reflect.Ptr {
  24792. vp := rv2i(rv).(*map[uintptr]uint8)
  24793. if v, changed := fastpathTV.DecMapUintptrUint8V(*vp, true, d); changed {
  24794. *vp = v
  24795. }
  24796. return
  24797. }
  24798. fastpathTV.DecMapUintptrUint8V(rv2i(rv).(map[uintptr]uint8), false, d)
  24799. }
  24800. func (f fastpathT) DecMapUintptrUint8X(vp *map[uintptr]uint8, d *Decoder) {
  24801. if v, changed := f.DecMapUintptrUint8V(*vp, true, d); changed {
  24802. *vp = v
  24803. }
  24804. }
  24805. func (_ fastpathT) DecMapUintptrUint8V(v map[uintptr]uint8, canChange bool,
  24806. d *Decoder) (_ map[uintptr]uint8, changed bool) {
  24807. dd, esep := d.d, d.hh.hasElemSeparators()
  24808. containerLen := dd.ReadMapStart()
  24809. if canChange && v == nil {
  24810. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  24811. v = make(map[uintptr]uint8, xlen)
  24812. changed = true
  24813. }
  24814. if containerLen == 0 {
  24815. dd.ReadMapEnd()
  24816. return v, changed
  24817. }
  24818. var mk uintptr
  24819. var mv uint8
  24820. hasLen := containerLen > 0
  24821. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24822. if esep {
  24823. dd.ReadMapElemKey()
  24824. }
  24825. mk = uintptr(dd.DecodeUint(uintBitsize))
  24826. if esep {
  24827. dd.ReadMapElemValue()
  24828. }
  24829. if dd.TryDecodeAsNil() {
  24830. if d.h.DeleteOnNilMapValue {
  24831. delete(v, mk)
  24832. } else {
  24833. v[mk] = 0
  24834. }
  24835. continue
  24836. }
  24837. mv = uint8(dd.DecodeUint(8))
  24838. if v != nil {
  24839. v[mk] = mv
  24840. }
  24841. }
  24842. dd.ReadMapEnd()
  24843. return v, changed
  24844. }
  24845. func (d *Decoder) fastpathDecMapUintptrUint16R(f *codecFnInfo, rv reflect.Value) {
  24846. if rv.Kind() == reflect.Ptr {
  24847. vp := rv2i(rv).(*map[uintptr]uint16)
  24848. if v, changed := fastpathTV.DecMapUintptrUint16V(*vp, true, d); changed {
  24849. *vp = v
  24850. }
  24851. return
  24852. }
  24853. fastpathTV.DecMapUintptrUint16V(rv2i(rv).(map[uintptr]uint16), false, d)
  24854. }
  24855. func (f fastpathT) DecMapUintptrUint16X(vp *map[uintptr]uint16, d *Decoder) {
  24856. if v, changed := f.DecMapUintptrUint16V(*vp, true, d); changed {
  24857. *vp = v
  24858. }
  24859. }
  24860. func (_ fastpathT) DecMapUintptrUint16V(v map[uintptr]uint16, canChange bool,
  24861. d *Decoder) (_ map[uintptr]uint16, changed bool) {
  24862. dd, esep := d.d, d.hh.hasElemSeparators()
  24863. containerLen := dd.ReadMapStart()
  24864. if canChange && v == nil {
  24865. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  24866. v = make(map[uintptr]uint16, xlen)
  24867. changed = true
  24868. }
  24869. if containerLen == 0 {
  24870. dd.ReadMapEnd()
  24871. return v, changed
  24872. }
  24873. var mk uintptr
  24874. var mv uint16
  24875. hasLen := containerLen > 0
  24876. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24877. if esep {
  24878. dd.ReadMapElemKey()
  24879. }
  24880. mk = uintptr(dd.DecodeUint(uintBitsize))
  24881. if esep {
  24882. dd.ReadMapElemValue()
  24883. }
  24884. if dd.TryDecodeAsNil() {
  24885. if d.h.DeleteOnNilMapValue {
  24886. delete(v, mk)
  24887. } else {
  24888. v[mk] = 0
  24889. }
  24890. continue
  24891. }
  24892. mv = uint16(dd.DecodeUint(16))
  24893. if v != nil {
  24894. v[mk] = mv
  24895. }
  24896. }
  24897. dd.ReadMapEnd()
  24898. return v, changed
  24899. }
  24900. func (d *Decoder) fastpathDecMapUintptrUint32R(f *codecFnInfo, rv reflect.Value) {
  24901. if rv.Kind() == reflect.Ptr {
  24902. vp := rv2i(rv).(*map[uintptr]uint32)
  24903. if v, changed := fastpathTV.DecMapUintptrUint32V(*vp, true, d); changed {
  24904. *vp = v
  24905. }
  24906. return
  24907. }
  24908. fastpathTV.DecMapUintptrUint32V(rv2i(rv).(map[uintptr]uint32), false, d)
  24909. }
  24910. func (f fastpathT) DecMapUintptrUint32X(vp *map[uintptr]uint32, d *Decoder) {
  24911. if v, changed := f.DecMapUintptrUint32V(*vp, true, d); changed {
  24912. *vp = v
  24913. }
  24914. }
  24915. func (_ fastpathT) DecMapUintptrUint32V(v map[uintptr]uint32, canChange bool,
  24916. d *Decoder) (_ map[uintptr]uint32, changed bool) {
  24917. dd, esep := d.d, d.hh.hasElemSeparators()
  24918. containerLen := dd.ReadMapStart()
  24919. if canChange && v == nil {
  24920. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  24921. v = make(map[uintptr]uint32, xlen)
  24922. changed = true
  24923. }
  24924. if containerLen == 0 {
  24925. dd.ReadMapEnd()
  24926. return v, changed
  24927. }
  24928. var mk uintptr
  24929. var mv uint32
  24930. hasLen := containerLen > 0
  24931. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24932. if esep {
  24933. dd.ReadMapElemKey()
  24934. }
  24935. mk = uintptr(dd.DecodeUint(uintBitsize))
  24936. if esep {
  24937. dd.ReadMapElemValue()
  24938. }
  24939. if dd.TryDecodeAsNil() {
  24940. if d.h.DeleteOnNilMapValue {
  24941. delete(v, mk)
  24942. } else {
  24943. v[mk] = 0
  24944. }
  24945. continue
  24946. }
  24947. mv = uint32(dd.DecodeUint(32))
  24948. if v != nil {
  24949. v[mk] = mv
  24950. }
  24951. }
  24952. dd.ReadMapEnd()
  24953. return v, changed
  24954. }
  24955. func (d *Decoder) fastpathDecMapUintptrUint64R(f *codecFnInfo, rv reflect.Value) {
  24956. if rv.Kind() == reflect.Ptr {
  24957. vp := rv2i(rv).(*map[uintptr]uint64)
  24958. if v, changed := fastpathTV.DecMapUintptrUint64V(*vp, true, d); changed {
  24959. *vp = v
  24960. }
  24961. return
  24962. }
  24963. fastpathTV.DecMapUintptrUint64V(rv2i(rv).(map[uintptr]uint64), false, d)
  24964. }
  24965. func (f fastpathT) DecMapUintptrUint64X(vp *map[uintptr]uint64, d *Decoder) {
  24966. if v, changed := f.DecMapUintptrUint64V(*vp, true, d); changed {
  24967. *vp = v
  24968. }
  24969. }
  24970. func (_ fastpathT) DecMapUintptrUint64V(v map[uintptr]uint64, canChange bool,
  24971. d *Decoder) (_ map[uintptr]uint64, changed bool) {
  24972. dd, esep := d.d, d.hh.hasElemSeparators()
  24973. containerLen := dd.ReadMapStart()
  24974. if canChange && v == nil {
  24975. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  24976. v = make(map[uintptr]uint64, xlen)
  24977. changed = true
  24978. }
  24979. if containerLen == 0 {
  24980. dd.ReadMapEnd()
  24981. return v, changed
  24982. }
  24983. var mk uintptr
  24984. var mv uint64
  24985. hasLen := containerLen > 0
  24986. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  24987. if esep {
  24988. dd.ReadMapElemKey()
  24989. }
  24990. mk = uintptr(dd.DecodeUint(uintBitsize))
  24991. if esep {
  24992. dd.ReadMapElemValue()
  24993. }
  24994. if dd.TryDecodeAsNil() {
  24995. if d.h.DeleteOnNilMapValue {
  24996. delete(v, mk)
  24997. } else {
  24998. v[mk] = 0
  24999. }
  25000. continue
  25001. }
  25002. mv = dd.DecodeUint(64)
  25003. if v != nil {
  25004. v[mk] = mv
  25005. }
  25006. }
  25007. dd.ReadMapEnd()
  25008. return v, changed
  25009. }
  25010. func (d *Decoder) fastpathDecMapUintptrUintptrR(f *codecFnInfo, rv reflect.Value) {
  25011. if rv.Kind() == reflect.Ptr {
  25012. vp := rv2i(rv).(*map[uintptr]uintptr)
  25013. if v, changed := fastpathTV.DecMapUintptrUintptrV(*vp, true, d); changed {
  25014. *vp = v
  25015. }
  25016. return
  25017. }
  25018. fastpathTV.DecMapUintptrUintptrV(rv2i(rv).(map[uintptr]uintptr), false, d)
  25019. }
  25020. func (f fastpathT) DecMapUintptrUintptrX(vp *map[uintptr]uintptr, d *Decoder) {
  25021. if v, changed := f.DecMapUintptrUintptrV(*vp, true, d); changed {
  25022. *vp = v
  25023. }
  25024. }
  25025. func (_ fastpathT) DecMapUintptrUintptrV(v map[uintptr]uintptr, canChange bool,
  25026. d *Decoder) (_ map[uintptr]uintptr, changed bool) {
  25027. dd, esep := d.d, d.hh.hasElemSeparators()
  25028. containerLen := dd.ReadMapStart()
  25029. if canChange && v == nil {
  25030. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  25031. v = make(map[uintptr]uintptr, xlen)
  25032. changed = true
  25033. }
  25034. if containerLen == 0 {
  25035. dd.ReadMapEnd()
  25036. return v, changed
  25037. }
  25038. var mk uintptr
  25039. var mv uintptr
  25040. hasLen := containerLen > 0
  25041. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25042. if esep {
  25043. dd.ReadMapElemKey()
  25044. }
  25045. mk = uintptr(dd.DecodeUint(uintBitsize))
  25046. if esep {
  25047. dd.ReadMapElemValue()
  25048. }
  25049. if dd.TryDecodeAsNil() {
  25050. if d.h.DeleteOnNilMapValue {
  25051. delete(v, mk)
  25052. } else {
  25053. v[mk] = 0
  25054. }
  25055. continue
  25056. }
  25057. mv = uintptr(dd.DecodeUint(uintBitsize))
  25058. if v != nil {
  25059. v[mk] = mv
  25060. }
  25061. }
  25062. dd.ReadMapEnd()
  25063. return v, changed
  25064. }
  25065. func (d *Decoder) fastpathDecMapUintptrIntR(f *codecFnInfo, rv reflect.Value) {
  25066. if rv.Kind() == reflect.Ptr {
  25067. vp := rv2i(rv).(*map[uintptr]int)
  25068. if v, changed := fastpathTV.DecMapUintptrIntV(*vp, true, d); changed {
  25069. *vp = v
  25070. }
  25071. return
  25072. }
  25073. fastpathTV.DecMapUintptrIntV(rv2i(rv).(map[uintptr]int), false, d)
  25074. }
  25075. func (f fastpathT) DecMapUintptrIntX(vp *map[uintptr]int, d *Decoder) {
  25076. if v, changed := f.DecMapUintptrIntV(*vp, true, d); changed {
  25077. *vp = v
  25078. }
  25079. }
  25080. func (_ fastpathT) DecMapUintptrIntV(v map[uintptr]int, canChange bool,
  25081. d *Decoder) (_ map[uintptr]int, changed bool) {
  25082. dd, esep := d.d, d.hh.hasElemSeparators()
  25083. containerLen := dd.ReadMapStart()
  25084. if canChange && v == nil {
  25085. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  25086. v = make(map[uintptr]int, xlen)
  25087. changed = true
  25088. }
  25089. if containerLen == 0 {
  25090. dd.ReadMapEnd()
  25091. return v, changed
  25092. }
  25093. var mk uintptr
  25094. var mv int
  25095. hasLen := containerLen > 0
  25096. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25097. if esep {
  25098. dd.ReadMapElemKey()
  25099. }
  25100. mk = uintptr(dd.DecodeUint(uintBitsize))
  25101. if esep {
  25102. dd.ReadMapElemValue()
  25103. }
  25104. if dd.TryDecodeAsNil() {
  25105. if d.h.DeleteOnNilMapValue {
  25106. delete(v, mk)
  25107. } else {
  25108. v[mk] = 0
  25109. }
  25110. continue
  25111. }
  25112. mv = int(dd.DecodeInt(intBitsize))
  25113. if v != nil {
  25114. v[mk] = mv
  25115. }
  25116. }
  25117. dd.ReadMapEnd()
  25118. return v, changed
  25119. }
  25120. func (d *Decoder) fastpathDecMapUintptrInt8R(f *codecFnInfo, rv reflect.Value) {
  25121. if rv.Kind() == reflect.Ptr {
  25122. vp := rv2i(rv).(*map[uintptr]int8)
  25123. if v, changed := fastpathTV.DecMapUintptrInt8V(*vp, true, d); changed {
  25124. *vp = v
  25125. }
  25126. return
  25127. }
  25128. fastpathTV.DecMapUintptrInt8V(rv2i(rv).(map[uintptr]int8), false, d)
  25129. }
  25130. func (f fastpathT) DecMapUintptrInt8X(vp *map[uintptr]int8, d *Decoder) {
  25131. if v, changed := f.DecMapUintptrInt8V(*vp, true, d); changed {
  25132. *vp = v
  25133. }
  25134. }
  25135. func (_ fastpathT) DecMapUintptrInt8V(v map[uintptr]int8, canChange bool,
  25136. d *Decoder) (_ map[uintptr]int8, changed bool) {
  25137. dd, esep := d.d, d.hh.hasElemSeparators()
  25138. containerLen := dd.ReadMapStart()
  25139. if canChange && v == nil {
  25140. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  25141. v = make(map[uintptr]int8, xlen)
  25142. changed = true
  25143. }
  25144. if containerLen == 0 {
  25145. dd.ReadMapEnd()
  25146. return v, changed
  25147. }
  25148. var mk uintptr
  25149. var mv int8
  25150. hasLen := containerLen > 0
  25151. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25152. if esep {
  25153. dd.ReadMapElemKey()
  25154. }
  25155. mk = uintptr(dd.DecodeUint(uintBitsize))
  25156. if esep {
  25157. dd.ReadMapElemValue()
  25158. }
  25159. if dd.TryDecodeAsNil() {
  25160. if d.h.DeleteOnNilMapValue {
  25161. delete(v, mk)
  25162. } else {
  25163. v[mk] = 0
  25164. }
  25165. continue
  25166. }
  25167. mv = int8(dd.DecodeInt(8))
  25168. if v != nil {
  25169. v[mk] = mv
  25170. }
  25171. }
  25172. dd.ReadMapEnd()
  25173. return v, changed
  25174. }
  25175. func (d *Decoder) fastpathDecMapUintptrInt16R(f *codecFnInfo, rv reflect.Value) {
  25176. if rv.Kind() == reflect.Ptr {
  25177. vp := rv2i(rv).(*map[uintptr]int16)
  25178. if v, changed := fastpathTV.DecMapUintptrInt16V(*vp, true, d); changed {
  25179. *vp = v
  25180. }
  25181. return
  25182. }
  25183. fastpathTV.DecMapUintptrInt16V(rv2i(rv).(map[uintptr]int16), false, d)
  25184. }
  25185. func (f fastpathT) DecMapUintptrInt16X(vp *map[uintptr]int16, d *Decoder) {
  25186. if v, changed := f.DecMapUintptrInt16V(*vp, true, d); changed {
  25187. *vp = v
  25188. }
  25189. }
  25190. func (_ fastpathT) DecMapUintptrInt16V(v map[uintptr]int16, canChange bool,
  25191. d *Decoder) (_ map[uintptr]int16, changed bool) {
  25192. dd, esep := d.d, d.hh.hasElemSeparators()
  25193. containerLen := dd.ReadMapStart()
  25194. if canChange && v == nil {
  25195. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  25196. v = make(map[uintptr]int16, xlen)
  25197. changed = true
  25198. }
  25199. if containerLen == 0 {
  25200. dd.ReadMapEnd()
  25201. return v, changed
  25202. }
  25203. var mk uintptr
  25204. var mv int16
  25205. hasLen := containerLen > 0
  25206. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25207. if esep {
  25208. dd.ReadMapElemKey()
  25209. }
  25210. mk = uintptr(dd.DecodeUint(uintBitsize))
  25211. if esep {
  25212. dd.ReadMapElemValue()
  25213. }
  25214. if dd.TryDecodeAsNil() {
  25215. if d.h.DeleteOnNilMapValue {
  25216. delete(v, mk)
  25217. } else {
  25218. v[mk] = 0
  25219. }
  25220. continue
  25221. }
  25222. mv = int16(dd.DecodeInt(16))
  25223. if v != nil {
  25224. v[mk] = mv
  25225. }
  25226. }
  25227. dd.ReadMapEnd()
  25228. return v, changed
  25229. }
  25230. func (d *Decoder) fastpathDecMapUintptrInt32R(f *codecFnInfo, rv reflect.Value) {
  25231. if rv.Kind() == reflect.Ptr {
  25232. vp := rv2i(rv).(*map[uintptr]int32)
  25233. if v, changed := fastpathTV.DecMapUintptrInt32V(*vp, true, d); changed {
  25234. *vp = v
  25235. }
  25236. return
  25237. }
  25238. fastpathTV.DecMapUintptrInt32V(rv2i(rv).(map[uintptr]int32), false, d)
  25239. }
  25240. func (f fastpathT) DecMapUintptrInt32X(vp *map[uintptr]int32, d *Decoder) {
  25241. if v, changed := f.DecMapUintptrInt32V(*vp, true, d); changed {
  25242. *vp = v
  25243. }
  25244. }
  25245. func (_ fastpathT) DecMapUintptrInt32V(v map[uintptr]int32, canChange bool,
  25246. d *Decoder) (_ map[uintptr]int32, changed bool) {
  25247. dd, esep := d.d, d.hh.hasElemSeparators()
  25248. containerLen := dd.ReadMapStart()
  25249. if canChange && v == nil {
  25250. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  25251. v = make(map[uintptr]int32, xlen)
  25252. changed = true
  25253. }
  25254. if containerLen == 0 {
  25255. dd.ReadMapEnd()
  25256. return v, changed
  25257. }
  25258. var mk uintptr
  25259. var mv int32
  25260. hasLen := containerLen > 0
  25261. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25262. if esep {
  25263. dd.ReadMapElemKey()
  25264. }
  25265. mk = uintptr(dd.DecodeUint(uintBitsize))
  25266. if esep {
  25267. dd.ReadMapElemValue()
  25268. }
  25269. if dd.TryDecodeAsNil() {
  25270. if d.h.DeleteOnNilMapValue {
  25271. delete(v, mk)
  25272. } else {
  25273. v[mk] = 0
  25274. }
  25275. continue
  25276. }
  25277. mv = int32(dd.DecodeInt(32))
  25278. if v != nil {
  25279. v[mk] = mv
  25280. }
  25281. }
  25282. dd.ReadMapEnd()
  25283. return v, changed
  25284. }
  25285. func (d *Decoder) fastpathDecMapUintptrInt64R(f *codecFnInfo, rv reflect.Value) {
  25286. if rv.Kind() == reflect.Ptr {
  25287. vp := rv2i(rv).(*map[uintptr]int64)
  25288. if v, changed := fastpathTV.DecMapUintptrInt64V(*vp, true, d); changed {
  25289. *vp = v
  25290. }
  25291. return
  25292. }
  25293. fastpathTV.DecMapUintptrInt64V(rv2i(rv).(map[uintptr]int64), false, d)
  25294. }
  25295. func (f fastpathT) DecMapUintptrInt64X(vp *map[uintptr]int64, d *Decoder) {
  25296. if v, changed := f.DecMapUintptrInt64V(*vp, true, d); changed {
  25297. *vp = v
  25298. }
  25299. }
  25300. func (_ fastpathT) DecMapUintptrInt64V(v map[uintptr]int64, canChange bool,
  25301. d *Decoder) (_ map[uintptr]int64, changed bool) {
  25302. dd, esep := d.d, d.hh.hasElemSeparators()
  25303. containerLen := dd.ReadMapStart()
  25304. if canChange && v == nil {
  25305. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  25306. v = make(map[uintptr]int64, xlen)
  25307. changed = true
  25308. }
  25309. if containerLen == 0 {
  25310. dd.ReadMapEnd()
  25311. return v, changed
  25312. }
  25313. var mk uintptr
  25314. var mv int64
  25315. hasLen := containerLen > 0
  25316. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25317. if esep {
  25318. dd.ReadMapElemKey()
  25319. }
  25320. mk = uintptr(dd.DecodeUint(uintBitsize))
  25321. if esep {
  25322. dd.ReadMapElemValue()
  25323. }
  25324. if dd.TryDecodeAsNil() {
  25325. if d.h.DeleteOnNilMapValue {
  25326. delete(v, mk)
  25327. } else {
  25328. v[mk] = 0
  25329. }
  25330. continue
  25331. }
  25332. mv = dd.DecodeInt(64)
  25333. if v != nil {
  25334. v[mk] = mv
  25335. }
  25336. }
  25337. dd.ReadMapEnd()
  25338. return v, changed
  25339. }
  25340. func (d *Decoder) fastpathDecMapUintptrFloat32R(f *codecFnInfo, rv reflect.Value) {
  25341. if rv.Kind() == reflect.Ptr {
  25342. vp := rv2i(rv).(*map[uintptr]float32)
  25343. if v, changed := fastpathTV.DecMapUintptrFloat32V(*vp, true, d); changed {
  25344. *vp = v
  25345. }
  25346. return
  25347. }
  25348. fastpathTV.DecMapUintptrFloat32V(rv2i(rv).(map[uintptr]float32), false, d)
  25349. }
  25350. func (f fastpathT) DecMapUintptrFloat32X(vp *map[uintptr]float32, d *Decoder) {
  25351. if v, changed := f.DecMapUintptrFloat32V(*vp, true, d); changed {
  25352. *vp = v
  25353. }
  25354. }
  25355. func (_ fastpathT) DecMapUintptrFloat32V(v map[uintptr]float32, canChange bool,
  25356. d *Decoder) (_ map[uintptr]float32, changed bool) {
  25357. dd, esep := d.d, d.hh.hasElemSeparators()
  25358. containerLen := dd.ReadMapStart()
  25359. if canChange && v == nil {
  25360. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  25361. v = make(map[uintptr]float32, xlen)
  25362. changed = true
  25363. }
  25364. if containerLen == 0 {
  25365. dd.ReadMapEnd()
  25366. return v, changed
  25367. }
  25368. var mk uintptr
  25369. var mv float32
  25370. hasLen := containerLen > 0
  25371. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25372. if esep {
  25373. dd.ReadMapElemKey()
  25374. }
  25375. mk = uintptr(dd.DecodeUint(uintBitsize))
  25376. if esep {
  25377. dd.ReadMapElemValue()
  25378. }
  25379. if dd.TryDecodeAsNil() {
  25380. if d.h.DeleteOnNilMapValue {
  25381. delete(v, mk)
  25382. } else {
  25383. v[mk] = 0
  25384. }
  25385. continue
  25386. }
  25387. mv = float32(dd.DecodeFloat(true))
  25388. if v != nil {
  25389. v[mk] = mv
  25390. }
  25391. }
  25392. dd.ReadMapEnd()
  25393. return v, changed
  25394. }
  25395. func (d *Decoder) fastpathDecMapUintptrFloat64R(f *codecFnInfo, rv reflect.Value) {
  25396. if rv.Kind() == reflect.Ptr {
  25397. vp := rv2i(rv).(*map[uintptr]float64)
  25398. if v, changed := fastpathTV.DecMapUintptrFloat64V(*vp, true, d); changed {
  25399. *vp = v
  25400. }
  25401. return
  25402. }
  25403. fastpathTV.DecMapUintptrFloat64V(rv2i(rv).(map[uintptr]float64), false, d)
  25404. }
  25405. func (f fastpathT) DecMapUintptrFloat64X(vp *map[uintptr]float64, d *Decoder) {
  25406. if v, changed := f.DecMapUintptrFloat64V(*vp, true, d); changed {
  25407. *vp = v
  25408. }
  25409. }
  25410. func (_ fastpathT) DecMapUintptrFloat64V(v map[uintptr]float64, canChange bool,
  25411. d *Decoder) (_ map[uintptr]float64, changed bool) {
  25412. dd, esep := d.d, d.hh.hasElemSeparators()
  25413. containerLen := dd.ReadMapStart()
  25414. if canChange && v == nil {
  25415. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  25416. v = make(map[uintptr]float64, xlen)
  25417. changed = true
  25418. }
  25419. if containerLen == 0 {
  25420. dd.ReadMapEnd()
  25421. return v, changed
  25422. }
  25423. var mk uintptr
  25424. var mv float64
  25425. hasLen := containerLen > 0
  25426. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25427. if esep {
  25428. dd.ReadMapElemKey()
  25429. }
  25430. mk = uintptr(dd.DecodeUint(uintBitsize))
  25431. if esep {
  25432. dd.ReadMapElemValue()
  25433. }
  25434. if dd.TryDecodeAsNil() {
  25435. if d.h.DeleteOnNilMapValue {
  25436. delete(v, mk)
  25437. } else {
  25438. v[mk] = 0
  25439. }
  25440. continue
  25441. }
  25442. mv = dd.DecodeFloat(false)
  25443. if v != nil {
  25444. v[mk] = mv
  25445. }
  25446. }
  25447. dd.ReadMapEnd()
  25448. return v, changed
  25449. }
  25450. func (d *Decoder) fastpathDecMapUintptrBoolR(f *codecFnInfo, rv reflect.Value) {
  25451. if rv.Kind() == reflect.Ptr {
  25452. vp := rv2i(rv).(*map[uintptr]bool)
  25453. if v, changed := fastpathTV.DecMapUintptrBoolV(*vp, true, d); changed {
  25454. *vp = v
  25455. }
  25456. return
  25457. }
  25458. fastpathTV.DecMapUintptrBoolV(rv2i(rv).(map[uintptr]bool), false, d)
  25459. }
  25460. func (f fastpathT) DecMapUintptrBoolX(vp *map[uintptr]bool, d *Decoder) {
  25461. if v, changed := f.DecMapUintptrBoolV(*vp, true, d); changed {
  25462. *vp = v
  25463. }
  25464. }
  25465. func (_ fastpathT) DecMapUintptrBoolV(v map[uintptr]bool, canChange bool,
  25466. d *Decoder) (_ map[uintptr]bool, changed bool) {
  25467. dd, esep := d.d, d.hh.hasElemSeparators()
  25468. containerLen := dd.ReadMapStart()
  25469. if canChange && v == nil {
  25470. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  25471. v = make(map[uintptr]bool, xlen)
  25472. changed = true
  25473. }
  25474. if containerLen == 0 {
  25475. dd.ReadMapEnd()
  25476. return v, changed
  25477. }
  25478. var mk uintptr
  25479. var mv bool
  25480. hasLen := containerLen > 0
  25481. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25482. if esep {
  25483. dd.ReadMapElemKey()
  25484. }
  25485. mk = uintptr(dd.DecodeUint(uintBitsize))
  25486. if esep {
  25487. dd.ReadMapElemValue()
  25488. }
  25489. if dd.TryDecodeAsNil() {
  25490. if d.h.DeleteOnNilMapValue {
  25491. delete(v, mk)
  25492. } else {
  25493. v[mk] = false
  25494. }
  25495. continue
  25496. }
  25497. mv = dd.DecodeBool()
  25498. if v != nil {
  25499. v[mk] = mv
  25500. }
  25501. }
  25502. dd.ReadMapEnd()
  25503. return v, changed
  25504. }
  25505. func (d *Decoder) fastpathDecMapIntIntfR(f *codecFnInfo, rv reflect.Value) {
  25506. if rv.Kind() == reflect.Ptr {
  25507. vp := rv2i(rv).(*map[int]interface{})
  25508. if v, changed := fastpathTV.DecMapIntIntfV(*vp, true, d); changed {
  25509. *vp = v
  25510. }
  25511. return
  25512. }
  25513. fastpathTV.DecMapIntIntfV(rv2i(rv).(map[int]interface{}), false, d)
  25514. }
  25515. func (f fastpathT) DecMapIntIntfX(vp *map[int]interface{}, d *Decoder) {
  25516. if v, changed := f.DecMapIntIntfV(*vp, true, d); changed {
  25517. *vp = v
  25518. }
  25519. }
  25520. func (_ fastpathT) DecMapIntIntfV(v map[int]interface{}, canChange bool,
  25521. d *Decoder) (_ map[int]interface{}, changed bool) {
  25522. dd, esep := d.d, d.hh.hasElemSeparators()
  25523. containerLen := dd.ReadMapStart()
  25524. if canChange && v == nil {
  25525. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  25526. v = make(map[int]interface{}, xlen)
  25527. changed = true
  25528. }
  25529. if containerLen == 0 {
  25530. dd.ReadMapEnd()
  25531. return v, changed
  25532. }
  25533. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  25534. var mk int
  25535. var mv interface{}
  25536. hasLen := containerLen > 0
  25537. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25538. if esep {
  25539. dd.ReadMapElemKey()
  25540. }
  25541. mk = int(dd.DecodeInt(intBitsize))
  25542. if esep {
  25543. dd.ReadMapElemValue()
  25544. }
  25545. if dd.TryDecodeAsNil() {
  25546. if d.h.DeleteOnNilMapValue {
  25547. delete(v, mk)
  25548. } else {
  25549. v[mk] = nil
  25550. }
  25551. continue
  25552. }
  25553. if mapGet {
  25554. mv = v[mk]
  25555. } else {
  25556. mv = nil
  25557. }
  25558. d.decode(&mv)
  25559. if v != nil {
  25560. v[mk] = mv
  25561. }
  25562. }
  25563. dd.ReadMapEnd()
  25564. return v, changed
  25565. }
  25566. func (d *Decoder) fastpathDecMapIntStringR(f *codecFnInfo, rv reflect.Value) {
  25567. if rv.Kind() == reflect.Ptr {
  25568. vp := rv2i(rv).(*map[int]string)
  25569. if v, changed := fastpathTV.DecMapIntStringV(*vp, true, d); changed {
  25570. *vp = v
  25571. }
  25572. return
  25573. }
  25574. fastpathTV.DecMapIntStringV(rv2i(rv).(map[int]string), false, d)
  25575. }
  25576. func (f fastpathT) DecMapIntStringX(vp *map[int]string, d *Decoder) {
  25577. if v, changed := f.DecMapIntStringV(*vp, true, d); changed {
  25578. *vp = v
  25579. }
  25580. }
  25581. func (_ fastpathT) DecMapIntStringV(v map[int]string, canChange bool,
  25582. d *Decoder) (_ map[int]string, changed bool) {
  25583. dd, esep := d.d, d.hh.hasElemSeparators()
  25584. containerLen := dd.ReadMapStart()
  25585. if canChange && v == nil {
  25586. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  25587. v = make(map[int]string, xlen)
  25588. changed = true
  25589. }
  25590. if containerLen == 0 {
  25591. dd.ReadMapEnd()
  25592. return v, changed
  25593. }
  25594. var mk int
  25595. var mv string
  25596. hasLen := containerLen > 0
  25597. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25598. if esep {
  25599. dd.ReadMapElemKey()
  25600. }
  25601. mk = int(dd.DecodeInt(intBitsize))
  25602. if esep {
  25603. dd.ReadMapElemValue()
  25604. }
  25605. if dd.TryDecodeAsNil() {
  25606. if d.h.DeleteOnNilMapValue {
  25607. delete(v, mk)
  25608. } else {
  25609. v[mk] = ""
  25610. }
  25611. continue
  25612. }
  25613. mv = dd.DecodeString()
  25614. if v != nil {
  25615. v[mk] = mv
  25616. }
  25617. }
  25618. dd.ReadMapEnd()
  25619. return v, changed
  25620. }
  25621. func (d *Decoder) fastpathDecMapIntUintR(f *codecFnInfo, rv reflect.Value) {
  25622. if rv.Kind() == reflect.Ptr {
  25623. vp := rv2i(rv).(*map[int]uint)
  25624. if v, changed := fastpathTV.DecMapIntUintV(*vp, true, d); changed {
  25625. *vp = v
  25626. }
  25627. return
  25628. }
  25629. fastpathTV.DecMapIntUintV(rv2i(rv).(map[int]uint), false, d)
  25630. }
  25631. func (f fastpathT) DecMapIntUintX(vp *map[int]uint, d *Decoder) {
  25632. if v, changed := f.DecMapIntUintV(*vp, true, d); changed {
  25633. *vp = v
  25634. }
  25635. }
  25636. func (_ fastpathT) DecMapIntUintV(v map[int]uint, canChange bool,
  25637. d *Decoder) (_ map[int]uint, changed bool) {
  25638. dd, esep := d.d, d.hh.hasElemSeparators()
  25639. containerLen := dd.ReadMapStart()
  25640. if canChange && v == nil {
  25641. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  25642. v = make(map[int]uint, xlen)
  25643. changed = true
  25644. }
  25645. if containerLen == 0 {
  25646. dd.ReadMapEnd()
  25647. return v, changed
  25648. }
  25649. var mk int
  25650. var mv uint
  25651. hasLen := containerLen > 0
  25652. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25653. if esep {
  25654. dd.ReadMapElemKey()
  25655. }
  25656. mk = int(dd.DecodeInt(intBitsize))
  25657. if esep {
  25658. dd.ReadMapElemValue()
  25659. }
  25660. if dd.TryDecodeAsNil() {
  25661. if d.h.DeleteOnNilMapValue {
  25662. delete(v, mk)
  25663. } else {
  25664. v[mk] = 0
  25665. }
  25666. continue
  25667. }
  25668. mv = uint(dd.DecodeUint(uintBitsize))
  25669. if v != nil {
  25670. v[mk] = mv
  25671. }
  25672. }
  25673. dd.ReadMapEnd()
  25674. return v, changed
  25675. }
  25676. func (d *Decoder) fastpathDecMapIntUint8R(f *codecFnInfo, rv reflect.Value) {
  25677. if rv.Kind() == reflect.Ptr {
  25678. vp := rv2i(rv).(*map[int]uint8)
  25679. if v, changed := fastpathTV.DecMapIntUint8V(*vp, true, d); changed {
  25680. *vp = v
  25681. }
  25682. return
  25683. }
  25684. fastpathTV.DecMapIntUint8V(rv2i(rv).(map[int]uint8), false, d)
  25685. }
  25686. func (f fastpathT) DecMapIntUint8X(vp *map[int]uint8, d *Decoder) {
  25687. if v, changed := f.DecMapIntUint8V(*vp, true, d); changed {
  25688. *vp = v
  25689. }
  25690. }
  25691. func (_ fastpathT) DecMapIntUint8V(v map[int]uint8, canChange bool,
  25692. d *Decoder) (_ map[int]uint8, changed bool) {
  25693. dd, esep := d.d, d.hh.hasElemSeparators()
  25694. containerLen := dd.ReadMapStart()
  25695. if canChange && v == nil {
  25696. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  25697. v = make(map[int]uint8, xlen)
  25698. changed = true
  25699. }
  25700. if containerLen == 0 {
  25701. dd.ReadMapEnd()
  25702. return v, changed
  25703. }
  25704. var mk int
  25705. var mv uint8
  25706. hasLen := containerLen > 0
  25707. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25708. if esep {
  25709. dd.ReadMapElemKey()
  25710. }
  25711. mk = int(dd.DecodeInt(intBitsize))
  25712. if esep {
  25713. dd.ReadMapElemValue()
  25714. }
  25715. if dd.TryDecodeAsNil() {
  25716. if d.h.DeleteOnNilMapValue {
  25717. delete(v, mk)
  25718. } else {
  25719. v[mk] = 0
  25720. }
  25721. continue
  25722. }
  25723. mv = uint8(dd.DecodeUint(8))
  25724. if v != nil {
  25725. v[mk] = mv
  25726. }
  25727. }
  25728. dd.ReadMapEnd()
  25729. return v, changed
  25730. }
  25731. func (d *Decoder) fastpathDecMapIntUint16R(f *codecFnInfo, rv reflect.Value) {
  25732. if rv.Kind() == reflect.Ptr {
  25733. vp := rv2i(rv).(*map[int]uint16)
  25734. if v, changed := fastpathTV.DecMapIntUint16V(*vp, true, d); changed {
  25735. *vp = v
  25736. }
  25737. return
  25738. }
  25739. fastpathTV.DecMapIntUint16V(rv2i(rv).(map[int]uint16), false, d)
  25740. }
  25741. func (f fastpathT) DecMapIntUint16X(vp *map[int]uint16, d *Decoder) {
  25742. if v, changed := f.DecMapIntUint16V(*vp, true, d); changed {
  25743. *vp = v
  25744. }
  25745. }
  25746. func (_ fastpathT) DecMapIntUint16V(v map[int]uint16, canChange bool,
  25747. d *Decoder) (_ map[int]uint16, changed bool) {
  25748. dd, esep := d.d, d.hh.hasElemSeparators()
  25749. containerLen := dd.ReadMapStart()
  25750. if canChange && v == nil {
  25751. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  25752. v = make(map[int]uint16, xlen)
  25753. changed = true
  25754. }
  25755. if containerLen == 0 {
  25756. dd.ReadMapEnd()
  25757. return v, changed
  25758. }
  25759. var mk int
  25760. var mv uint16
  25761. hasLen := containerLen > 0
  25762. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25763. if esep {
  25764. dd.ReadMapElemKey()
  25765. }
  25766. mk = int(dd.DecodeInt(intBitsize))
  25767. if esep {
  25768. dd.ReadMapElemValue()
  25769. }
  25770. if dd.TryDecodeAsNil() {
  25771. if d.h.DeleteOnNilMapValue {
  25772. delete(v, mk)
  25773. } else {
  25774. v[mk] = 0
  25775. }
  25776. continue
  25777. }
  25778. mv = uint16(dd.DecodeUint(16))
  25779. if v != nil {
  25780. v[mk] = mv
  25781. }
  25782. }
  25783. dd.ReadMapEnd()
  25784. return v, changed
  25785. }
  25786. func (d *Decoder) fastpathDecMapIntUint32R(f *codecFnInfo, rv reflect.Value) {
  25787. if rv.Kind() == reflect.Ptr {
  25788. vp := rv2i(rv).(*map[int]uint32)
  25789. if v, changed := fastpathTV.DecMapIntUint32V(*vp, true, d); changed {
  25790. *vp = v
  25791. }
  25792. return
  25793. }
  25794. fastpathTV.DecMapIntUint32V(rv2i(rv).(map[int]uint32), false, d)
  25795. }
  25796. func (f fastpathT) DecMapIntUint32X(vp *map[int]uint32, d *Decoder) {
  25797. if v, changed := f.DecMapIntUint32V(*vp, true, d); changed {
  25798. *vp = v
  25799. }
  25800. }
  25801. func (_ fastpathT) DecMapIntUint32V(v map[int]uint32, canChange bool,
  25802. d *Decoder) (_ map[int]uint32, changed bool) {
  25803. dd, esep := d.d, d.hh.hasElemSeparators()
  25804. containerLen := dd.ReadMapStart()
  25805. if canChange && v == nil {
  25806. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  25807. v = make(map[int]uint32, xlen)
  25808. changed = true
  25809. }
  25810. if containerLen == 0 {
  25811. dd.ReadMapEnd()
  25812. return v, changed
  25813. }
  25814. var mk int
  25815. var mv uint32
  25816. hasLen := containerLen > 0
  25817. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25818. if esep {
  25819. dd.ReadMapElemKey()
  25820. }
  25821. mk = int(dd.DecodeInt(intBitsize))
  25822. if esep {
  25823. dd.ReadMapElemValue()
  25824. }
  25825. if dd.TryDecodeAsNil() {
  25826. if d.h.DeleteOnNilMapValue {
  25827. delete(v, mk)
  25828. } else {
  25829. v[mk] = 0
  25830. }
  25831. continue
  25832. }
  25833. mv = uint32(dd.DecodeUint(32))
  25834. if v != nil {
  25835. v[mk] = mv
  25836. }
  25837. }
  25838. dd.ReadMapEnd()
  25839. return v, changed
  25840. }
  25841. func (d *Decoder) fastpathDecMapIntUint64R(f *codecFnInfo, rv reflect.Value) {
  25842. if rv.Kind() == reflect.Ptr {
  25843. vp := rv2i(rv).(*map[int]uint64)
  25844. if v, changed := fastpathTV.DecMapIntUint64V(*vp, true, d); changed {
  25845. *vp = v
  25846. }
  25847. return
  25848. }
  25849. fastpathTV.DecMapIntUint64V(rv2i(rv).(map[int]uint64), false, d)
  25850. }
  25851. func (f fastpathT) DecMapIntUint64X(vp *map[int]uint64, d *Decoder) {
  25852. if v, changed := f.DecMapIntUint64V(*vp, true, d); changed {
  25853. *vp = v
  25854. }
  25855. }
  25856. func (_ fastpathT) DecMapIntUint64V(v map[int]uint64, canChange bool,
  25857. d *Decoder) (_ map[int]uint64, changed bool) {
  25858. dd, esep := d.d, d.hh.hasElemSeparators()
  25859. containerLen := dd.ReadMapStart()
  25860. if canChange && v == nil {
  25861. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  25862. v = make(map[int]uint64, xlen)
  25863. changed = true
  25864. }
  25865. if containerLen == 0 {
  25866. dd.ReadMapEnd()
  25867. return v, changed
  25868. }
  25869. var mk int
  25870. var mv uint64
  25871. hasLen := containerLen > 0
  25872. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25873. if esep {
  25874. dd.ReadMapElemKey()
  25875. }
  25876. mk = int(dd.DecodeInt(intBitsize))
  25877. if esep {
  25878. dd.ReadMapElemValue()
  25879. }
  25880. if dd.TryDecodeAsNil() {
  25881. if d.h.DeleteOnNilMapValue {
  25882. delete(v, mk)
  25883. } else {
  25884. v[mk] = 0
  25885. }
  25886. continue
  25887. }
  25888. mv = dd.DecodeUint(64)
  25889. if v != nil {
  25890. v[mk] = mv
  25891. }
  25892. }
  25893. dd.ReadMapEnd()
  25894. return v, changed
  25895. }
  25896. func (d *Decoder) fastpathDecMapIntUintptrR(f *codecFnInfo, rv reflect.Value) {
  25897. if rv.Kind() == reflect.Ptr {
  25898. vp := rv2i(rv).(*map[int]uintptr)
  25899. if v, changed := fastpathTV.DecMapIntUintptrV(*vp, true, d); changed {
  25900. *vp = v
  25901. }
  25902. return
  25903. }
  25904. fastpathTV.DecMapIntUintptrV(rv2i(rv).(map[int]uintptr), false, d)
  25905. }
  25906. func (f fastpathT) DecMapIntUintptrX(vp *map[int]uintptr, d *Decoder) {
  25907. if v, changed := f.DecMapIntUintptrV(*vp, true, d); changed {
  25908. *vp = v
  25909. }
  25910. }
  25911. func (_ fastpathT) DecMapIntUintptrV(v map[int]uintptr, canChange bool,
  25912. d *Decoder) (_ map[int]uintptr, changed bool) {
  25913. dd, esep := d.d, d.hh.hasElemSeparators()
  25914. containerLen := dd.ReadMapStart()
  25915. if canChange && v == nil {
  25916. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  25917. v = make(map[int]uintptr, xlen)
  25918. changed = true
  25919. }
  25920. if containerLen == 0 {
  25921. dd.ReadMapEnd()
  25922. return v, changed
  25923. }
  25924. var mk int
  25925. var mv uintptr
  25926. hasLen := containerLen > 0
  25927. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25928. if esep {
  25929. dd.ReadMapElemKey()
  25930. }
  25931. mk = int(dd.DecodeInt(intBitsize))
  25932. if esep {
  25933. dd.ReadMapElemValue()
  25934. }
  25935. if dd.TryDecodeAsNil() {
  25936. if d.h.DeleteOnNilMapValue {
  25937. delete(v, mk)
  25938. } else {
  25939. v[mk] = 0
  25940. }
  25941. continue
  25942. }
  25943. mv = uintptr(dd.DecodeUint(uintBitsize))
  25944. if v != nil {
  25945. v[mk] = mv
  25946. }
  25947. }
  25948. dd.ReadMapEnd()
  25949. return v, changed
  25950. }
  25951. func (d *Decoder) fastpathDecMapIntIntR(f *codecFnInfo, rv reflect.Value) {
  25952. if rv.Kind() == reflect.Ptr {
  25953. vp := rv2i(rv).(*map[int]int)
  25954. if v, changed := fastpathTV.DecMapIntIntV(*vp, true, d); changed {
  25955. *vp = v
  25956. }
  25957. return
  25958. }
  25959. fastpathTV.DecMapIntIntV(rv2i(rv).(map[int]int), false, d)
  25960. }
  25961. func (f fastpathT) DecMapIntIntX(vp *map[int]int, d *Decoder) {
  25962. if v, changed := f.DecMapIntIntV(*vp, true, d); changed {
  25963. *vp = v
  25964. }
  25965. }
  25966. func (_ fastpathT) DecMapIntIntV(v map[int]int, canChange bool,
  25967. d *Decoder) (_ map[int]int, changed bool) {
  25968. dd, esep := d.d, d.hh.hasElemSeparators()
  25969. containerLen := dd.ReadMapStart()
  25970. if canChange && v == nil {
  25971. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  25972. v = make(map[int]int, xlen)
  25973. changed = true
  25974. }
  25975. if containerLen == 0 {
  25976. dd.ReadMapEnd()
  25977. return v, changed
  25978. }
  25979. var mk int
  25980. var mv int
  25981. hasLen := containerLen > 0
  25982. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  25983. if esep {
  25984. dd.ReadMapElemKey()
  25985. }
  25986. mk = int(dd.DecodeInt(intBitsize))
  25987. if esep {
  25988. dd.ReadMapElemValue()
  25989. }
  25990. if dd.TryDecodeAsNil() {
  25991. if d.h.DeleteOnNilMapValue {
  25992. delete(v, mk)
  25993. } else {
  25994. v[mk] = 0
  25995. }
  25996. continue
  25997. }
  25998. mv = int(dd.DecodeInt(intBitsize))
  25999. if v != nil {
  26000. v[mk] = mv
  26001. }
  26002. }
  26003. dd.ReadMapEnd()
  26004. return v, changed
  26005. }
  26006. func (d *Decoder) fastpathDecMapIntInt8R(f *codecFnInfo, rv reflect.Value) {
  26007. if rv.Kind() == reflect.Ptr {
  26008. vp := rv2i(rv).(*map[int]int8)
  26009. if v, changed := fastpathTV.DecMapIntInt8V(*vp, true, d); changed {
  26010. *vp = v
  26011. }
  26012. return
  26013. }
  26014. fastpathTV.DecMapIntInt8V(rv2i(rv).(map[int]int8), false, d)
  26015. }
  26016. func (f fastpathT) DecMapIntInt8X(vp *map[int]int8, d *Decoder) {
  26017. if v, changed := f.DecMapIntInt8V(*vp, true, d); changed {
  26018. *vp = v
  26019. }
  26020. }
  26021. func (_ fastpathT) DecMapIntInt8V(v map[int]int8, canChange bool,
  26022. d *Decoder) (_ map[int]int8, changed bool) {
  26023. dd, esep := d.d, d.hh.hasElemSeparators()
  26024. containerLen := dd.ReadMapStart()
  26025. if canChange && v == nil {
  26026. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  26027. v = make(map[int]int8, xlen)
  26028. changed = true
  26029. }
  26030. if containerLen == 0 {
  26031. dd.ReadMapEnd()
  26032. return v, changed
  26033. }
  26034. var mk int
  26035. var mv int8
  26036. hasLen := containerLen > 0
  26037. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26038. if esep {
  26039. dd.ReadMapElemKey()
  26040. }
  26041. mk = int(dd.DecodeInt(intBitsize))
  26042. if esep {
  26043. dd.ReadMapElemValue()
  26044. }
  26045. if dd.TryDecodeAsNil() {
  26046. if d.h.DeleteOnNilMapValue {
  26047. delete(v, mk)
  26048. } else {
  26049. v[mk] = 0
  26050. }
  26051. continue
  26052. }
  26053. mv = int8(dd.DecodeInt(8))
  26054. if v != nil {
  26055. v[mk] = mv
  26056. }
  26057. }
  26058. dd.ReadMapEnd()
  26059. return v, changed
  26060. }
  26061. func (d *Decoder) fastpathDecMapIntInt16R(f *codecFnInfo, rv reflect.Value) {
  26062. if rv.Kind() == reflect.Ptr {
  26063. vp := rv2i(rv).(*map[int]int16)
  26064. if v, changed := fastpathTV.DecMapIntInt16V(*vp, true, d); changed {
  26065. *vp = v
  26066. }
  26067. return
  26068. }
  26069. fastpathTV.DecMapIntInt16V(rv2i(rv).(map[int]int16), false, d)
  26070. }
  26071. func (f fastpathT) DecMapIntInt16X(vp *map[int]int16, d *Decoder) {
  26072. if v, changed := f.DecMapIntInt16V(*vp, true, d); changed {
  26073. *vp = v
  26074. }
  26075. }
  26076. func (_ fastpathT) DecMapIntInt16V(v map[int]int16, canChange bool,
  26077. d *Decoder) (_ map[int]int16, changed bool) {
  26078. dd, esep := d.d, d.hh.hasElemSeparators()
  26079. containerLen := dd.ReadMapStart()
  26080. if canChange && v == nil {
  26081. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  26082. v = make(map[int]int16, xlen)
  26083. changed = true
  26084. }
  26085. if containerLen == 0 {
  26086. dd.ReadMapEnd()
  26087. return v, changed
  26088. }
  26089. var mk int
  26090. var mv int16
  26091. hasLen := containerLen > 0
  26092. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26093. if esep {
  26094. dd.ReadMapElemKey()
  26095. }
  26096. mk = int(dd.DecodeInt(intBitsize))
  26097. if esep {
  26098. dd.ReadMapElemValue()
  26099. }
  26100. if dd.TryDecodeAsNil() {
  26101. if d.h.DeleteOnNilMapValue {
  26102. delete(v, mk)
  26103. } else {
  26104. v[mk] = 0
  26105. }
  26106. continue
  26107. }
  26108. mv = int16(dd.DecodeInt(16))
  26109. if v != nil {
  26110. v[mk] = mv
  26111. }
  26112. }
  26113. dd.ReadMapEnd()
  26114. return v, changed
  26115. }
  26116. func (d *Decoder) fastpathDecMapIntInt32R(f *codecFnInfo, rv reflect.Value) {
  26117. if rv.Kind() == reflect.Ptr {
  26118. vp := rv2i(rv).(*map[int]int32)
  26119. if v, changed := fastpathTV.DecMapIntInt32V(*vp, true, d); changed {
  26120. *vp = v
  26121. }
  26122. return
  26123. }
  26124. fastpathTV.DecMapIntInt32V(rv2i(rv).(map[int]int32), false, d)
  26125. }
  26126. func (f fastpathT) DecMapIntInt32X(vp *map[int]int32, d *Decoder) {
  26127. if v, changed := f.DecMapIntInt32V(*vp, true, d); changed {
  26128. *vp = v
  26129. }
  26130. }
  26131. func (_ fastpathT) DecMapIntInt32V(v map[int]int32, canChange bool,
  26132. d *Decoder) (_ map[int]int32, changed bool) {
  26133. dd, esep := d.d, d.hh.hasElemSeparators()
  26134. containerLen := dd.ReadMapStart()
  26135. if canChange && v == nil {
  26136. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  26137. v = make(map[int]int32, xlen)
  26138. changed = true
  26139. }
  26140. if containerLen == 0 {
  26141. dd.ReadMapEnd()
  26142. return v, changed
  26143. }
  26144. var mk int
  26145. var mv int32
  26146. hasLen := containerLen > 0
  26147. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26148. if esep {
  26149. dd.ReadMapElemKey()
  26150. }
  26151. mk = int(dd.DecodeInt(intBitsize))
  26152. if esep {
  26153. dd.ReadMapElemValue()
  26154. }
  26155. if dd.TryDecodeAsNil() {
  26156. if d.h.DeleteOnNilMapValue {
  26157. delete(v, mk)
  26158. } else {
  26159. v[mk] = 0
  26160. }
  26161. continue
  26162. }
  26163. mv = int32(dd.DecodeInt(32))
  26164. if v != nil {
  26165. v[mk] = mv
  26166. }
  26167. }
  26168. dd.ReadMapEnd()
  26169. return v, changed
  26170. }
  26171. func (d *Decoder) fastpathDecMapIntInt64R(f *codecFnInfo, rv reflect.Value) {
  26172. if rv.Kind() == reflect.Ptr {
  26173. vp := rv2i(rv).(*map[int]int64)
  26174. if v, changed := fastpathTV.DecMapIntInt64V(*vp, true, d); changed {
  26175. *vp = v
  26176. }
  26177. return
  26178. }
  26179. fastpathTV.DecMapIntInt64V(rv2i(rv).(map[int]int64), false, d)
  26180. }
  26181. func (f fastpathT) DecMapIntInt64X(vp *map[int]int64, d *Decoder) {
  26182. if v, changed := f.DecMapIntInt64V(*vp, true, d); changed {
  26183. *vp = v
  26184. }
  26185. }
  26186. func (_ fastpathT) DecMapIntInt64V(v map[int]int64, canChange bool,
  26187. d *Decoder) (_ map[int]int64, changed bool) {
  26188. dd, esep := d.d, d.hh.hasElemSeparators()
  26189. containerLen := dd.ReadMapStart()
  26190. if canChange && v == nil {
  26191. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  26192. v = make(map[int]int64, xlen)
  26193. changed = true
  26194. }
  26195. if containerLen == 0 {
  26196. dd.ReadMapEnd()
  26197. return v, changed
  26198. }
  26199. var mk int
  26200. var mv int64
  26201. hasLen := containerLen > 0
  26202. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26203. if esep {
  26204. dd.ReadMapElemKey()
  26205. }
  26206. mk = int(dd.DecodeInt(intBitsize))
  26207. if esep {
  26208. dd.ReadMapElemValue()
  26209. }
  26210. if dd.TryDecodeAsNil() {
  26211. if d.h.DeleteOnNilMapValue {
  26212. delete(v, mk)
  26213. } else {
  26214. v[mk] = 0
  26215. }
  26216. continue
  26217. }
  26218. mv = dd.DecodeInt(64)
  26219. if v != nil {
  26220. v[mk] = mv
  26221. }
  26222. }
  26223. dd.ReadMapEnd()
  26224. return v, changed
  26225. }
  26226. func (d *Decoder) fastpathDecMapIntFloat32R(f *codecFnInfo, rv reflect.Value) {
  26227. if rv.Kind() == reflect.Ptr {
  26228. vp := rv2i(rv).(*map[int]float32)
  26229. if v, changed := fastpathTV.DecMapIntFloat32V(*vp, true, d); changed {
  26230. *vp = v
  26231. }
  26232. return
  26233. }
  26234. fastpathTV.DecMapIntFloat32V(rv2i(rv).(map[int]float32), false, d)
  26235. }
  26236. func (f fastpathT) DecMapIntFloat32X(vp *map[int]float32, d *Decoder) {
  26237. if v, changed := f.DecMapIntFloat32V(*vp, true, d); changed {
  26238. *vp = v
  26239. }
  26240. }
  26241. func (_ fastpathT) DecMapIntFloat32V(v map[int]float32, canChange bool,
  26242. d *Decoder) (_ map[int]float32, changed bool) {
  26243. dd, esep := d.d, d.hh.hasElemSeparators()
  26244. containerLen := dd.ReadMapStart()
  26245. if canChange && v == nil {
  26246. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  26247. v = make(map[int]float32, xlen)
  26248. changed = true
  26249. }
  26250. if containerLen == 0 {
  26251. dd.ReadMapEnd()
  26252. return v, changed
  26253. }
  26254. var mk int
  26255. var mv float32
  26256. hasLen := containerLen > 0
  26257. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26258. if esep {
  26259. dd.ReadMapElemKey()
  26260. }
  26261. mk = int(dd.DecodeInt(intBitsize))
  26262. if esep {
  26263. dd.ReadMapElemValue()
  26264. }
  26265. if dd.TryDecodeAsNil() {
  26266. if d.h.DeleteOnNilMapValue {
  26267. delete(v, mk)
  26268. } else {
  26269. v[mk] = 0
  26270. }
  26271. continue
  26272. }
  26273. mv = float32(dd.DecodeFloat(true))
  26274. if v != nil {
  26275. v[mk] = mv
  26276. }
  26277. }
  26278. dd.ReadMapEnd()
  26279. return v, changed
  26280. }
  26281. func (d *Decoder) fastpathDecMapIntFloat64R(f *codecFnInfo, rv reflect.Value) {
  26282. if rv.Kind() == reflect.Ptr {
  26283. vp := rv2i(rv).(*map[int]float64)
  26284. if v, changed := fastpathTV.DecMapIntFloat64V(*vp, true, d); changed {
  26285. *vp = v
  26286. }
  26287. return
  26288. }
  26289. fastpathTV.DecMapIntFloat64V(rv2i(rv).(map[int]float64), false, d)
  26290. }
  26291. func (f fastpathT) DecMapIntFloat64X(vp *map[int]float64, d *Decoder) {
  26292. if v, changed := f.DecMapIntFloat64V(*vp, true, d); changed {
  26293. *vp = v
  26294. }
  26295. }
  26296. func (_ fastpathT) DecMapIntFloat64V(v map[int]float64, canChange bool,
  26297. d *Decoder) (_ map[int]float64, changed bool) {
  26298. dd, esep := d.d, d.hh.hasElemSeparators()
  26299. containerLen := dd.ReadMapStart()
  26300. if canChange && v == nil {
  26301. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  26302. v = make(map[int]float64, xlen)
  26303. changed = true
  26304. }
  26305. if containerLen == 0 {
  26306. dd.ReadMapEnd()
  26307. return v, changed
  26308. }
  26309. var mk int
  26310. var mv float64
  26311. hasLen := containerLen > 0
  26312. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26313. if esep {
  26314. dd.ReadMapElemKey()
  26315. }
  26316. mk = int(dd.DecodeInt(intBitsize))
  26317. if esep {
  26318. dd.ReadMapElemValue()
  26319. }
  26320. if dd.TryDecodeAsNil() {
  26321. if d.h.DeleteOnNilMapValue {
  26322. delete(v, mk)
  26323. } else {
  26324. v[mk] = 0
  26325. }
  26326. continue
  26327. }
  26328. mv = dd.DecodeFloat(false)
  26329. if v != nil {
  26330. v[mk] = mv
  26331. }
  26332. }
  26333. dd.ReadMapEnd()
  26334. return v, changed
  26335. }
  26336. func (d *Decoder) fastpathDecMapIntBoolR(f *codecFnInfo, rv reflect.Value) {
  26337. if rv.Kind() == reflect.Ptr {
  26338. vp := rv2i(rv).(*map[int]bool)
  26339. if v, changed := fastpathTV.DecMapIntBoolV(*vp, true, d); changed {
  26340. *vp = v
  26341. }
  26342. return
  26343. }
  26344. fastpathTV.DecMapIntBoolV(rv2i(rv).(map[int]bool), false, d)
  26345. }
  26346. func (f fastpathT) DecMapIntBoolX(vp *map[int]bool, d *Decoder) {
  26347. if v, changed := f.DecMapIntBoolV(*vp, true, d); changed {
  26348. *vp = v
  26349. }
  26350. }
  26351. func (_ fastpathT) DecMapIntBoolV(v map[int]bool, canChange bool,
  26352. d *Decoder) (_ map[int]bool, changed bool) {
  26353. dd, esep := d.d, d.hh.hasElemSeparators()
  26354. containerLen := dd.ReadMapStart()
  26355. if canChange && v == nil {
  26356. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  26357. v = make(map[int]bool, xlen)
  26358. changed = true
  26359. }
  26360. if containerLen == 0 {
  26361. dd.ReadMapEnd()
  26362. return v, changed
  26363. }
  26364. var mk int
  26365. var mv bool
  26366. hasLen := containerLen > 0
  26367. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26368. if esep {
  26369. dd.ReadMapElemKey()
  26370. }
  26371. mk = int(dd.DecodeInt(intBitsize))
  26372. if esep {
  26373. dd.ReadMapElemValue()
  26374. }
  26375. if dd.TryDecodeAsNil() {
  26376. if d.h.DeleteOnNilMapValue {
  26377. delete(v, mk)
  26378. } else {
  26379. v[mk] = false
  26380. }
  26381. continue
  26382. }
  26383. mv = dd.DecodeBool()
  26384. if v != nil {
  26385. v[mk] = mv
  26386. }
  26387. }
  26388. dd.ReadMapEnd()
  26389. return v, changed
  26390. }
  26391. func (d *Decoder) fastpathDecMapInt8IntfR(f *codecFnInfo, rv reflect.Value) {
  26392. if rv.Kind() == reflect.Ptr {
  26393. vp := rv2i(rv).(*map[int8]interface{})
  26394. if v, changed := fastpathTV.DecMapInt8IntfV(*vp, true, d); changed {
  26395. *vp = v
  26396. }
  26397. return
  26398. }
  26399. fastpathTV.DecMapInt8IntfV(rv2i(rv).(map[int8]interface{}), false, d)
  26400. }
  26401. func (f fastpathT) DecMapInt8IntfX(vp *map[int8]interface{}, d *Decoder) {
  26402. if v, changed := f.DecMapInt8IntfV(*vp, true, d); changed {
  26403. *vp = v
  26404. }
  26405. }
  26406. func (_ fastpathT) DecMapInt8IntfV(v map[int8]interface{}, canChange bool,
  26407. d *Decoder) (_ map[int8]interface{}, changed bool) {
  26408. dd, esep := d.d, d.hh.hasElemSeparators()
  26409. containerLen := dd.ReadMapStart()
  26410. if canChange && v == nil {
  26411. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  26412. v = make(map[int8]interface{}, xlen)
  26413. changed = true
  26414. }
  26415. if containerLen == 0 {
  26416. dd.ReadMapEnd()
  26417. return v, changed
  26418. }
  26419. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  26420. var mk int8
  26421. var mv interface{}
  26422. hasLen := containerLen > 0
  26423. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26424. if esep {
  26425. dd.ReadMapElemKey()
  26426. }
  26427. mk = int8(dd.DecodeInt(8))
  26428. if esep {
  26429. dd.ReadMapElemValue()
  26430. }
  26431. if dd.TryDecodeAsNil() {
  26432. if d.h.DeleteOnNilMapValue {
  26433. delete(v, mk)
  26434. } else {
  26435. v[mk] = nil
  26436. }
  26437. continue
  26438. }
  26439. if mapGet {
  26440. mv = v[mk]
  26441. } else {
  26442. mv = nil
  26443. }
  26444. d.decode(&mv)
  26445. if v != nil {
  26446. v[mk] = mv
  26447. }
  26448. }
  26449. dd.ReadMapEnd()
  26450. return v, changed
  26451. }
  26452. func (d *Decoder) fastpathDecMapInt8StringR(f *codecFnInfo, rv reflect.Value) {
  26453. if rv.Kind() == reflect.Ptr {
  26454. vp := rv2i(rv).(*map[int8]string)
  26455. if v, changed := fastpathTV.DecMapInt8StringV(*vp, true, d); changed {
  26456. *vp = v
  26457. }
  26458. return
  26459. }
  26460. fastpathTV.DecMapInt8StringV(rv2i(rv).(map[int8]string), false, d)
  26461. }
  26462. func (f fastpathT) DecMapInt8StringX(vp *map[int8]string, d *Decoder) {
  26463. if v, changed := f.DecMapInt8StringV(*vp, true, d); changed {
  26464. *vp = v
  26465. }
  26466. }
  26467. func (_ fastpathT) DecMapInt8StringV(v map[int8]string, canChange bool,
  26468. d *Decoder) (_ map[int8]string, changed bool) {
  26469. dd, esep := d.d, d.hh.hasElemSeparators()
  26470. containerLen := dd.ReadMapStart()
  26471. if canChange && v == nil {
  26472. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  26473. v = make(map[int8]string, xlen)
  26474. changed = true
  26475. }
  26476. if containerLen == 0 {
  26477. dd.ReadMapEnd()
  26478. return v, changed
  26479. }
  26480. var mk int8
  26481. var mv string
  26482. hasLen := containerLen > 0
  26483. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26484. if esep {
  26485. dd.ReadMapElemKey()
  26486. }
  26487. mk = int8(dd.DecodeInt(8))
  26488. if esep {
  26489. dd.ReadMapElemValue()
  26490. }
  26491. if dd.TryDecodeAsNil() {
  26492. if d.h.DeleteOnNilMapValue {
  26493. delete(v, mk)
  26494. } else {
  26495. v[mk] = ""
  26496. }
  26497. continue
  26498. }
  26499. mv = dd.DecodeString()
  26500. if v != nil {
  26501. v[mk] = mv
  26502. }
  26503. }
  26504. dd.ReadMapEnd()
  26505. return v, changed
  26506. }
  26507. func (d *Decoder) fastpathDecMapInt8UintR(f *codecFnInfo, rv reflect.Value) {
  26508. if rv.Kind() == reflect.Ptr {
  26509. vp := rv2i(rv).(*map[int8]uint)
  26510. if v, changed := fastpathTV.DecMapInt8UintV(*vp, true, d); changed {
  26511. *vp = v
  26512. }
  26513. return
  26514. }
  26515. fastpathTV.DecMapInt8UintV(rv2i(rv).(map[int8]uint), false, d)
  26516. }
  26517. func (f fastpathT) DecMapInt8UintX(vp *map[int8]uint, d *Decoder) {
  26518. if v, changed := f.DecMapInt8UintV(*vp, true, d); changed {
  26519. *vp = v
  26520. }
  26521. }
  26522. func (_ fastpathT) DecMapInt8UintV(v map[int8]uint, canChange bool,
  26523. d *Decoder) (_ map[int8]uint, changed bool) {
  26524. dd, esep := d.d, d.hh.hasElemSeparators()
  26525. containerLen := dd.ReadMapStart()
  26526. if canChange && v == nil {
  26527. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  26528. v = make(map[int8]uint, xlen)
  26529. changed = true
  26530. }
  26531. if containerLen == 0 {
  26532. dd.ReadMapEnd()
  26533. return v, changed
  26534. }
  26535. var mk int8
  26536. var mv uint
  26537. hasLen := containerLen > 0
  26538. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26539. if esep {
  26540. dd.ReadMapElemKey()
  26541. }
  26542. mk = int8(dd.DecodeInt(8))
  26543. if esep {
  26544. dd.ReadMapElemValue()
  26545. }
  26546. if dd.TryDecodeAsNil() {
  26547. if d.h.DeleteOnNilMapValue {
  26548. delete(v, mk)
  26549. } else {
  26550. v[mk] = 0
  26551. }
  26552. continue
  26553. }
  26554. mv = uint(dd.DecodeUint(uintBitsize))
  26555. if v != nil {
  26556. v[mk] = mv
  26557. }
  26558. }
  26559. dd.ReadMapEnd()
  26560. return v, changed
  26561. }
  26562. func (d *Decoder) fastpathDecMapInt8Uint8R(f *codecFnInfo, rv reflect.Value) {
  26563. if rv.Kind() == reflect.Ptr {
  26564. vp := rv2i(rv).(*map[int8]uint8)
  26565. if v, changed := fastpathTV.DecMapInt8Uint8V(*vp, true, d); changed {
  26566. *vp = v
  26567. }
  26568. return
  26569. }
  26570. fastpathTV.DecMapInt8Uint8V(rv2i(rv).(map[int8]uint8), false, d)
  26571. }
  26572. func (f fastpathT) DecMapInt8Uint8X(vp *map[int8]uint8, d *Decoder) {
  26573. if v, changed := f.DecMapInt8Uint8V(*vp, true, d); changed {
  26574. *vp = v
  26575. }
  26576. }
  26577. func (_ fastpathT) DecMapInt8Uint8V(v map[int8]uint8, canChange bool,
  26578. d *Decoder) (_ map[int8]uint8, changed bool) {
  26579. dd, esep := d.d, d.hh.hasElemSeparators()
  26580. containerLen := dd.ReadMapStart()
  26581. if canChange && v == nil {
  26582. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  26583. v = make(map[int8]uint8, xlen)
  26584. changed = true
  26585. }
  26586. if containerLen == 0 {
  26587. dd.ReadMapEnd()
  26588. return v, changed
  26589. }
  26590. var mk int8
  26591. var mv uint8
  26592. hasLen := containerLen > 0
  26593. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26594. if esep {
  26595. dd.ReadMapElemKey()
  26596. }
  26597. mk = int8(dd.DecodeInt(8))
  26598. if esep {
  26599. dd.ReadMapElemValue()
  26600. }
  26601. if dd.TryDecodeAsNil() {
  26602. if d.h.DeleteOnNilMapValue {
  26603. delete(v, mk)
  26604. } else {
  26605. v[mk] = 0
  26606. }
  26607. continue
  26608. }
  26609. mv = uint8(dd.DecodeUint(8))
  26610. if v != nil {
  26611. v[mk] = mv
  26612. }
  26613. }
  26614. dd.ReadMapEnd()
  26615. return v, changed
  26616. }
  26617. func (d *Decoder) fastpathDecMapInt8Uint16R(f *codecFnInfo, rv reflect.Value) {
  26618. if rv.Kind() == reflect.Ptr {
  26619. vp := rv2i(rv).(*map[int8]uint16)
  26620. if v, changed := fastpathTV.DecMapInt8Uint16V(*vp, true, d); changed {
  26621. *vp = v
  26622. }
  26623. return
  26624. }
  26625. fastpathTV.DecMapInt8Uint16V(rv2i(rv).(map[int8]uint16), false, d)
  26626. }
  26627. func (f fastpathT) DecMapInt8Uint16X(vp *map[int8]uint16, d *Decoder) {
  26628. if v, changed := f.DecMapInt8Uint16V(*vp, true, d); changed {
  26629. *vp = v
  26630. }
  26631. }
  26632. func (_ fastpathT) DecMapInt8Uint16V(v map[int8]uint16, canChange bool,
  26633. d *Decoder) (_ map[int8]uint16, changed bool) {
  26634. dd, esep := d.d, d.hh.hasElemSeparators()
  26635. containerLen := dd.ReadMapStart()
  26636. if canChange && v == nil {
  26637. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  26638. v = make(map[int8]uint16, xlen)
  26639. changed = true
  26640. }
  26641. if containerLen == 0 {
  26642. dd.ReadMapEnd()
  26643. return v, changed
  26644. }
  26645. var mk int8
  26646. var mv uint16
  26647. hasLen := containerLen > 0
  26648. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26649. if esep {
  26650. dd.ReadMapElemKey()
  26651. }
  26652. mk = int8(dd.DecodeInt(8))
  26653. if esep {
  26654. dd.ReadMapElemValue()
  26655. }
  26656. if dd.TryDecodeAsNil() {
  26657. if d.h.DeleteOnNilMapValue {
  26658. delete(v, mk)
  26659. } else {
  26660. v[mk] = 0
  26661. }
  26662. continue
  26663. }
  26664. mv = uint16(dd.DecodeUint(16))
  26665. if v != nil {
  26666. v[mk] = mv
  26667. }
  26668. }
  26669. dd.ReadMapEnd()
  26670. return v, changed
  26671. }
  26672. func (d *Decoder) fastpathDecMapInt8Uint32R(f *codecFnInfo, rv reflect.Value) {
  26673. if rv.Kind() == reflect.Ptr {
  26674. vp := rv2i(rv).(*map[int8]uint32)
  26675. if v, changed := fastpathTV.DecMapInt8Uint32V(*vp, true, d); changed {
  26676. *vp = v
  26677. }
  26678. return
  26679. }
  26680. fastpathTV.DecMapInt8Uint32V(rv2i(rv).(map[int8]uint32), false, d)
  26681. }
  26682. func (f fastpathT) DecMapInt8Uint32X(vp *map[int8]uint32, d *Decoder) {
  26683. if v, changed := f.DecMapInt8Uint32V(*vp, true, d); changed {
  26684. *vp = v
  26685. }
  26686. }
  26687. func (_ fastpathT) DecMapInt8Uint32V(v map[int8]uint32, canChange bool,
  26688. d *Decoder) (_ map[int8]uint32, changed bool) {
  26689. dd, esep := d.d, d.hh.hasElemSeparators()
  26690. containerLen := dd.ReadMapStart()
  26691. if canChange && v == nil {
  26692. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  26693. v = make(map[int8]uint32, xlen)
  26694. changed = true
  26695. }
  26696. if containerLen == 0 {
  26697. dd.ReadMapEnd()
  26698. return v, changed
  26699. }
  26700. var mk int8
  26701. var mv uint32
  26702. hasLen := containerLen > 0
  26703. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26704. if esep {
  26705. dd.ReadMapElemKey()
  26706. }
  26707. mk = int8(dd.DecodeInt(8))
  26708. if esep {
  26709. dd.ReadMapElemValue()
  26710. }
  26711. if dd.TryDecodeAsNil() {
  26712. if d.h.DeleteOnNilMapValue {
  26713. delete(v, mk)
  26714. } else {
  26715. v[mk] = 0
  26716. }
  26717. continue
  26718. }
  26719. mv = uint32(dd.DecodeUint(32))
  26720. if v != nil {
  26721. v[mk] = mv
  26722. }
  26723. }
  26724. dd.ReadMapEnd()
  26725. return v, changed
  26726. }
  26727. func (d *Decoder) fastpathDecMapInt8Uint64R(f *codecFnInfo, rv reflect.Value) {
  26728. if rv.Kind() == reflect.Ptr {
  26729. vp := rv2i(rv).(*map[int8]uint64)
  26730. if v, changed := fastpathTV.DecMapInt8Uint64V(*vp, true, d); changed {
  26731. *vp = v
  26732. }
  26733. return
  26734. }
  26735. fastpathTV.DecMapInt8Uint64V(rv2i(rv).(map[int8]uint64), false, d)
  26736. }
  26737. func (f fastpathT) DecMapInt8Uint64X(vp *map[int8]uint64, d *Decoder) {
  26738. if v, changed := f.DecMapInt8Uint64V(*vp, true, d); changed {
  26739. *vp = v
  26740. }
  26741. }
  26742. func (_ fastpathT) DecMapInt8Uint64V(v map[int8]uint64, canChange bool,
  26743. d *Decoder) (_ map[int8]uint64, changed bool) {
  26744. dd, esep := d.d, d.hh.hasElemSeparators()
  26745. containerLen := dd.ReadMapStart()
  26746. if canChange && v == nil {
  26747. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  26748. v = make(map[int8]uint64, xlen)
  26749. changed = true
  26750. }
  26751. if containerLen == 0 {
  26752. dd.ReadMapEnd()
  26753. return v, changed
  26754. }
  26755. var mk int8
  26756. var mv uint64
  26757. hasLen := containerLen > 0
  26758. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26759. if esep {
  26760. dd.ReadMapElemKey()
  26761. }
  26762. mk = int8(dd.DecodeInt(8))
  26763. if esep {
  26764. dd.ReadMapElemValue()
  26765. }
  26766. if dd.TryDecodeAsNil() {
  26767. if d.h.DeleteOnNilMapValue {
  26768. delete(v, mk)
  26769. } else {
  26770. v[mk] = 0
  26771. }
  26772. continue
  26773. }
  26774. mv = dd.DecodeUint(64)
  26775. if v != nil {
  26776. v[mk] = mv
  26777. }
  26778. }
  26779. dd.ReadMapEnd()
  26780. return v, changed
  26781. }
  26782. func (d *Decoder) fastpathDecMapInt8UintptrR(f *codecFnInfo, rv reflect.Value) {
  26783. if rv.Kind() == reflect.Ptr {
  26784. vp := rv2i(rv).(*map[int8]uintptr)
  26785. if v, changed := fastpathTV.DecMapInt8UintptrV(*vp, true, d); changed {
  26786. *vp = v
  26787. }
  26788. return
  26789. }
  26790. fastpathTV.DecMapInt8UintptrV(rv2i(rv).(map[int8]uintptr), false, d)
  26791. }
  26792. func (f fastpathT) DecMapInt8UintptrX(vp *map[int8]uintptr, d *Decoder) {
  26793. if v, changed := f.DecMapInt8UintptrV(*vp, true, d); changed {
  26794. *vp = v
  26795. }
  26796. }
  26797. func (_ fastpathT) DecMapInt8UintptrV(v map[int8]uintptr, canChange bool,
  26798. d *Decoder) (_ map[int8]uintptr, changed bool) {
  26799. dd, esep := d.d, d.hh.hasElemSeparators()
  26800. containerLen := dd.ReadMapStart()
  26801. if canChange && v == nil {
  26802. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  26803. v = make(map[int8]uintptr, xlen)
  26804. changed = true
  26805. }
  26806. if containerLen == 0 {
  26807. dd.ReadMapEnd()
  26808. return v, changed
  26809. }
  26810. var mk int8
  26811. var mv uintptr
  26812. hasLen := containerLen > 0
  26813. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26814. if esep {
  26815. dd.ReadMapElemKey()
  26816. }
  26817. mk = int8(dd.DecodeInt(8))
  26818. if esep {
  26819. dd.ReadMapElemValue()
  26820. }
  26821. if dd.TryDecodeAsNil() {
  26822. if d.h.DeleteOnNilMapValue {
  26823. delete(v, mk)
  26824. } else {
  26825. v[mk] = 0
  26826. }
  26827. continue
  26828. }
  26829. mv = uintptr(dd.DecodeUint(uintBitsize))
  26830. if v != nil {
  26831. v[mk] = mv
  26832. }
  26833. }
  26834. dd.ReadMapEnd()
  26835. return v, changed
  26836. }
  26837. func (d *Decoder) fastpathDecMapInt8IntR(f *codecFnInfo, rv reflect.Value) {
  26838. if rv.Kind() == reflect.Ptr {
  26839. vp := rv2i(rv).(*map[int8]int)
  26840. if v, changed := fastpathTV.DecMapInt8IntV(*vp, true, d); changed {
  26841. *vp = v
  26842. }
  26843. return
  26844. }
  26845. fastpathTV.DecMapInt8IntV(rv2i(rv).(map[int8]int), false, d)
  26846. }
  26847. func (f fastpathT) DecMapInt8IntX(vp *map[int8]int, d *Decoder) {
  26848. if v, changed := f.DecMapInt8IntV(*vp, true, d); changed {
  26849. *vp = v
  26850. }
  26851. }
  26852. func (_ fastpathT) DecMapInt8IntV(v map[int8]int, canChange bool,
  26853. d *Decoder) (_ map[int8]int, changed bool) {
  26854. dd, esep := d.d, d.hh.hasElemSeparators()
  26855. containerLen := dd.ReadMapStart()
  26856. if canChange && v == nil {
  26857. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  26858. v = make(map[int8]int, xlen)
  26859. changed = true
  26860. }
  26861. if containerLen == 0 {
  26862. dd.ReadMapEnd()
  26863. return v, changed
  26864. }
  26865. var mk int8
  26866. var mv int
  26867. hasLen := containerLen > 0
  26868. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26869. if esep {
  26870. dd.ReadMapElemKey()
  26871. }
  26872. mk = int8(dd.DecodeInt(8))
  26873. if esep {
  26874. dd.ReadMapElemValue()
  26875. }
  26876. if dd.TryDecodeAsNil() {
  26877. if d.h.DeleteOnNilMapValue {
  26878. delete(v, mk)
  26879. } else {
  26880. v[mk] = 0
  26881. }
  26882. continue
  26883. }
  26884. mv = int(dd.DecodeInt(intBitsize))
  26885. if v != nil {
  26886. v[mk] = mv
  26887. }
  26888. }
  26889. dd.ReadMapEnd()
  26890. return v, changed
  26891. }
  26892. func (d *Decoder) fastpathDecMapInt8Int8R(f *codecFnInfo, rv reflect.Value) {
  26893. if rv.Kind() == reflect.Ptr {
  26894. vp := rv2i(rv).(*map[int8]int8)
  26895. if v, changed := fastpathTV.DecMapInt8Int8V(*vp, true, d); changed {
  26896. *vp = v
  26897. }
  26898. return
  26899. }
  26900. fastpathTV.DecMapInt8Int8V(rv2i(rv).(map[int8]int8), false, d)
  26901. }
  26902. func (f fastpathT) DecMapInt8Int8X(vp *map[int8]int8, d *Decoder) {
  26903. if v, changed := f.DecMapInt8Int8V(*vp, true, d); changed {
  26904. *vp = v
  26905. }
  26906. }
  26907. func (_ fastpathT) DecMapInt8Int8V(v map[int8]int8, canChange bool,
  26908. d *Decoder) (_ map[int8]int8, changed bool) {
  26909. dd, esep := d.d, d.hh.hasElemSeparators()
  26910. containerLen := dd.ReadMapStart()
  26911. if canChange && v == nil {
  26912. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  26913. v = make(map[int8]int8, xlen)
  26914. changed = true
  26915. }
  26916. if containerLen == 0 {
  26917. dd.ReadMapEnd()
  26918. return v, changed
  26919. }
  26920. var mk int8
  26921. var mv int8
  26922. hasLen := containerLen > 0
  26923. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26924. if esep {
  26925. dd.ReadMapElemKey()
  26926. }
  26927. mk = int8(dd.DecodeInt(8))
  26928. if esep {
  26929. dd.ReadMapElemValue()
  26930. }
  26931. if dd.TryDecodeAsNil() {
  26932. if d.h.DeleteOnNilMapValue {
  26933. delete(v, mk)
  26934. } else {
  26935. v[mk] = 0
  26936. }
  26937. continue
  26938. }
  26939. mv = int8(dd.DecodeInt(8))
  26940. if v != nil {
  26941. v[mk] = mv
  26942. }
  26943. }
  26944. dd.ReadMapEnd()
  26945. return v, changed
  26946. }
  26947. func (d *Decoder) fastpathDecMapInt8Int16R(f *codecFnInfo, rv reflect.Value) {
  26948. if rv.Kind() == reflect.Ptr {
  26949. vp := rv2i(rv).(*map[int8]int16)
  26950. if v, changed := fastpathTV.DecMapInt8Int16V(*vp, true, d); changed {
  26951. *vp = v
  26952. }
  26953. return
  26954. }
  26955. fastpathTV.DecMapInt8Int16V(rv2i(rv).(map[int8]int16), false, d)
  26956. }
  26957. func (f fastpathT) DecMapInt8Int16X(vp *map[int8]int16, d *Decoder) {
  26958. if v, changed := f.DecMapInt8Int16V(*vp, true, d); changed {
  26959. *vp = v
  26960. }
  26961. }
  26962. func (_ fastpathT) DecMapInt8Int16V(v map[int8]int16, canChange bool,
  26963. d *Decoder) (_ map[int8]int16, changed bool) {
  26964. dd, esep := d.d, d.hh.hasElemSeparators()
  26965. containerLen := dd.ReadMapStart()
  26966. if canChange && v == nil {
  26967. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  26968. v = make(map[int8]int16, xlen)
  26969. changed = true
  26970. }
  26971. if containerLen == 0 {
  26972. dd.ReadMapEnd()
  26973. return v, changed
  26974. }
  26975. var mk int8
  26976. var mv int16
  26977. hasLen := containerLen > 0
  26978. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  26979. if esep {
  26980. dd.ReadMapElemKey()
  26981. }
  26982. mk = int8(dd.DecodeInt(8))
  26983. if esep {
  26984. dd.ReadMapElemValue()
  26985. }
  26986. if dd.TryDecodeAsNil() {
  26987. if d.h.DeleteOnNilMapValue {
  26988. delete(v, mk)
  26989. } else {
  26990. v[mk] = 0
  26991. }
  26992. continue
  26993. }
  26994. mv = int16(dd.DecodeInt(16))
  26995. if v != nil {
  26996. v[mk] = mv
  26997. }
  26998. }
  26999. dd.ReadMapEnd()
  27000. return v, changed
  27001. }
  27002. func (d *Decoder) fastpathDecMapInt8Int32R(f *codecFnInfo, rv reflect.Value) {
  27003. if rv.Kind() == reflect.Ptr {
  27004. vp := rv2i(rv).(*map[int8]int32)
  27005. if v, changed := fastpathTV.DecMapInt8Int32V(*vp, true, d); changed {
  27006. *vp = v
  27007. }
  27008. return
  27009. }
  27010. fastpathTV.DecMapInt8Int32V(rv2i(rv).(map[int8]int32), false, d)
  27011. }
  27012. func (f fastpathT) DecMapInt8Int32X(vp *map[int8]int32, d *Decoder) {
  27013. if v, changed := f.DecMapInt8Int32V(*vp, true, d); changed {
  27014. *vp = v
  27015. }
  27016. }
  27017. func (_ fastpathT) DecMapInt8Int32V(v map[int8]int32, canChange bool,
  27018. d *Decoder) (_ map[int8]int32, changed bool) {
  27019. dd, esep := d.d, d.hh.hasElemSeparators()
  27020. containerLen := dd.ReadMapStart()
  27021. if canChange && v == nil {
  27022. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  27023. v = make(map[int8]int32, xlen)
  27024. changed = true
  27025. }
  27026. if containerLen == 0 {
  27027. dd.ReadMapEnd()
  27028. return v, changed
  27029. }
  27030. var mk int8
  27031. var mv int32
  27032. hasLen := containerLen > 0
  27033. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27034. if esep {
  27035. dd.ReadMapElemKey()
  27036. }
  27037. mk = int8(dd.DecodeInt(8))
  27038. if esep {
  27039. dd.ReadMapElemValue()
  27040. }
  27041. if dd.TryDecodeAsNil() {
  27042. if d.h.DeleteOnNilMapValue {
  27043. delete(v, mk)
  27044. } else {
  27045. v[mk] = 0
  27046. }
  27047. continue
  27048. }
  27049. mv = int32(dd.DecodeInt(32))
  27050. if v != nil {
  27051. v[mk] = mv
  27052. }
  27053. }
  27054. dd.ReadMapEnd()
  27055. return v, changed
  27056. }
  27057. func (d *Decoder) fastpathDecMapInt8Int64R(f *codecFnInfo, rv reflect.Value) {
  27058. if rv.Kind() == reflect.Ptr {
  27059. vp := rv2i(rv).(*map[int8]int64)
  27060. if v, changed := fastpathTV.DecMapInt8Int64V(*vp, true, d); changed {
  27061. *vp = v
  27062. }
  27063. return
  27064. }
  27065. fastpathTV.DecMapInt8Int64V(rv2i(rv).(map[int8]int64), false, d)
  27066. }
  27067. func (f fastpathT) DecMapInt8Int64X(vp *map[int8]int64, d *Decoder) {
  27068. if v, changed := f.DecMapInt8Int64V(*vp, true, d); changed {
  27069. *vp = v
  27070. }
  27071. }
  27072. func (_ fastpathT) DecMapInt8Int64V(v map[int8]int64, canChange bool,
  27073. d *Decoder) (_ map[int8]int64, changed bool) {
  27074. dd, esep := d.d, d.hh.hasElemSeparators()
  27075. containerLen := dd.ReadMapStart()
  27076. if canChange && v == nil {
  27077. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  27078. v = make(map[int8]int64, xlen)
  27079. changed = true
  27080. }
  27081. if containerLen == 0 {
  27082. dd.ReadMapEnd()
  27083. return v, changed
  27084. }
  27085. var mk int8
  27086. var mv int64
  27087. hasLen := containerLen > 0
  27088. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27089. if esep {
  27090. dd.ReadMapElemKey()
  27091. }
  27092. mk = int8(dd.DecodeInt(8))
  27093. if esep {
  27094. dd.ReadMapElemValue()
  27095. }
  27096. if dd.TryDecodeAsNil() {
  27097. if d.h.DeleteOnNilMapValue {
  27098. delete(v, mk)
  27099. } else {
  27100. v[mk] = 0
  27101. }
  27102. continue
  27103. }
  27104. mv = dd.DecodeInt(64)
  27105. if v != nil {
  27106. v[mk] = mv
  27107. }
  27108. }
  27109. dd.ReadMapEnd()
  27110. return v, changed
  27111. }
  27112. func (d *Decoder) fastpathDecMapInt8Float32R(f *codecFnInfo, rv reflect.Value) {
  27113. if rv.Kind() == reflect.Ptr {
  27114. vp := rv2i(rv).(*map[int8]float32)
  27115. if v, changed := fastpathTV.DecMapInt8Float32V(*vp, true, d); changed {
  27116. *vp = v
  27117. }
  27118. return
  27119. }
  27120. fastpathTV.DecMapInt8Float32V(rv2i(rv).(map[int8]float32), false, d)
  27121. }
  27122. func (f fastpathT) DecMapInt8Float32X(vp *map[int8]float32, d *Decoder) {
  27123. if v, changed := f.DecMapInt8Float32V(*vp, true, d); changed {
  27124. *vp = v
  27125. }
  27126. }
  27127. func (_ fastpathT) DecMapInt8Float32V(v map[int8]float32, canChange bool,
  27128. d *Decoder) (_ map[int8]float32, changed bool) {
  27129. dd, esep := d.d, d.hh.hasElemSeparators()
  27130. containerLen := dd.ReadMapStart()
  27131. if canChange && v == nil {
  27132. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  27133. v = make(map[int8]float32, xlen)
  27134. changed = true
  27135. }
  27136. if containerLen == 0 {
  27137. dd.ReadMapEnd()
  27138. return v, changed
  27139. }
  27140. var mk int8
  27141. var mv float32
  27142. hasLen := containerLen > 0
  27143. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27144. if esep {
  27145. dd.ReadMapElemKey()
  27146. }
  27147. mk = int8(dd.DecodeInt(8))
  27148. if esep {
  27149. dd.ReadMapElemValue()
  27150. }
  27151. if dd.TryDecodeAsNil() {
  27152. if d.h.DeleteOnNilMapValue {
  27153. delete(v, mk)
  27154. } else {
  27155. v[mk] = 0
  27156. }
  27157. continue
  27158. }
  27159. mv = float32(dd.DecodeFloat(true))
  27160. if v != nil {
  27161. v[mk] = mv
  27162. }
  27163. }
  27164. dd.ReadMapEnd()
  27165. return v, changed
  27166. }
  27167. func (d *Decoder) fastpathDecMapInt8Float64R(f *codecFnInfo, rv reflect.Value) {
  27168. if rv.Kind() == reflect.Ptr {
  27169. vp := rv2i(rv).(*map[int8]float64)
  27170. if v, changed := fastpathTV.DecMapInt8Float64V(*vp, true, d); changed {
  27171. *vp = v
  27172. }
  27173. return
  27174. }
  27175. fastpathTV.DecMapInt8Float64V(rv2i(rv).(map[int8]float64), false, d)
  27176. }
  27177. func (f fastpathT) DecMapInt8Float64X(vp *map[int8]float64, d *Decoder) {
  27178. if v, changed := f.DecMapInt8Float64V(*vp, true, d); changed {
  27179. *vp = v
  27180. }
  27181. }
  27182. func (_ fastpathT) DecMapInt8Float64V(v map[int8]float64, canChange bool,
  27183. d *Decoder) (_ map[int8]float64, changed bool) {
  27184. dd, esep := d.d, d.hh.hasElemSeparators()
  27185. containerLen := dd.ReadMapStart()
  27186. if canChange && v == nil {
  27187. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  27188. v = make(map[int8]float64, xlen)
  27189. changed = true
  27190. }
  27191. if containerLen == 0 {
  27192. dd.ReadMapEnd()
  27193. return v, changed
  27194. }
  27195. var mk int8
  27196. var mv float64
  27197. hasLen := containerLen > 0
  27198. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27199. if esep {
  27200. dd.ReadMapElemKey()
  27201. }
  27202. mk = int8(dd.DecodeInt(8))
  27203. if esep {
  27204. dd.ReadMapElemValue()
  27205. }
  27206. if dd.TryDecodeAsNil() {
  27207. if d.h.DeleteOnNilMapValue {
  27208. delete(v, mk)
  27209. } else {
  27210. v[mk] = 0
  27211. }
  27212. continue
  27213. }
  27214. mv = dd.DecodeFloat(false)
  27215. if v != nil {
  27216. v[mk] = mv
  27217. }
  27218. }
  27219. dd.ReadMapEnd()
  27220. return v, changed
  27221. }
  27222. func (d *Decoder) fastpathDecMapInt8BoolR(f *codecFnInfo, rv reflect.Value) {
  27223. if rv.Kind() == reflect.Ptr {
  27224. vp := rv2i(rv).(*map[int8]bool)
  27225. if v, changed := fastpathTV.DecMapInt8BoolV(*vp, true, d); changed {
  27226. *vp = v
  27227. }
  27228. return
  27229. }
  27230. fastpathTV.DecMapInt8BoolV(rv2i(rv).(map[int8]bool), false, d)
  27231. }
  27232. func (f fastpathT) DecMapInt8BoolX(vp *map[int8]bool, d *Decoder) {
  27233. if v, changed := f.DecMapInt8BoolV(*vp, true, d); changed {
  27234. *vp = v
  27235. }
  27236. }
  27237. func (_ fastpathT) DecMapInt8BoolV(v map[int8]bool, canChange bool,
  27238. d *Decoder) (_ map[int8]bool, changed bool) {
  27239. dd, esep := d.d, d.hh.hasElemSeparators()
  27240. containerLen := dd.ReadMapStart()
  27241. if canChange && v == nil {
  27242. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  27243. v = make(map[int8]bool, xlen)
  27244. changed = true
  27245. }
  27246. if containerLen == 0 {
  27247. dd.ReadMapEnd()
  27248. return v, changed
  27249. }
  27250. var mk int8
  27251. var mv bool
  27252. hasLen := containerLen > 0
  27253. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27254. if esep {
  27255. dd.ReadMapElemKey()
  27256. }
  27257. mk = int8(dd.DecodeInt(8))
  27258. if esep {
  27259. dd.ReadMapElemValue()
  27260. }
  27261. if dd.TryDecodeAsNil() {
  27262. if d.h.DeleteOnNilMapValue {
  27263. delete(v, mk)
  27264. } else {
  27265. v[mk] = false
  27266. }
  27267. continue
  27268. }
  27269. mv = dd.DecodeBool()
  27270. if v != nil {
  27271. v[mk] = mv
  27272. }
  27273. }
  27274. dd.ReadMapEnd()
  27275. return v, changed
  27276. }
  27277. func (d *Decoder) fastpathDecMapInt16IntfR(f *codecFnInfo, rv reflect.Value) {
  27278. if rv.Kind() == reflect.Ptr {
  27279. vp := rv2i(rv).(*map[int16]interface{})
  27280. if v, changed := fastpathTV.DecMapInt16IntfV(*vp, true, d); changed {
  27281. *vp = v
  27282. }
  27283. return
  27284. }
  27285. fastpathTV.DecMapInt16IntfV(rv2i(rv).(map[int16]interface{}), false, d)
  27286. }
  27287. func (f fastpathT) DecMapInt16IntfX(vp *map[int16]interface{}, d *Decoder) {
  27288. if v, changed := f.DecMapInt16IntfV(*vp, true, d); changed {
  27289. *vp = v
  27290. }
  27291. }
  27292. func (_ fastpathT) DecMapInt16IntfV(v map[int16]interface{}, canChange bool,
  27293. d *Decoder) (_ map[int16]interface{}, changed bool) {
  27294. dd, esep := d.d, d.hh.hasElemSeparators()
  27295. containerLen := dd.ReadMapStart()
  27296. if canChange && v == nil {
  27297. xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
  27298. v = make(map[int16]interface{}, xlen)
  27299. changed = true
  27300. }
  27301. if containerLen == 0 {
  27302. dd.ReadMapEnd()
  27303. return v, changed
  27304. }
  27305. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  27306. var mk int16
  27307. var mv interface{}
  27308. hasLen := containerLen > 0
  27309. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27310. if esep {
  27311. dd.ReadMapElemKey()
  27312. }
  27313. mk = int16(dd.DecodeInt(16))
  27314. if esep {
  27315. dd.ReadMapElemValue()
  27316. }
  27317. if dd.TryDecodeAsNil() {
  27318. if d.h.DeleteOnNilMapValue {
  27319. delete(v, mk)
  27320. } else {
  27321. v[mk] = nil
  27322. }
  27323. continue
  27324. }
  27325. if mapGet {
  27326. mv = v[mk]
  27327. } else {
  27328. mv = nil
  27329. }
  27330. d.decode(&mv)
  27331. if v != nil {
  27332. v[mk] = mv
  27333. }
  27334. }
  27335. dd.ReadMapEnd()
  27336. return v, changed
  27337. }
  27338. func (d *Decoder) fastpathDecMapInt16StringR(f *codecFnInfo, rv reflect.Value) {
  27339. if rv.Kind() == reflect.Ptr {
  27340. vp := rv2i(rv).(*map[int16]string)
  27341. if v, changed := fastpathTV.DecMapInt16StringV(*vp, true, d); changed {
  27342. *vp = v
  27343. }
  27344. return
  27345. }
  27346. fastpathTV.DecMapInt16StringV(rv2i(rv).(map[int16]string), false, d)
  27347. }
  27348. func (f fastpathT) DecMapInt16StringX(vp *map[int16]string, d *Decoder) {
  27349. if v, changed := f.DecMapInt16StringV(*vp, true, d); changed {
  27350. *vp = v
  27351. }
  27352. }
  27353. func (_ fastpathT) DecMapInt16StringV(v map[int16]string, canChange bool,
  27354. d *Decoder) (_ map[int16]string, changed bool) {
  27355. dd, esep := d.d, d.hh.hasElemSeparators()
  27356. containerLen := dd.ReadMapStart()
  27357. if canChange && v == nil {
  27358. xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
  27359. v = make(map[int16]string, xlen)
  27360. changed = true
  27361. }
  27362. if containerLen == 0 {
  27363. dd.ReadMapEnd()
  27364. return v, changed
  27365. }
  27366. var mk int16
  27367. var mv string
  27368. hasLen := containerLen > 0
  27369. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27370. if esep {
  27371. dd.ReadMapElemKey()
  27372. }
  27373. mk = int16(dd.DecodeInt(16))
  27374. if esep {
  27375. dd.ReadMapElemValue()
  27376. }
  27377. if dd.TryDecodeAsNil() {
  27378. if d.h.DeleteOnNilMapValue {
  27379. delete(v, mk)
  27380. } else {
  27381. v[mk] = ""
  27382. }
  27383. continue
  27384. }
  27385. mv = dd.DecodeString()
  27386. if v != nil {
  27387. v[mk] = mv
  27388. }
  27389. }
  27390. dd.ReadMapEnd()
  27391. return v, changed
  27392. }
  27393. func (d *Decoder) fastpathDecMapInt16UintR(f *codecFnInfo, rv reflect.Value) {
  27394. if rv.Kind() == reflect.Ptr {
  27395. vp := rv2i(rv).(*map[int16]uint)
  27396. if v, changed := fastpathTV.DecMapInt16UintV(*vp, true, d); changed {
  27397. *vp = v
  27398. }
  27399. return
  27400. }
  27401. fastpathTV.DecMapInt16UintV(rv2i(rv).(map[int16]uint), false, d)
  27402. }
  27403. func (f fastpathT) DecMapInt16UintX(vp *map[int16]uint, d *Decoder) {
  27404. if v, changed := f.DecMapInt16UintV(*vp, true, d); changed {
  27405. *vp = v
  27406. }
  27407. }
  27408. func (_ fastpathT) DecMapInt16UintV(v map[int16]uint, canChange bool,
  27409. d *Decoder) (_ map[int16]uint, changed bool) {
  27410. dd, esep := d.d, d.hh.hasElemSeparators()
  27411. containerLen := dd.ReadMapStart()
  27412. if canChange && v == nil {
  27413. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  27414. v = make(map[int16]uint, xlen)
  27415. changed = true
  27416. }
  27417. if containerLen == 0 {
  27418. dd.ReadMapEnd()
  27419. return v, changed
  27420. }
  27421. var mk int16
  27422. var mv uint
  27423. hasLen := containerLen > 0
  27424. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27425. if esep {
  27426. dd.ReadMapElemKey()
  27427. }
  27428. mk = int16(dd.DecodeInt(16))
  27429. if esep {
  27430. dd.ReadMapElemValue()
  27431. }
  27432. if dd.TryDecodeAsNil() {
  27433. if d.h.DeleteOnNilMapValue {
  27434. delete(v, mk)
  27435. } else {
  27436. v[mk] = 0
  27437. }
  27438. continue
  27439. }
  27440. mv = uint(dd.DecodeUint(uintBitsize))
  27441. if v != nil {
  27442. v[mk] = mv
  27443. }
  27444. }
  27445. dd.ReadMapEnd()
  27446. return v, changed
  27447. }
  27448. func (d *Decoder) fastpathDecMapInt16Uint8R(f *codecFnInfo, rv reflect.Value) {
  27449. if rv.Kind() == reflect.Ptr {
  27450. vp := rv2i(rv).(*map[int16]uint8)
  27451. if v, changed := fastpathTV.DecMapInt16Uint8V(*vp, true, d); changed {
  27452. *vp = v
  27453. }
  27454. return
  27455. }
  27456. fastpathTV.DecMapInt16Uint8V(rv2i(rv).(map[int16]uint8), false, d)
  27457. }
  27458. func (f fastpathT) DecMapInt16Uint8X(vp *map[int16]uint8, d *Decoder) {
  27459. if v, changed := f.DecMapInt16Uint8V(*vp, true, d); changed {
  27460. *vp = v
  27461. }
  27462. }
  27463. func (_ fastpathT) DecMapInt16Uint8V(v map[int16]uint8, canChange bool,
  27464. d *Decoder) (_ map[int16]uint8, changed bool) {
  27465. dd, esep := d.d, d.hh.hasElemSeparators()
  27466. containerLen := dd.ReadMapStart()
  27467. if canChange && v == nil {
  27468. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  27469. v = make(map[int16]uint8, xlen)
  27470. changed = true
  27471. }
  27472. if containerLen == 0 {
  27473. dd.ReadMapEnd()
  27474. return v, changed
  27475. }
  27476. var mk int16
  27477. var mv uint8
  27478. hasLen := containerLen > 0
  27479. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27480. if esep {
  27481. dd.ReadMapElemKey()
  27482. }
  27483. mk = int16(dd.DecodeInt(16))
  27484. if esep {
  27485. dd.ReadMapElemValue()
  27486. }
  27487. if dd.TryDecodeAsNil() {
  27488. if d.h.DeleteOnNilMapValue {
  27489. delete(v, mk)
  27490. } else {
  27491. v[mk] = 0
  27492. }
  27493. continue
  27494. }
  27495. mv = uint8(dd.DecodeUint(8))
  27496. if v != nil {
  27497. v[mk] = mv
  27498. }
  27499. }
  27500. dd.ReadMapEnd()
  27501. return v, changed
  27502. }
  27503. func (d *Decoder) fastpathDecMapInt16Uint16R(f *codecFnInfo, rv reflect.Value) {
  27504. if rv.Kind() == reflect.Ptr {
  27505. vp := rv2i(rv).(*map[int16]uint16)
  27506. if v, changed := fastpathTV.DecMapInt16Uint16V(*vp, true, d); changed {
  27507. *vp = v
  27508. }
  27509. return
  27510. }
  27511. fastpathTV.DecMapInt16Uint16V(rv2i(rv).(map[int16]uint16), false, d)
  27512. }
  27513. func (f fastpathT) DecMapInt16Uint16X(vp *map[int16]uint16, d *Decoder) {
  27514. if v, changed := f.DecMapInt16Uint16V(*vp, true, d); changed {
  27515. *vp = v
  27516. }
  27517. }
  27518. func (_ fastpathT) DecMapInt16Uint16V(v map[int16]uint16, canChange bool,
  27519. d *Decoder) (_ map[int16]uint16, changed bool) {
  27520. dd, esep := d.d, d.hh.hasElemSeparators()
  27521. containerLen := dd.ReadMapStart()
  27522. if canChange && v == nil {
  27523. xlen := decInferLen(containerLen, d.h.MaxInitLen, 4)
  27524. v = make(map[int16]uint16, xlen)
  27525. changed = true
  27526. }
  27527. if containerLen == 0 {
  27528. dd.ReadMapEnd()
  27529. return v, changed
  27530. }
  27531. var mk int16
  27532. var mv uint16
  27533. hasLen := containerLen > 0
  27534. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27535. if esep {
  27536. dd.ReadMapElemKey()
  27537. }
  27538. mk = int16(dd.DecodeInt(16))
  27539. if esep {
  27540. dd.ReadMapElemValue()
  27541. }
  27542. if dd.TryDecodeAsNil() {
  27543. if d.h.DeleteOnNilMapValue {
  27544. delete(v, mk)
  27545. } else {
  27546. v[mk] = 0
  27547. }
  27548. continue
  27549. }
  27550. mv = uint16(dd.DecodeUint(16))
  27551. if v != nil {
  27552. v[mk] = mv
  27553. }
  27554. }
  27555. dd.ReadMapEnd()
  27556. return v, changed
  27557. }
  27558. func (d *Decoder) fastpathDecMapInt16Uint32R(f *codecFnInfo, rv reflect.Value) {
  27559. if rv.Kind() == reflect.Ptr {
  27560. vp := rv2i(rv).(*map[int16]uint32)
  27561. if v, changed := fastpathTV.DecMapInt16Uint32V(*vp, true, d); changed {
  27562. *vp = v
  27563. }
  27564. return
  27565. }
  27566. fastpathTV.DecMapInt16Uint32V(rv2i(rv).(map[int16]uint32), false, d)
  27567. }
  27568. func (f fastpathT) DecMapInt16Uint32X(vp *map[int16]uint32, d *Decoder) {
  27569. if v, changed := f.DecMapInt16Uint32V(*vp, true, d); changed {
  27570. *vp = v
  27571. }
  27572. }
  27573. func (_ fastpathT) DecMapInt16Uint32V(v map[int16]uint32, canChange bool,
  27574. d *Decoder) (_ map[int16]uint32, changed bool) {
  27575. dd, esep := d.d, d.hh.hasElemSeparators()
  27576. containerLen := dd.ReadMapStart()
  27577. if canChange && v == nil {
  27578. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  27579. v = make(map[int16]uint32, xlen)
  27580. changed = true
  27581. }
  27582. if containerLen == 0 {
  27583. dd.ReadMapEnd()
  27584. return v, changed
  27585. }
  27586. var mk int16
  27587. var mv uint32
  27588. hasLen := containerLen > 0
  27589. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27590. if esep {
  27591. dd.ReadMapElemKey()
  27592. }
  27593. mk = int16(dd.DecodeInt(16))
  27594. if esep {
  27595. dd.ReadMapElemValue()
  27596. }
  27597. if dd.TryDecodeAsNil() {
  27598. if d.h.DeleteOnNilMapValue {
  27599. delete(v, mk)
  27600. } else {
  27601. v[mk] = 0
  27602. }
  27603. continue
  27604. }
  27605. mv = uint32(dd.DecodeUint(32))
  27606. if v != nil {
  27607. v[mk] = mv
  27608. }
  27609. }
  27610. dd.ReadMapEnd()
  27611. return v, changed
  27612. }
  27613. func (d *Decoder) fastpathDecMapInt16Uint64R(f *codecFnInfo, rv reflect.Value) {
  27614. if rv.Kind() == reflect.Ptr {
  27615. vp := rv2i(rv).(*map[int16]uint64)
  27616. if v, changed := fastpathTV.DecMapInt16Uint64V(*vp, true, d); changed {
  27617. *vp = v
  27618. }
  27619. return
  27620. }
  27621. fastpathTV.DecMapInt16Uint64V(rv2i(rv).(map[int16]uint64), false, d)
  27622. }
  27623. func (f fastpathT) DecMapInt16Uint64X(vp *map[int16]uint64, d *Decoder) {
  27624. if v, changed := f.DecMapInt16Uint64V(*vp, true, d); changed {
  27625. *vp = v
  27626. }
  27627. }
  27628. func (_ fastpathT) DecMapInt16Uint64V(v map[int16]uint64, canChange bool,
  27629. d *Decoder) (_ map[int16]uint64, changed bool) {
  27630. dd, esep := d.d, d.hh.hasElemSeparators()
  27631. containerLen := dd.ReadMapStart()
  27632. if canChange && v == nil {
  27633. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  27634. v = make(map[int16]uint64, xlen)
  27635. changed = true
  27636. }
  27637. if containerLen == 0 {
  27638. dd.ReadMapEnd()
  27639. return v, changed
  27640. }
  27641. var mk int16
  27642. var mv uint64
  27643. hasLen := containerLen > 0
  27644. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27645. if esep {
  27646. dd.ReadMapElemKey()
  27647. }
  27648. mk = int16(dd.DecodeInt(16))
  27649. if esep {
  27650. dd.ReadMapElemValue()
  27651. }
  27652. if dd.TryDecodeAsNil() {
  27653. if d.h.DeleteOnNilMapValue {
  27654. delete(v, mk)
  27655. } else {
  27656. v[mk] = 0
  27657. }
  27658. continue
  27659. }
  27660. mv = dd.DecodeUint(64)
  27661. if v != nil {
  27662. v[mk] = mv
  27663. }
  27664. }
  27665. dd.ReadMapEnd()
  27666. return v, changed
  27667. }
  27668. func (d *Decoder) fastpathDecMapInt16UintptrR(f *codecFnInfo, rv reflect.Value) {
  27669. if rv.Kind() == reflect.Ptr {
  27670. vp := rv2i(rv).(*map[int16]uintptr)
  27671. if v, changed := fastpathTV.DecMapInt16UintptrV(*vp, true, d); changed {
  27672. *vp = v
  27673. }
  27674. return
  27675. }
  27676. fastpathTV.DecMapInt16UintptrV(rv2i(rv).(map[int16]uintptr), false, d)
  27677. }
  27678. func (f fastpathT) DecMapInt16UintptrX(vp *map[int16]uintptr, d *Decoder) {
  27679. if v, changed := f.DecMapInt16UintptrV(*vp, true, d); changed {
  27680. *vp = v
  27681. }
  27682. }
  27683. func (_ fastpathT) DecMapInt16UintptrV(v map[int16]uintptr, canChange bool,
  27684. d *Decoder) (_ map[int16]uintptr, changed bool) {
  27685. dd, esep := d.d, d.hh.hasElemSeparators()
  27686. containerLen := dd.ReadMapStart()
  27687. if canChange && v == nil {
  27688. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  27689. v = make(map[int16]uintptr, xlen)
  27690. changed = true
  27691. }
  27692. if containerLen == 0 {
  27693. dd.ReadMapEnd()
  27694. return v, changed
  27695. }
  27696. var mk int16
  27697. var mv uintptr
  27698. hasLen := containerLen > 0
  27699. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27700. if esep {
  27701. dd.ReadMapElemKey()
  27702. }
  27703. mk = int16(dd.DecodeInt(16))
  27704. if esep {
  27705. dd.ReadMapElemValue()
  27706. }
  27707. if dd.TryDecodeAsNil() {
  27708. if d.h.DeleteOnNilMapValue {
  27709. delete(v, mk)
  27710. } else {
  27711. v[mk] = 0
  27712. }
  27713. continue
  27714. }
  27715. mv = uintptr(dd.DecodeUint(uintBitsize))
  27716. if v != nil {
  27717. v[mk] = mv
  27718. }
  27719. }
  27720. dd.ReadMapEnd()
  27721. return v, changed
  27722. }
  27723. func (d *Decoder) fastpathDecMapInt16IntR(f *codecFnInfo, rv reflect.Value) {
  27724. if rv.Kind() == reflect.Ptr {
  27725. vp := rv2i(rv).(*map[int16]int)
  27726. if v, changed := fastpathTV.DecMapInt16IntV(*vp, true, d); changed {
  27727. *vp = v
  27728. }
  27729. return
  27730. }
  27731. fastpathTV.DecMapInt16IntV(rv2i(rv).(map[int16]int), false, d)
  27732. }
  27733. func (f fastpathT) DecMapInt16IntX(vp *map[int16]int, d *Decoder) {
  27734. if v, changed := f.DecMapInt16IntV(*vp, true, d); changed {
  27735. *vp = v
  27736. }
  27737. }
  27738. func (_ fastpathT) DecMapInt16IntV(v map[int16]int, canChange bool,
  27739. d *Decoder) (_ map[int16]int, changed bool) {
  27740. dd, esep := d.d, d.hh.hasElemSeparators()
  27741. containerLen := dd.ReadMapStart()
  27742. if canChange && v == nil {
  27743. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  27744. v = make(map[int16]int, xlen)
  27745. changed = true
  27746. }
  27747. if containerLen == 0 {
  27748. dd.ReadMapEnd()
  27749. return v, changed
  27750. }
  27751. var mk int16
  27752. var mv int
  27753. hasLen := containerLen > 0
  27754. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27755. if esep {
  27756. dd.ReadMapElemKey()
  27757. }
  27758. mk = int16(dd.DecodeInt(16))
  27759. if esep {
  27760. dd.ReadMapElemValue()
  27761. }
  27762. if dd.TryDecodeAsNil() {
  27763. if d.h.DeleteOnNilMapValue {
  27764. delete(v, mk)
  27765. } else {
  27766. v[mk] = 0
  27767. }
  27768. continue
  27769. }
  27770. mv = int(dd.DecodeInt(intBitsize))
  27771. if v != nil {
  27772. v[mk] = mv
  27773. }
  27774. }
  27775. dd.ReadMapEnd()
  27776. return v, changed
  27777. }
  27778. func (d *Decoder) fastpathDecMapInt16Int8R(f *codecFnInfo, rv reflect.Value) {
  27779. if rv.Kind() == reflect.Ptr {
  27780. vp := rv2i(rv).(*map[int16]int8)
  27781. if v, changed := fastpathTV.DecMapInt16Int8V(*vp, true, d); changed {
  27782. *vp = v
  27783. }
  27784. return
  27785. }
  27786. fastpathTV.DecMapInt16Int8V(rv2i(rv).(map[int16]int8), false, d)
  27787. }
  27788. func (f fastpathT) DecMapInt16Int8X(vp *map[int16]int8, d *Decoder) {
  27789. if v, changed := f.DecMapInt16Int8V(*vp, true, d); changed {
  27790. *vp = v
  27791. }
  27792. }
  27793. func (_ fastpathT) DecMapInt16Int8V(v map[int16]int8, canChange bool,
  27794. d *Decoder) (_ map[int16]int8, changed bool) {
  27795. dd, esep := d.d, d.hh.hasElemSeparators()
  27796. containerLen := dd.ReadMapStart()
  27797. if canChange && v == nil {
  27798. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  27799. v = make(map[int16]int8, xlen)
  27800. changed = true
  27801. }
  27802. if containerLen == 0 {
  27803. dd.ReadMapEnd()
  27804. return v, changed
  27805. }
  27806. var mk int16
  27807. var mv int8
  27808. hasLen := containerLen > 0
  27809. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27810. if esep {
  27811. dd.ReadMapElemKey()
  27812. }
  27813. mk = int16(dd.DecodeInt(16))
  27814. if esep {
  27815. dd.ReadMapElemValue()
  27816. }
  27817. if dd.TryDecodeAsNil() {
  27818. if d.h.DeleteOnNilMapValue {
  27819. delete(v, mk)
  27820. } else {
  27821. v[mk] = 0
  27822. }
  27823. continue
  27824. }
  27825. mv = int8(dd.DecodeInt(8))
  27826. if v != nil {
  27827. v[mk] = mv
  27828. }
  27829. }
  27830. dd.ReadMapEnd()
  27831. return v, changed
  27832. }
  27833. func (d *Decoder) fastpathDecMapInt16Int16R(f *codecFnInfo, rv reflect.Value) {
  27834. if rv.Kind() == reflect.Ptr {
  27835. vp := rv2i(rv).(*map[int16]int16)
  27836. if v, changed := fastpathTV.DecMapInt16Int16V(*vp, true, d); changed {
  27837. *vp = v
  27838. }
  27839. return
  27840. }
  27841. fastpathTV.DecMapInt16Int16V(rv2i(rv).(map[int16]int16), false, d)
  27842. }
  27843. func (f fastpathT) DecMapInt16Int16X(vp *map[int16]int16, d *Decoder) {
  27844. if v, changed := f.DecMapInt16Int16V(*vp, true, d); changed {
  27845. *vp = v
  27846. }
  27847. }
  27848. func (_ fastpathT) DecMapInt16Int16V(v map[int16]int16, canChange bool,
  27849. d *Decoder) (_ map[int16]int16, changed bool) {
  27850. dd, esep := d.d, d.hh.hasElemSeparators()
  27851. containerLen := dd.ReadMapStart()
  27852. if canChange && v == nil {
  27853. xlen := decInferLen(containerLen, d.h.MaxInitLen, 4)
  27854. v = make(map[int16]int16, xlen)
  27855. changed = true
  27856. }
  27857. if containerLen == 0 {
  27858. dd.ReadMapEnd()
  27859. return v, changed
  27860. }
  27861. var mk int16
  27862. var mv int16
  27863. hasLen := containerLen > 0
  27864. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27865. if esep {
  27866. dd.ReadMapElemKey()
  27867. }
  27868. mk = int16(dd.DecodeInt(16))
  27869. if esep {
  27870. dd.ReadMapElemValue()
  27871. }
  27872. if dd.TryDecodeAsNil() {
  27873. if d.h.DeleteOnNilMapValue {
  27874. delete(v, mk)
  27875. } else {
  27876. v[mk] = 0
  27877. }
  27878. continue
  27879. }
  27880. mv = int16(dd.DecodeInt(16))
  27881. if v != nil {
  27882. v[mk] = mv
  27883. }
  27884. }
  27885. dd.ReadMapEnd()
  27886. return v, changed
  27887. }
  27888. func (d *Decoder) fastpathDecMapInt16Int32R(f *codecFnInfo, rv reflect.Value) {
  27889. if rv.Kind() == reflect.Ptr {
  27890. vp := rv2i(rv).(*map[int16]int32)
  27891. if v, changed := fastpathTV.DecMapInt16Int32V(*vp, true, d); changed {
  27892. *vp = v
  27893. }
  27894. return
  27895. }
  27896. fastpathTV.DecMapInt16Int32V(rv2i(rv).(map[int16]int32), false, d)
  27897. }
  27898. func (f fastpathT) DecMapInt16Int32X(vp *map[int16]int32, d *Decoder) {
  27899. if v, changed := f.DecMapInt16Int32V(*vp, true, d); changed {
  27900. *vp = v
  27901. }
  27902. }
  27903. func (_ fastpathT) DecMapInt16Int32V(v map[int16]int32, canChange bool,
  27904. d *Decoder) (_ map[int16]int32, changed bool) {
  27905. dd, esep := d.d, d.hh.hasElemSeparators()
  27906. containerLen := dd.ReadMapStart()
  27907. if canChange && v == nil {
  27908. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  27909. v = make(map[int16]int32, xlen)
  27910. changed = true
  27911. }
  27912. if containerLen == 0 {
  27913. dd.ReadMapEnd()
  27914. return v, changed
  27915. }
  27916. var mk int16
  27917. var mv int32
  27918. hasLen := containerLen > 0
  27919. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27920. if esep {
  27921. dd.ReadMapElemKey()
  27922. }
  27923. mk = int16(dd.DecodeInt(16))
  27924. if esep {
  27925. dd.ReadMapElemValue()
  27926. }
  27927. if dd.TryDecodeAsNil() {
  27928. if d.h.DeleteOnNilMapValue {
  27929. delete(v, mk)
  27930. } else {
  27931. v[mk] = 0
  27932. }
  27933. continue
  27934. }
  27935. mv = int32(dd.DecodeInt(32))
  27936. if v != nil {
  27937. v[mk] = mv
  27938. }
  27939. }
  27940. dd.ReadMapEnd()
  27941. return v, changed
  27942. }
  27943. func (d *Decoder) fastpathDecMapInt16Int64R(f *codecFnInfo, rv reflect.Value) {
  27944. if rv.Kind() == reflect.Ptr {
  27945. vp := rv2i(rv).(*map[int16]int64)
  27946. if v, changed := fastpathTV.DecMapInt16Int64V(*vp, true, d); changed {
  27947. *vp = v
  27948. }
  27949. return
  27950. }
  27951. fastpathTV.DecMapInt16Int64V(rv2i(rv).(map[int16]int64), false, d)
  27952. }
  27953. func (f fastpathT) DecMapInt16Int64X(vp *map[int16]int64, d *Decoder) {
  27954. if v, changed := f.DecMapInt16Int64V(*vp, true, d); changed {
  27955. *vp = v
  27956. }
  27957. }
  27958. func (_ fastpathT) DecMapInt16Int64V(v map[int16]int64, canChange bool,
  27959. d *Decoder) (_ map[int16]int64, changed bool) {
  27960. dd, esep := d.d, d.hh.hasElemSeparators()
  27961. containerLen := dd.ReadMapStart()
  27962. if canChange && v == nil {
  27963. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  27964. v = make(map[int16]int64, xlen)
  27965. changed = true
  27966. }
  27967. if containerLen == 0 {
  27968. dd.ReadMapEnd()
  27969. return v, changed
  27970. }
  27971. var mk int16
  27972. var mv int64
  27973. hasLen := containerLen > 0
  27974. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  27975. if esep {
  27976. dd.ReadMapElemKey()
  27977. }
  27978. mk = int16(dd.DecodeInt(16))
  27979. if esep {
  27980. dd.ReadMapElemValue()
  27981. }
  27982. if dd.TryDecodeAsNil() {
  27983. if d.h.DeleteOnNilMapValue {
  27984. delete(v, mk)
  27985. } else {
  27986. v[mk] = 0
  27987. }
  27988. continue
  27989. }
  27990. mv = dd.DecodeInt(64)
  27991. if v != nil {
  27992. v[mk] = mv
  27993. }
  27994. }
  27995. dd.ReadMapEnd()
  27996. return v, changed
  27997. }
  27998. func (d *Decoder) fastpathDecMapInt16Float32R(f *codecFnInfo, rv reflect.Value) {
  27999. if rv.Kind() == reflect.Ptr {
  28000. vp := rv2i(rv).(*map[int16]float32)
  28001. if v, changed := fastpathTV.DecMapInt16Float32V(*vp, true, d); changed {
  28002. *vp = v
  28003. }
  28004. return
  28005. }
  28006. fastpathTV.DecMapInt16Float32V(rv2i(rv).(map[int16]float32), false, d)
  28007. }
  28008. func (f fastpathT) DecMapInt16Float32X(vp *map[int16]float32, d *Decoder) {
  28009. if v, changed := f.DecMapInt16Float32V(*vp, true, d); changed {
  28010. *vp = v
  28011. }
  28012. }
  28013. func (_ fastpathT) DecMapInt16Float32V(v map[int16]float32, canChange bool,
  28014. d *Decoder) (_ map[int16]float32, changed bool) {
  28015. dd, esep := d.d, d.hh.hasElemSeparators()
  28016. containerLen := dd.ReadMapStart()
  28017. if canChange && v == nil {
  28018. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  28019. v = make(map[int16]float32, xlen)
  28020. changed = true
  28021. }
  28022. if containerLen == 0 {
  28023. dd.ReadMapEnd()
  28024. return v, changed
  28025. }
  28026. var mk int16
  28027. var mv float32
  28028. hasLen := containerLen > 0
  28029. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28030. if esep {
  28031. dd.ReadMapElemKey()
  28032. }
  28033. mk = int16(dd.DecodeInt(16))
  28034. if esep {
  28035. dd.ReadMapElemValue()
  28036. }
  28037. if dd.TryDecodeAsNil() {
  28038. if d.h.DeleteOnNilMapValue {
  28039. delete(v, mk)
  28040. } else {
  28041. v[mk] = 0
  28042. }
  28043. continue
  28044. }
  28045. mv = float32(dd.DecodeFloat(true))
  28046. if v != nil {
  28047. v[mk] = mv
  28048. }
  28049. }
  28050. dd.ReadMapEnd()
  28051. return v, changed
  28052. }
  28053. func (d *Decoder) fastpathDecMapInt16Float64R(f *codecFnInfo, rv reflect.Value) {
  28054. if rv.Kind() == reflect.Ptr {
  28055. vp := rv2i(rv).(*map[int16]float64)
  28056. if v, changed := fastpathTV.DecMapInt16Float64V(*vp, true, d); changed {
  28057. *vp = v
  28058. }
  28059. return
  28060. }
  28061. fastpathTV.DecMapInt16Float64V(rv2i(rv).(map[int16]float64), false, d)
  28062. }
  28063. func (f fastpathT) DecMapInt16Float64X(vp *map[int16]float64, d *Decoder) {
  28064. if v, changed := f.DecMapInt16Float64V(*vp, true, d); changed {
  28065. *vp = v
  28066. }
  28067. }
  28068. func (_ fastpathT) DecMapInt16Float64V(v map[int16]float64, canChange bool,
  28069. d *Decoder) (_ map[int16]float64, changed bool) {
  28070. dd, esep := d.d, d.hh.hasElemSeparators()
  28071. containerLen := dd.ReadMapStart()
  28072. if canChange && v == nil {
  28073. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  28074. v = make(map[int16]float64, xlen)
  28075. changed = true
  28076. }
  28077. if containerLen == 0 {
  28078. dd.ReadMapEnd()
  28079. return v, changed
  28080. }
  28081. var mk int16
  28082. var mv float64
  28083. hasLen := containerLen > 0
  28084. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28085. if esep {
  28086. dd.ReadMapElemKey()
  28087. }
  28088. mk = int16(dd.DecodeInt(16))
  28089. if esep {
  28090. dd.ReadMapElemValue()
  28091. }
  28092. if dd.TryDecodeAsNil() {
  28093. if d.h.DeleteOnNilMapValue {
  28094. delete(v, mk)
  28095. } else {
  28096. v[mk] = 0
  28097. }
  28098. continue
  28099. }
  28100. mv = dd.DecodeFloat(false)
  28101. if v != nil {
  28102. v[mk] = mv
  28103. }
  28104. }
  28105. dd.ReadMapEnd()
  28106. return v, changed
  28107. }
  28108. func (d *Decoder) fastpathDecMapInt16BoolR(f *codecFnInfo, rv reflect.Value) {
  28109. if rv.Kind() == reflect.Ptr {
  28110. vp := rv2i(rv).(*map[int16]bool)
  28111. if v, changed := fastpathTV.DecMapInt16BoolV(*vp, true, d); changed {
  28112. *vp = v
  28113. }
  28114. return
  28115. }
  28116. fastpathTV.DecMapInt16BoolV(rv2i(rv).(map[int16]bool), false, d)
  28117. }
  28118. func (f fastpathT) DecMapInt16BoolX(vp *map[int16]bool, d *Decoder) {
  28119. if v, changed := f.DecMapInt16BoolV(*vp, true, d); changed {
  28120. *vp = v
  28121. }
  28122. }
  28123. func (_ fastpathT) DecMapInt16BoolV(v map[int16]bool, canChange bool,
  28124. d *Decoder) (_ map[int16]bool, changed bool) {
  28125. dd, esep := d.d, d.hh.hasElemSeparators()
  28126. containerLen := dd.ReadMapStart()
  28127. if canChange && v == nil {
  28128. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  28129. v = make(map[int16]bool, xlen)
  28130. changed = true
  28131. }
  28132. if containerLen == 0 {
  28133. dd.ReadMapEnd()
  28134. return v, changed
  28135. }
  28136. var mk int16
  28137. var mv bool
  28138. hasLen := containerLen > 0
  28139. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28140. if esep {
  28141. dd.ReadMapElemKey()
  28142. }
  28143. mk = int16(dd.DecodeInt(16))
  28144. if esep {
  28145. dd.ReadMapElemValue()
  28146. }
  28147. if dd.TryDecodeAsNil() {
  28148. if d.h.DeleteOnNilMapValue {
  28149. delete(v, mk)
  28150. } else {
  28151. v[mk] = false
  28152. }
  28153. continue
  28154. }
  28155. mv = dd.DecodeBool()
  28156. if v != nil {
  28157. v[mk] = mv
  28158. }
  28159. }
  28160. dd.ReadMapEnd()
  28161. return v, changed
  28162. }
  28163. func (d *Decoder) fastpathDecMapInt32IntfR(f *codecFnInfo, rv reflect.Value) {
  28164. if rv.Kind() == reflect.Ptr {
  28165. vp := rv2i(rv).(*map[int32]interface{})
  28166. if v, changed := fastpathTV.DecMapInt32IntfV(*vp, true, d); changed {
  28167. *vp = v
  28168. }
  28169. return
  28170. }
  28171. fastpathTV.DecMapInt32IntfV(rv2i(rv).(map[int32]interface{}), false, d)
  28172. }
  28173. func (f fastpathT) DecMapInt32IntfX(vp *map[int32]interface{}, d *Decoder) {
  28174. if v, changed := f.DecMapInt32IntfV(*vp, true, d); changed {
  28175. *vp = v
  28176. }
  28177. }
  28178. func (_ fastpathT) DecMapInt32IntfV(v map[int32]interface{}, canChange bool,
  28179. d *Decoder) (_ map[int32]interface{}, changed bool) {
  28180. dd, esep := d.d, d.hh.hasElemSeparators()
  28181. containerLen := dd.ReadMapStart()
  28182. if canChange && v == nil {
  28183. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  28184. v = make(map[int32]interface{}, xlen)
  28185. changed = true
  28186. }
  28187. if containerLen == 0 {
  28188. dd.ReadMapEnd()
  28189. return v, changed
  28190. }
  28191. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  28192. var mk int32
  28193. var mv interface{}
  28194. hasLen := containerLen > 0
  28195. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28196. if esep {
  28197. dd.ReadMapElemKey()
  28198. }
  28199. mk = int32(dd.DecodeInt(32))
  28200. if esep {
  28201. dd.ReadMapElemValue()
  28202. }
  28203. if dd.TryDecodeAsNil() {
  28204. if d.h.DeleteOnNilMapValue {
  28205. delete(v, mk)
  28206. } else {
  28207. v[mk] = nil
  28208. }
  28209. continue
  28210. }
  28211. if mapGet {
  28212. mv = v[mk]
  28213. } else {
  28214. mv = nil
  28215. }
  28216. d.decode(&mv)
  28217. if v != nil {
  28218. v[mk] = mv
  28219. }
  28220. }
  28221. dd.ReadMapEnd()
  28222. return v, changed
  28223. }
  28224. func (d *Decoder) fastpathDecMapInt32StringR(f *codecFnInfo, rv reflect.Value) {
  28225. if rv.Kind() == reflect.Ptr {
  28226. vp := rv2i(rv).(*map[int32]string)
  28227. if v, changed := fastpathTV.DecMapInt32StringV(*vp, true, d); changed {
  28228. *vp = v
  28229. }
  28230. return
  28231. }
  28232. fastpathTV.DecMapInt32StringV(rv2i(rv).(map[int32]string), false, d)
  28233. }
  28234. func (f fastpathT) DecMapInt32StringX(vp *map[int32]string, d *Decoder) {
  28235. if v, changed := f.DecMapInt32StringV(*vp, true, d); changed {
  28236. *vp = v
  28237. }
  28238. }
  28239. func (_ fastpathT) DecMapInt32StringV(v map[int32]string, canChange bool,
  28240. d *Decoder) (_ map[int32]string, changed bool) {
  28241. dd, esep := d.d, d.hh.hasElemSeparators()
  28242. containerLen := dd.ReadMapStart()
  28243. if canChange && v == nil {
  28244. xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
  28245. v = make(map[int32]string, xlen)
  28246. changed = true
  28247. }
  28248. if containerLen == 0 {
  28249. dd.ReadMapEnd()
  28250. return v, changed
  28251. }
  28252. var mk int32
  28253. var mv string
  28254. hasLen := containerLen > 0
  28255. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28256. if esep {
  28257. dd.ReadMapElemKey()
  28258. }
  28259. mk = int32(dd.DecodeInt(32))
  28260. if esep {
  28261. dd.ReadMapElemValue()
  28262. }
  28263. if dd.TryDecodeAsNil() {
  28264. if d.h.DeleteOnNilMapValue {
  28265. delete(v, mk)
  28266. } else {
  28267. v[mk] = ""
  28268. }
  28269. continue
  28270. }
  28271. mv = dd.DecodeString()
  28272. if v != nil {
  28273. v[mk] = mv
  28274. }
  28275. }
  28276. dd.ReadMapEnd()
  28277. return v, changed
  28278. }
  28279. func (d *Decoder) fastpathDecMapInt32UintR(f *codecFnInfo, rv reflect.Value) {
  28280. if rv.Kind() == reflect.Ptr {
  28281. vp := rv2i(rv).(*map[int32]uint)
  28282. if v, changed := fastpathTV.DecMapInt32UintV(*vp, true, d); changed {
  28283. *vp = v
  28284. }
  28285. return
  28286. }
  28287. fastpathTV.DecMapInt32UintV(rv2i(rv).(map[int32]uint), false, d)
  28288. }
  28289. func (f fastpathT) DecMapInt32UintX(vp *map[int32]uint, d *Decoder) {
  28290. if v, changed := f.DecMapInt32UintV(*vp, true, d); changed {
  28291. *vp = v
  28292. }
  28293. }
  28294. func (_ fastpathT) DecMapInt32UintV(v map[int32]uint, canChange bool,
  28295. d *Decoder) (_ map[int32]uint, changed bool) {
  28296. dd, esep := d.d, d.hh.hasElemSeparators()
  28297. containerLen := dd.ReadMapStart()
  28298. if canChange && v == nil {
  28299. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  28300. v = make(map[int32]uint, xlen)
  28301. changed = true
  28302. }
  28303. if containerLen == 0 {
  28304. dd.ReadMapEnd()
  28305. return v, changed
  28306. }
  28307. var mk int32
  28308. var mv uint
  28309. hasLen := containerLen > 0
  28310. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28311. if esep {
  28312. dd.ReadMapElemKey()
  28313. }
  28314. mk = int32(dd.DecodeInt(32))
  28315. if esep {
  28316. dd.ReadMapElemValue()
  28317. }
  28318. if dd.TryDecodeAsNil() {
  28319. if d.h.DeleteOnNilMapValue {
  28320. delete(v, mk)
  28321. } else {
  28322. v[mk] = 0
  28323. }
  28324. continue
  28325. }
  28326. mv = uint(dd.DecodeUint(uintBitsize))
  28327. if v != nil {
  28328. v[mk] = mv
  28329. }
  28330. }
  28331. dd.ReadMapEnd()
  28332. return v, changed
  28333. }
  28334. func (d *Decoder) fastpathDecMapInt32Uint8R(f *codecFnInfo, rv reflect.Value) {
  28335. if rv.Kind() == reflect.Ptr {
  28336. vp := rv2i(rv).(*map[int32]uint8)
  28337. if v, changed := fastpathTV.DecMapInt32Uint8V(*vp, true, d); changed {
  28338. *vp = v
  28339. }
  28340. return
  28341. }
  28342. fastpathTV.DecMapInt32Uint8V(rv2i(rv).(map[int32]uint8), false, d)
  28343. }
  28344. func (f fastpathT) DecMapInt32Uint8X(vp *map[int32]uint8, d *Decoder) {
  28345. if v, changed := f.DecMapInt32Uint8V(*vp, true, d); changed {
  28346. *vp = v
  28347. }
  28348. }
  28349. func (_ fastpathT) DecMapInt32Uint8V(v map[int32]uint8, canChange bool,
  28350. d *Decoder) (_ map[int32]uint8, changed bool) {
  28351. dd, esep := d.d, d.hh.hasElemSeparators()
  28352. containerLen := dd.ReadMapStart()
  28353. if canChange && v == nil {
  28354. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  28355. v = make(map[int32]uint8, xlen)
  28356. changed = true
  28357. }
  28358. if containerLen == 0 {
  28359. dd.ReadMapEnd()
  28360. return v, changed
  28361. }
  28362. var mk int32
  28363. var mv uint8
  28364. hasLen := containerLen > 0
  28365. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28366. if esep {
  28367. dd.ReadMapElemKey()
  28368. }
  28369. mk = int32(dd.DecodeInt(32))
  28370. if esep {
  28371. dd.ReadMapElemValue()
  28372. }
  28373. if dd.TryDecodeAsNil() {
  28374. if d.h.DeleteOnNilMapValue {
  28375. delete(v, mk)
  28376. } else {
  28377. v[mk] = 0
  28378. }
  28379. continue
  28380. }
  28381. mv = uint8(dd.DecodeUint(8))
  28382. if v != nil {
  28383. v[mk] = mv
  28384. }
  28385. }
  28386. dd.ReadMapEnd()
  28387. return v, changed
  28388. }
  28389. func (d *Decoder) fastpathDecMapInt32Uint16R(f *codecFnInfo, rv reflect.Value) {
  28390. if rv.Kind() == reflect.Ptr {
  28391. vp := rv2i(rv).(*map[int32]uint16)
  28392. if v, changed := fastpathTV.DecMapInt32Uint16V(*vp, true, d); changed {
  28393. *vp = v
  28394. }
  28395. return
  28396. }
  28397. fastpathTV.DecMapInt32Uint16V(rv2i(rv).(map[int32]uint16), false, d)
  28398. }
  28399. func (f fastpathT) DecMapInt32Uint16X(vp *map[int32]uint16, d *Decoder) {
  28400. if v, changed := f.DecMapInt32Uint16V(*vp, true, d); changed {
  28401. *vp = v
  28402. }
  28403. }
  28404. func (_ fastpathT) DecMapInt32Uint16V(v map[int32]uint16, canChange bool,
  28405. d *Decoder) (_ map[int32]uint16, changed bool) {
  28406. dd, esep := d.d, d.hh.hasElemSeparators()
  28407. containerLen := dd.ReadMapStart()
  28408. if canChange && v == nil {
  28409. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  28410. v = make(map[int32]uint16, xlen)
  28411. changed = true
  28412. }
  28413. if containerLen == 0 {
  28414. dd.ReadMapEnd()
  28415. return v, changed
  28416. }
  28417. var mk int32
  28418. var mv uint16
  28419. hasLen := containerLen > 0
  28420. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28421. if esep {
  28422. dd.ReadMapElemKey()
  28423. }
  28424. mk = int32(dd.DecodeInt(32))
  28425. if esep {
  28426. dd.ReadMapElemValue()
  28427. }
  28428. if dd.TryDecodeAsNil() {
  28429. if d.h.DeleteOnNilMapValue {
  28430. delete(v, mk)
  28431. } else {
  28432. v[mk] = 0
  28433. }
  28434. continue
  28435. }
  28436. mv = uint16(dd.DecodeUint(16))
  28437. if v != nil {
  28438. v[mk] = mv
  28439. }
  28440. }
  28441. dd.ReadMapEnd()
  28442. return v, changed
  28443. }
  28444. func (d *Decoder) fastpathDecMapInt32Uint32R(f *codecFnInfo, rv reflect.Value) {
  28445. if rv.Kind() == reflect.Ptr {
  28446. vp := rv2i(rv).(*map[int32]uint32)
  28447. if v, changed := fastpathTV.DecMapInt32Uint32V(*vp, true, d); changed {
  28448. *vp = v
  28449. }
  28450. return
  28451. }
  28452. fastpathTV.DecMapInt32Uint32V(rv2i(rv).(map[int32]uint32), false, d)
  28453. }
  28454. func (f fastpathT) DecMapInt32Uint32X(vp *map[int32]uint32, d *Decoder) {
  28455. if v, changed := f.DecMapInt32Uint32V(*vp, true, d); changed {
  28456. *vp = v
  28457. }
  28458. }
  28459. func (_ fastpathT) DecMapInt32Uint32V(v map[int32]uint32, canChange bool,
  28460. d *Decoder) (_ map[int32]uint32, changed bool) {
  28461. dd, esep := d.d, d.hh.hasElemSeparators()
  28462. containerLen := dd.ReadMapStart()
  28463. if canChange && v == nil {
  28464. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  28465. v = make(map[int32]uint32, xlen)
  28466. changed = true
  28467. }
  28468. if containerLen == 0 {
  28469. dd.ReadMapEnd()
  28470. return v, changed
  28471. }
  28472. var mk int32
  28473. var mv uint32
  28474. hasLen := containerLen > 0
  28475. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28476. if esep {
  28477. dd.ReadMapElemKey()
  28478. }
  28479. mk = int32(dd.DecodeInt(32))
  28480. if esep {
  28481. dd.ReadMapElemValue()
  28482. }
  28483. if dd.TryDecodeAsNil() {
  28484. if d.h.DeleteOnNilMapValue {
  28485. delete(v, mk)
  28486. } else {
  28487. v[mk] = 0
  28488. }
  28489. continue
  28490. }
  28491. mv = uint32(dd.DecodeUint(32))
  28492. if v != nil {
  28493. v[mk] = mv
  28494. }
  28495. }
  28496. dd.ReadMapEnd()
  28497. return v, changed
  28498. }
  28499. func (d *Decoder) fastpathDecMapInt32Uint64R(f *codecFnInfo, rv reflect.Value) {
  28500. if rv.Kind() == reflect.Ptr {
  28501. vp := rv2i(rv).(*map[int32]uint64)
  28502. if v, changed := fastpathTV.DecMapInt32Uint64V(*vp, true, d); changed {
  28503. *vp = v
  28504. }
  28505. return
  28506. }
  28507. fastpathTV.DecMapInt32Uint64V(rv2i(rv).(map[int32]uint64), false, d)
  28508. }
  28509. func (f fastpathT) DecMapInt32Uint64X(vp *map[int32]uint64, d *Decoder) {
  28510. if v, changed := f.DecMapInt32Uint64V(*vp, true, d); changed {
  28511. *vp = v
  28512. }
  28513. }
  28514. func (_ fastpathT) DecMapInt32Uint64V(v map[int32]uint64, canChange bool,
  28515. d *Decoder) (_ map[int32]uint64, changed bool) {
  28516. dd, esep := d.d, d.hh.hasElemSeparators()
  28517. containerLen := dd.ReadMapStart()
  28518. if canChange && v == nil {
  28519. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  28520. v = make(map[int32]uint64, xlen)
  28521. changed = true
  28522. }
  28523. if containerLen == 0 {
  28524. dd.ReadMapEnd()
  28525. return v, changed
  28526. }
  28527. var mk int32
  28528. var mv uint64
  28529. hasLen := containerLen > 0
  28530. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28531. if esep {
  28532. dd.ReadMapElemKey()
  28533. }
  28534. mk = int32(dd.DecodeInt(32))
  28535. if esep {
  28536. dd.ReadMapElemValue()
  28537. }
  28538. if dd.TryDecodeAsNil() {
  28539. if d.h.DeleteOnNilMapValue {
  28540. delete(v, mk)
  28541. } else {
  28542. v[mk] = 0
  28543. }
  28544. continue
  28545. }
  28546. mv = dd.DecodeUint(64)
  28547. if v != nil {
  28548. v[mk] = mv
  28549. }
  28550. }
  28551. dd.ReadMapEnd()
  28552. return v, changed
  28553. }
  28554. func (d *Decoder) fastpathDecMapInt32UintptrR(f *codecFnInfo, rv reflect.Value) {
  28555. if rv.Kind() == reflect.Ptr {
  28556. vp := rv2i(rv).(*map[int32]uintptr)
  28557. if v, changed := fastpathTV.DecMapInt32UintptrV(*vp, true, d); changed {
  28558. *vp = v
  28559. }
  28560. return
  28561. }
  28562. fastpathTV.DecMapInt32UintptrV(rv2i(rv).(map[int32]uintptr), false, d)
  28563. }
  28564. func (f fastpathT) DecMapInt32UintptrX(vp *map[int32]uintptr, d *Decoder) {
  28565. if v, changed := f.DecMapInt32UintptrV(*vp, true, d); changed {
  28566. *vp = v
  28567. }
  28568. }
  28569. func (_ fastpathT) DecMapInt32UintptrV(v map[int32]uintptr, canChange bool,
  28570. d *Decoder) (_ map[int32]uintptr, changed bool) {
  28571. dd, esep := d.d, d.hh.hasElemSeparators()
  28572. containerLen := dd.ReadMapStart()
  28573. if canChange && v == nil {
  28574. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  28575. v = make(map[int32]uintptr, xlen)
  28576. changed = true
  28577. }
  28578. if containerLen == 0 {
  28579. dd.ReadMapEnd()
  28580. return v, changed
  28581. }
  28582. var mk int32
  28583. var mv uintptr
  28584. hasLen := containerLen > 0
  28585. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28586. if esep {
  28587. dd.ReadMapElemKey()
  28588. }
  28589. mk = int32(dd.DecodeInt(32))
  28590. if esep {
  28591. dd.ReadMapElemValue()
  28592. }
  28593. if dd.TryDecodeAsNil() {
  28594. if d.h.DeleteOnNilMapValue {
  28595. delete(v, mk)
  28596. } else {
  28597. v[mk] = 0
  28598. }
  28599. continue
  28600. }
  28601. mv = uintptr(dd.DecodeUint(uintBitsize))
  28602. if v != nil {
  28603. v[mk] = mv
  28604. }
  28605. }
  28606. dd.ReadMapEnd()
  28607. return v, changed
  28608. }
  28609. func (d *Decoder) fastpathDecMapInt32IntR(f *codecFnInfo, rv reflect.Value) {
  28610. if rv.Kind() == reflect.Ptr {
  28611. vp := rv2i(rv).(*map[int32]int)
  28612. if v, changed := fastpathTV.DecMapInt32IntV(*vp, true, d); changed {
  28613. *vp = v
  28614. }
  28615. return
  28616. }
  28617. fastpathTV.DecMapInt32IntV(rv2i(rv).(map[int32]int), false, d)
  28618. }
  28619. func (f fastpathT) DecMapInt32IntX(vp *map[int32]int, d *Decoder) {
  28620. if v, changed := f.DecMapInt32IntV(*vp, true, d); changed {
  28621. *vp = v
  28622. }
  28623. }
  28624. func (_ fastpathT) DecMapInt32IntV(v map[int32]int, canChange bool,
  28625. d *Decoder) (_ map[int32]int, changed bool) {
  28626. dd, esep := d.d, d.hh.hasElemSeparators()
  28627. containerLen := dd.ReadMapStart()
  28628. if canChange && v == nil {
  28629. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  28630. v = make(map[int32]int, xlen)
  28631. changed = true
  28632. }
  28633. if containerLen == 0 {
  28634. dd.ReadMapEnd()
  28635. return v, changed
  28636. }
  28637. var mk int32
  28638. var mv int
  28639. hasLen := containerLen > 0
  28640. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28641. if esep {
  28642. dd.ReadMapElemKey()
  28643. }
  28644. mk = int32(dd.DecodeInt(32))
  28645. if esep {
  28646. dd.ReadMapElemValue()
  28647. }
  28648. if dd.TryDecodeAsNil() {
  28649. if d.h.DeleteOnNilMapValue {
  28650. delete(v, mk)
  28651. } else {
  28652. v[mk] = 0
  28653. }
  28654. continue
  28655. }
  28656. mv = int(dd.DecodeInt(intBitsize))
  28657. if v != nil {
  28658. v[mk] = mv
  28659. }
  28660. }
  28661. dd.ReadMapEnd()
  28662. return v, changed
  28663. }
  28664. func (d *Decoder) fastpathDecMapInt32Int8R(f *codecFnInfo, rv reflect.Value) {
  28665. if rv.Kind() == reflect.Ptr {
  28666. vp := rv2i(rv).(*map[int32]int8)
  28667. if v, changed := fastpathTV.DecMapInt32Int8V(*vp, true, d); changed {
  28668. *vp = v
  28669. }
  28670. return
  28671. }
  28672. fastpathTV.DecMapInt32Int8V(rv2i(rv).(map[int32]int8), false, d)
  28673. }
  28674. func (f fastpathT) DecMapInt32Int8X(vp *map[int32]int8, d *Decoder) {
  28675. if v, changed := f.DecMapInt32Int8V(*vp, true, d); changed {
  28676. *vp = v
  28677. }
  28678. }
  28679. func (_ fastpathT) DecMapInt32Int8V(v map[int32]int8, canChange bool,
  28680. d *Decoder) (_ map[int32]int8, changed bool) {
  28681. dd, esep := d.d, d.hh.hasElemSeparators()
  28682. containerLen := dd.ReadMapStart()
  28683. if canChange && v == nil {
  28684. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  28685. v = make(map[int32]int8, xlen)
  28686. changed = true
  28687. }
  28688. if containerLen == 0 {
  28689. dd.ReadMapEnd()
  28690. return v, changed
  28691. }
  28692. var mk int32
  28693. var mv int8
  28694. hasLen := containerLen > 0
  28695. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28696. if esep {
  28697. dd.ReadMapElemKey()
  28698. }
  28699. mk = int32(dd.DecodeInt(32))
  28700. if esep {
  28701. dd.ReadMapElemValue()
  28702. }
  28703. if dd.TryDecodeAsNil() {
  28704. if d.h.DeleteOnNilMapValue {
  28705. delete(v, mk)
  28706. } else {
  28707. v[mk] = 0
  28708. }
  28709. continue
  28710. }
  28711. mv = int8(dd.DecodeInt(8))
  28712. if v != nil {
  28713. v[mk] = mv
  28714. }
  28715. }
  28716. dd.ReadMapEnd()
  28717. return v, changed
  28718. }
  28719. func (d *Decoder) fastpathDecMapInt32Int16R(f *codecFnInfo, rv reflect.Value) {
  28720. if rv.Kind() == reflect.Ptr {
  28721. vp := rv2i(rv).(*map[int32]int16)
  28722. if v, changed := fastpathTV.DecMapInt32Int16V(*vp, true, d); changed {
  28723. *vp = v
  28724. }
  28725. return
  28726. }
  28727. fastpathTV.DecMapInt32Int16V(rv2i(rv).(map[int32]int16), false, d)
  28728. }
  28729. func (f fastpathT) DecMapInt32Int16X(vp *map[int32]int16, d *Decoder) {
  28730. if v, changed := f.DecMapInt32Int16V(*vp, true, d); changed {
  28731. *vp = v
  28732. }
  28733. }
  28734. func (_ fastpathT) DecMapInt32Int16V(v map[int32]int16, canChange bool,
  28735. d *Decoder) (_ map[int32]int16, changed bool) {
  28736. dd, esep := d.d, d.hh.hasElemSeparators()
  28737. containerLen := dd.ReadMapStart()
  28738. if canChange && v == nil {
  28739. xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
  28740. v = make(map[int32]int16, xlen)
  28741. changed = true
  28742. }
  28743. if containerLen == 0 {
  28744. dd.ReadMapEnd()
  28745. return v, changed
  28746. }
  28747. var mk int32
  28748. var mv int16
  28749. hasLen := containerLen > 0
  28750. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28751. if esep {
  28752. dd.ReadMapElemKey()
  28753. }
  28754. mk = int32(dd.DecodeInt(32))
  28755. if esep {
  28756. dd.ReadMapElemValue()
  28757. }
  28758. if dd.TryDecodeAsNil() {
  28759. if d.h.DeleteOnNilMapValue {
  28760. delete(v, mk)
  28761. } else {
  28762. v[mk] = 0
  28763. }
  28764. continue
  28765. }
  28766. mv = int16(dd.DecodeInt(16))
  28767. if v != nil {
  28768. v[mk] = mv
  28769. }
  28770. }
  28771. dd.ReadMapEnd()
  28772. return v, changed
  28773. }
  28774. func (d *Decoder) fastpathDecMapInt32Int32R(f *codecFnInfo, rv reflect.Value) {
  28775. if rv.Kind() == reflect.Ptr {
  28776. vp := rv2i(rv).(*map[int32]int32)
  28777. if v, changed := fastpathTV.DecMapInt32Int32V(*vp, true, d); changed {
  28778. *vp = v
  28779. }
  28780. return
  28781. }
  28782. fastpathTV.DecMapInt32Int32V(rv2i(rv).(map[int32]int32), false, d)
  28783. }
  28784. func (f fastpathT) DecMapInt32Int32X(vp *map[int32]int32, d *Decoder) {
  28785. if v, changed := f.DecMapInt32Int32V(*vp, true, d); changed {
  28786. *vp = v
  28787. }
  28788. }
  28789. func (_ fastpathT) DecMapInt32Int32V(v map[int32]int32, canChange bool,
  28790. d *Decoder) (_ map[int32]int32, changed bool) {
  28791. dd, esep := d.d, d.hh.hasElemSeparators()
  28792. containerLen := dd.ReadMapStart()
  28793. if canChange && v == nil {
  28794. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  28795. v = make(map[int32]int32, xlen)
  28796. changed = true
  28797. }
  28798. if containerLen == 0 {
  28799. dd.ReadMapEnd()
  28800. return v, changed
  28801. }
  28802. var mk int32
  28803. var mv int32
  28804. hasLen := containerLen > 0
  28805. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28806. if esep {
  28807. dd.ReadMapElemKey()
  28808. }
  28809. mk = int32(dd.DecodeInt(32))
  28810. if esep {
  28811. dd.ReadMapElemValue()
  28812. }
  28813. if dd.TryDecodeAsNil() {
  28814. if d.h.DeleteOnNilMapValue {
  28815. delete(v, mk)
  28816. } else {
  28817. v[mk] = 0
  28818. }
  28819. continue
  28820. }
  28821. mv = int32(dd.DecodeInt(32))
  28822. if v != nil {
  28823. v[mk] = mv
  28824. }
  28825. }
  28826. dd.ReadMapEnd()
  28827. return v, changed
  28828. }
  28829. func (d *Decoder) fastpathDecMapInt32Int64R(f *codecFnInfo, rv reflect.Value) {
  28830. if rv.Kind() == reflect.Ptr {
  28831. vp := rv2i(rv).(*map[int32]int64)
  28832. if v, changed := fastpathTV.DecMapInt32Int64V(*vp, true, d); changed {
  28833. *vp = v
  28834. }
  28835. return
  28836. }
  28837. fastpathTV.DecMapInt32Int64V(rv2i(rv).(map[int32]int64), false, d)
  28838. }
  28839. func (f fastpathT) DecMapInt32Int64X(vp *map[int32]int64, d *Decoder) {
  28840. if v, changed := f.DecMapInt32Int64V(*vp, true, d); changed {
  28841. *vp = v
  28842. }
  28843. }
  28844. func (_ fastpathT) DecMapInt32Int64V(v map[int32]int64, canChange bool,
  28845. d *Decoder) (_ map[int32]int64, changed bool) {
  28846. dd, esep := d.d, d.hh.hasElemSeparators()
  28847. containerLen := dd.ReadMapStart()
  28848. if canChange && v == nil {
  28849. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  28850. v = make(map[int32]int64, xlen)
  28851. changed = true
  28852. }
  28853. if containerLen == 0 {
  28854. dd.ReadMapEnd()
  28855. return v, changed
  28856. }
  28857. var mk int32
  28858. var mv int64
  28859. hasLen := containerLen > 0
  28860. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28861. if esep {
  28862. dd.ReadMapElemKey()
  28863. }
  28864. mk = int32(dd.DecodeInt(32))
  28865. if esep {
  28866. dd.ReadMapElemValue()
  28867. }
  28868. if dd.TryDecodeAsNil() {
  28869. if d.h.DeleteOnNilMapValue {
  28870. delete(v, mk)
  28871. } else {
  28872. v[mk] = 0
  28873. }
  28874. continue
  28875. }
  28876. mv = dd.DecodeInt(64)
  28877. if v != nil {
  28878. v[mk] = mv
  28879. }
  28880. }
  28881. dd.ReadMapEnd()
  28882. return v, changed
  28883. }
  28884. func (d *Decoder) fastpathDecMapInt32Float32R(f *codecFnInfo, rv reflect.Value) {
  28885. if rv.Kind() == reflect.Ptr {
  28886. vp := rv2i(rv).(*map[int32]float32)
  28887. if v, changed := fastpathTV.DecMapInt32Float32V(*vp, true, d); changed {
  28888. *vp = v
  28889. }
  28890. return
  28891. }
  28892. fastpathTV.DecMapInt32Float32V(rv2i(rv).(map[int32]float32), false, d)
  28893. }
  28894. func (f fastpathT) DecMapInt32Float32X(vp *map[int32]float32, d *Decoder) {
  28895. if v, changed := f.DecMapInt32Float32V(*vp, true, d); changed {
  28896. *vp = v
  28897. }
  28898. }
  28899. func (_ fastpathT) DecMapInt32Float32V(v map[int32]float32, canChange bool,
  28900. d *Decoder) (_ map[int32]float32, changed bool) {
  28901. dd, esep := d.d, d.hh.hasElemSeparators()
  28902. containerLen := dd.ReadMapStart()
  28903. if canChange && v == nil {
  28904. xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
  28905. v = make(map[int32]float32, xlen)
  28906. changed = true
  28907. }
  28908. if containerLen == 0 {
  28909. dd.ReadMapEnd()
  28910. return v, changed
  28911. }
  28912. var mk int32
  28913. var mv float32
  28914. hasLen := containerLen > 0
  28915. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28916. if esep {
  28917. dd.ReadMapElemKey()
  28918. }
  28919. mk = int32(dd.DecodeInt(32))
  28920. if esep {
  28921. dd.ReadMapElemValue()
  28922. }
  28923. if dd.TryDecodeAsNil() {
  28924. if d.h.DeleteOnNilMapValue {
  28925. delete(v, mk)
  28926. } else {
  28927. v[mk] = 0
  28928. }
  28929. continue
  28930. }
  28931. mv = float32(dd.DecodeFloat(true))
  28932. if v != nil {
  28933. v[mk] = mv
  28934. }
  28935. }
  28936. dd.ReadMapEnd()
  28937. return v, changed
  28938. }
  28939. func (d *Decoder) fastpathDecMapInt32Float64R(f *codecFnInfo, rv reflect.Value) {
  28940. if rv.Kind() == reflect.Ptr {
  28941. vp := rv2i(rv).(*map[int32]float64)
  28942. if v, changed := fastpathTV.DecMapInt32Float64V(*vp, true, d); changed {
  28943. *vp = v
  28944. }
  28945. return
  28946. }
  28947. fastpathTV.DecMapInt32Float64V(rv2i(rv).(map[int32]float64), false, d)
  28948. }
  28949. func (f fastpathT) DecMapInt32Float64X(vp *map[int32]float64, d *Decoder) {
  28950. if v, changed := f.DecMapInt32Float64V(*vp, true, d); changed {
  28951. *vp = v
  28952. }
  28953. }
  28954. func (_ fastpathT) DecMapInt32Float64V(v map[int32]float64, canChange bool,
  28955. d *Decoder) (_ map[int32]float64, changed bool) {
  28956. dd, esep := d.d, d.hh.hasElemSeparators()
  28957. containerLen := dd.ReadMapStart()
  28958. if canChange && v == nil {
  28959. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  28960. v = make(map[int32]float64, xlen)
  28961. changed = true
  28962. }
  28963. if containerLen == 0 {
  28964. dd.ReadMapEnd()
  28965. return v, changed
  28966. }
  28967. var mk int32
  28968. var mv float64
  28969. hasLen := containerLen > 0
  28970. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  28971. if esep {
  28972. dd.ReadMapElemKey()
  28973. }
  28974. mk = int32(dd.DecodeInt(32))
  28975. if esep {
  28976. dd.ReadMapElemValue()
  28977. }
  28978. if dd.TryDecodeAsNil() {
  28979. if d.h.DeleteOnNilMapValue {
  28980. delete(v, mk)
  28981. } else {
  28982. v[mk] = 0
  28983. }
  28984. continue
  28985. }
  28986. mv = dd.DecodeFloat(false)
  28987. if v != nil {
  28988. v[mk] = mv
  28989. }
  28990. }
  28991. dd.ReadMapEnd()
  28992. return v, changed
  28993. }
  28994. func (d *Decoder) fastpathDecMapInt32BoolR(f *codecFnInfo, rv reflect.Value) {
  28995. if rv.Kind() == reflect.Ptr {
  28996. vp := rv2i(rv).(*map[int32]bool)
  28997. if v, changed := fastpathTV.DecMapInt32BoolV(*vp, true, d); changed {
  28998. *vp = v
  28999. }
  29000. return
  29001. }
  29002. fastpathTV.DecMapInt32BoolV(rv2i(rv).(map[int32]bool), false, d)
  29003. }
  29004. func (f fastpathT) DecMapInt32BoolX(vp *map[int32]bool, d *Decoder) {
  29005. if v, changed := f.DecMapInt32BoolV(*vp, true, d); changed {
  29006. *vp = v
  29007. }
  29008. }
  29009. func (_ fastpathT) DecMapInt32BoolV(v map[int32]bool, canChange bool,
  29010. d *Decoder) (_ map[int32]bool, changed bool) {
  29011. dd, esep := d.d, d.hh.hasElemSeparators()
  29012. containerLen := dd.ReadMapStart()
  29013. if canChange && v == nil {
  29014. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  29015. v = make(map[int32]bool, xlen)
  29016. changed = true
  29017. }
  29018. if containerLen == 0 {
  29019. dd.ReadMapEnd()
  29020. return v, changed
  29021. }
  29022. var mk int32
  29023. var mv bool
  29024. hasLen := containerLen > 0
  29025. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29026. if esep {
  29027. dd.ReadMapElemKey()
  29028. }
  29029. mk = int32(dd.DecodeInt(32))
  29030. if esep {
  29031. dd.ReadMapElemValue()
  29032. }
  29033. if dd.TryDecodeAsNil() {
  29034. if d.h.DeleteOnNilMapValue {
  29035. delete(v, mk)
  29036. } else {
  29037. v[mk] = false
  29038. }
  29039. continue
  29040. }
  29041. mv = dd.DecodeBool()
  29042. if v != nil {
  29043. v[mk] = mv
  29044. }
  29045. }
  29046. dd.ReadMapEnd()
  29047. return v, changed
  29048. }
  29049. func (d *Decoder) fastpathDecMapInt64IntfR(f *codecFnInfo, rv reflect.Value) {
  29050. if rv.Kind() == reflect.Ptr {
  29051. vp := rv2i(rv).(*map[int64]interface{})
  29052. if v, changed := fastpathTV.DecMapInt64IntfV(*vp, true, d); changed {
  29053. *vp = v
  29054. }
  29055. return
  29056. }
  29057. fastpathTV.DecMapInt64IntfV(rv2i(rv).(map[int64]interface{}), false, d)
  29058. }
  29059. func (f fastpathT) DecMapInt64IntfX(vp *map[int64]interface{}, d *Decoder) {
  29060. if v, changed := f.DecMapInt64IntfV(*vp, true, d); changed {
  29061. *vp = v
  29062. }
  29063. }
  29064. func (_ fastpathT) DecMapInt64IntfV(v map[int64]interface{}, canChange bool,
  29065. d *Decoder) (_ map[int64]interface{}, changed bool) {
  29066. dd, esep := d.d, d.hh.hasElemSeparators()
  29067. containerLen := dd.ReadMapStart()
  29068. if canChange && v == nil {
  29069. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  29070. v = make(map[int64]interface{}, xlen)
  29071. changed = true
  29072. }
  29073. if containerLen == 0 {
  29074. dd.ReadMapEnd()
  29075. return v, changed
  29076. }
  29077. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  29078. var mk int64
  29079. var mv interface{}
  29080. hasLen := containerLen > 0
  29081. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29082. if esep {
  29083. dd.ReadMapElemKey()
  29084. }
  29085. mk = dd.DecodeInt(64)
  29086. if esep {
  29087. dd.ReadMapElemValue()
  29088. }
  29089. if dd.TryDecodeAsNil() {
  29090. if d.h.DeleteOnNilMapValue {
  29091. delete(v, mk)
  29092. } else {
  29093. v[mk] = nil
  29094. }
  29095. continue
  29096. }
  29097. if mapGet {
  29098. mv = v[mk]
  29099. } else {
  29100. mv = nil
  29101. }
  29102. d.decode(&mv)
  29103. if v != nil {
  29104. v[mk] = mv
  29105. }
  29106. }
  29107. dd.ReadMapEnd()
  29108. return v, changed
  29109. }
  29110. func (d *Decoder) fastpathDecMapInt64StringR(f *codecFnInfo, rv reflect.Value) {
  29111. if rv.Kind() == reflect.Ptr {
  29112. vp := rv2i(rv).(*map[int64]string)
  29113. if v, changed := fastpathTV.DecMapInt64StringV(*vp, true, d); changed {
  29114. *vp = v
  29115. }
  29116. return
  29117. }
  29118. fastpathTV.DecMapInt64StringV(rv2i(rv).(map[int64]string), false, d)
  29119. }
  29120. func (f fastpathT) DecMapInt64StringX(vp *map[int64]string, d *Decoder) {
  29121. if v, changed := f.DecMapInt64StringV(*vp, true, d); changed {
  29122. *vp = v
  29123. }
  29124. }
  29125. func (_ fastpathT) DecMapInt64StringV(v map[int64]string, canChange bool,
  29126. d *Decoder) (_ map[int64]string, changed bool) {
  29127. dd, esep := d.d, d.hh.hasElemSeparators()
  29128. containerLen := dd.ReadMapStart()
  29129. if canChange && v == nil {
  29130. xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
  29131. v = make(map[int64]string, xlen)
  29132. changed = true
  29133. }
  29134. if containerLen == 0 {
  29135. dd.ReadMapEnd()
  29136. return v, changed
  29137. }
  29138. var mk int64
  29139. var mv string
  29140. hasLen := containerLen > 0
  29141. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29142. if esep {
  29143. dd.ReadMapElemKey()
  29144. }
  29145. mk = dd.DecodeInt(64)
  29146. if esep {
  29147. dd.ReadMapElemValue()
  29148. }
  29149. if dd.TryDecodeAsNil() {
  29150. if d.h.DeleteOnNilMapValue {
  29151. delete(v, mk)
  29152. } else {
  29153. v[mk] = ""
  29154. }
  29155. continue
  29156. }
  29157. mv = dd.DecodeString()
  29158. if v != nil {
  29159. v[mk] = mv
  29160. }
  29161. }
  29162. dd.ReadMapEnd()
  29163. return v, changed
  29164. }
  29165. func (d *Decoder) fastpathDecMapInt64UintR(f *codecFnInfo, rv reflect.Value) {
  29166. if rv.Kind() == reflect.Ptr {
  29167. vp := rv2i(rv).(*map[int64]uint)
  29168. if v, changed := fastpathTV.DecMapInt64UintV(*vp, true, d); changed {
  29169. *vp = v
  29170. }
  29171. return
  29172. }
  29173. fastpathTV.DecMapInt64UintV(rv2i(rv).(map[int64]uint), false, d)
  29174. }
  29175. func (f fastpathT) DecMapInt64UintX(vp *map[int64]uint, d *Decoder) {
  29176. if v, changed := f.DecMapInt64UintV(*vp, true, d); changed {
  29177. *vp = v
  29178. }
  29179. }
  29180. func (_ fastpathT) DecMapInt64UintV(v map[int64]uint, canChange bool,
  29181. d *Decoder) (_ map[int64]uint, changed bool) {
  29182. dd, esep := d.d, d.hh.hasElemSeparators()
  29183. containerLen := dd.ReadMapStart()
  29184. if canChange && v == nil {
  29185. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  29186. v = make(map[int64]uint, xlen)
  29187. changed = true
  29188. }
  29189. if containerLen == 0 {
  29190. dd.ReadMapEnd()
  29191. return v, changed
  29192. }
  29193. var mk int64
  29194. var mv uint
  29195. hasLen := containerLen > 0
  29196. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29197. if esep {
  29198. dd.ReadMapElemKey()
  29199. }
  29200. mk = dd.DecodeInt(64)
  29201. if esep {
  29202. dd.ReadMapElemValue()
  29203. }
  29204. if dd.TryDecodeAsNil() {
  29205. if d.h.DeleteOnNilMapValue {
  29206. delete(v, mk)
  29207. } else {
  29208. v[mk] = 0
  29209. }
  29210. continue
  29211. }
  29212. mv = uint(dd.DecodeUint(uintBitsize))
  29213. if v != nil {
  29214. v[mk] = mv
  29215. }
  29216. }
  29217. dd.ReadMapEnd()
  29218. return v, changed
  29219. }
  29220. func (d *Decoder) fastpathDecMapInt64Uint8R(f *codecFnInfo, rv reflect.Value) {
  29221. if rv.Kind() == reflect.Ptr {
  29222. vp := rv2i(rv).(*map[int64]uint8)
  29223. if v, changed := fastpathTV.DecMapInt64Uint8V(*vp, true, d); changed {
  29224. *vp = v
  29225. }
  29226. return
  29227. }
  29228. fastpathTV.DecMapInt64Uint8V(rv2i(rv).(map[int64]uint8), false, d)
  29229. }
  29230. func (f fastpathT) DecMapInt64Uint8X(vp *map[int64]uint8, d *Decoder) {
  29231. if v, changed := f.DecMapInt64Uint8V(*vp, true, d); changed {
  29232. *vp = v
  29233. }
  29234. }
  29235. func (_ fastpathT) DecMapInt64Uint8V(v map[int64]uint8, canChange bool,
  29236. d *Decoder) (_ map[int64]uint8, changed bool) {
  29237. dd, esep := d.d, d.hh.hasElemSeparators()
  29238. containerLen := dd.ReadMapStart()
  29239. if canChange && v == nil {
  29240. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  29241. v = make(map[int64]uint8, xlen)
  29242. changed = true
  29243. }
  29244. if containerLen == 0 {
  29245. dd.ReadMapEnd()
  29246. return v, changed
  29247. }
  29248. var mk int64
  29249. var mv uint8
  29250. hasLen := containerLen > 0
  29251. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29252. if esep {
  29253. dd.ReadMapElemKey()
  29254. }
  29255. mk = dd.DecodeInt(64)
  29256. if esep {
  29257. dd.ReadMapElemValue()
  29258. }
  29259. if dd.TryDecodeAsNil() {
  29260. if d.h.DeleteOnNilMapValue {
  29261. delete(v, mk)
  29262. } else {
  29263. v[mk] = 0
  29264. }
  29265. continue
  29266. }
  29267. mv = uint8(dd.DecodeUint(8))
  29268. if v != nil {
  29269. v[mk] = mv
  29270. }
  29271. }
  29272. dd.ReadMapEnd()
  29273. return v, changed
  29274. }
  29275. func (d *Decoder) fastpathDecMapInt64Uint16R(f *codecFnInfo, rv reflect.Value) {
  29276. if rv.Kind() == reflect.Ptr {
  29277. vp := rv2i(rv).(*map[int64]uint16)
  29278. if v, changed := fastpathTV.DecMapInt64Uint16V(*vp, true, d); changed {
  29279. *vp = v
  29280. }
  29281. return
  29282. }
  29283. fastpathTV.DecMapInt64Uint16V(rv2i(rv).(map[int64]uint16), false, d)
  29284. }
  29285. func (f fastpathT) DecMapInt64Uint16X(vp *map[int64]uint16, d *Decoder) {
  29286. if v, changed := f.DecMapInt64Uint16V(*vp, true, d); changed {
  29287. *vp = v
  29288. }
  29289. }
  29290. func (_ fastpathT) DecMapInt64Uint16V(v map[int64]uint16, canChange bool,
  29291. d *Decoder) (_ map[int64]uint16, changed bool) {
  29292. dd, esep := d.d, d.hh.hasElemSeparators()
  29293. containerLen := dd.ReadMapStart()
  29294. if canChange && v == nil {
  29295. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  29296. v = make(map[int64]uint16, xlen)
  29297. changed = true
  29298. }
  29299. if containerLen == 0 {
  29300. dd.ReadMapEnd()
  29301. return v, changed
  29302. }
  29303. var mk int64
  29304. var mv uint16
  29305. hasLen := containerLen > 0
  29306. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29307. if esep {
  29308. dd.ReadMapElemKey()
  29309. }
  29310. mk = dd.DecodeInt(64)
  29311. if esep {
  29312. dd.ReadMapElemValue()
  29313. }
  29314. if dd.TryDecodeAsNil() {
  29315. if d.h.DeleteOnNilMapValue {
  29316. delete(v, mk)
  29317. } else {
  29318. v[mk] = 0
  29319. }
  29320. continue
  29321. }
  29322. mv = uint16(dd.DecodeUint(16))
  29323. if v != nil {
  29324. v[mk] = mv
  29325. }
  29326. }
  29327. dd.ReadMapEnd()
  29328. return v, changed
  29329. }
  29330. func (d *Decoder) fastpathDecMapInt64Uint32R(f *codecFnInfo, rv reflect.Value) {
  29331. if rv.Kind() == reflect.Ptr {
  29332. vp := rv2i(rv).(*map[int64]uint32)
  29333. if v, changed := fastpathTV.DecMapInt64Uint32V(*vp, true, d); changed {
  29334. *vp = v
  29335. }
  29336. return
  29337. }
  29338. fastpathTV.DecMapInt64Uint32V(rv2i(rv).(map[int64]uint32), false, d)
  29339. }
  29340. func (f fastpathT) DecMapInt64Uint32X(vp *map[int64]uint32, d *Decoder) {
  29341. if v, changed := f.DecMapInt64Uint32V(*vp, true, d); changed {
  29342. *vp = v
  29343. }
  29344. }
  29345. func (_ fastpathT) DecMapInt64Uint32V(v map[int64]uint32, canChange bool,
  29346. d *Decoder) (_ map[int64]uint32, changed bool) {
  29347. dd, esep := d.d, d.hh.hasElemSeparators()
  29348. containerLen := dd.ReadMapStart()
  29349. if canChange && v == nil {
  29350. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  29351. v = make(map[int64]uint32, xlen)
  29352. changed = true
  29353. }
  29354. if containerLen == 0 {
  29355. dd.ReadMapEnd()
  29356. return v, changed
  29357. }
  29358. var mk int64
  29359. var mv uint32
  29360. hasLen := containerLen > 0
  29361. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29362. if esep {
  29363. dd.ReadMapElemKey()
  29364. }
  29365. mk = dd.DecodeInt(64)
  29366. if esep {
  29367. dd.ReadMapElemValue()
  29368. }
  29369. if dd.TryDecodeAsNil() {
  29370. if d.h.DeleteOnNilMapValue {
  29371. delete(v, mk)
  29372. } else {
  29373. v[mk] = 0
  29374. }
  29375. continue
  29376. }
  29377. mv = uint32(dd.DecodeUint(32))
  29378. if v != nil {
  29379. v[mk] = mv
  29380. }
  29381. }
  29382. dd.ReadMapEnd()
  29383. return v, changed
  29384. }
  29385. func (d *Decoder) fastpathDecMapInt64Uint64R(f *codecFnInfo, rv reflect.Value) {
  29386. if rv.Kind() == reflect.Ptr {
  29387. vp := rv2i(rv).(*map[int64]uint64)
  29388. if v, changed := fastpathTV.DecMapInt64Uint64V(*vp, true, d); changed {
  29389. *vp = v
  29390. }
  29391. return
  29392. }
  29393. fastpathTV.DecMapInt64Uint64V(rv2i(rv).(map[int64]uint64), false, d)
  29394. }
  29395. func (f fastpathT) DecMapInt64Uint64X(vp *map[int64]uint64, d *Decoder) {
  29396. if v, changed := f.DecMapInt64Uint64V(*vp, true, d); changed {
  29397. *vp = v
  29398. }
  29399. }
  29400. func (_ fastpathT) DecMapInt64Uint64V(v map[int64]uint64, canChange bool,
  29401. d *Decoder) (_ map[int64]uint64, changed bool) {
  29402. dd, esep := d.d, d.hh.hasElemSeparators()
  29403. containerLen := dd.ReadMapStart()
  29404. if canChange && v == nil {
  29405. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  29406. v = make(map[int64]uint64, xlen)
  29407. changed = true
  29408. }
  29409. if containerLen == 0 {
  29410. dd.ReadMapEnd()
  29411. return v, changed
  29412. }
  29413. var mk int64
  29414. var mv uint64
  29415. hasLen := containerLen > 0
  29416. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29417. if esep {
  29418. dd.ReadMapElemKey()
  29419. }
  29420. mk = dd.DecodeInt(64)
  29421. if esep {
  29422. dd.ReadMapElemValue()
  29423. }
  29424. if dd.TryDecodeAsNil() {
  29425. if d.h.DeleteOnNilMapValue {
  29426. delete(v, mk)
  29427. } else {
  29428. v[mk] = 0
  29429. }
  29430. continue
  29431. }
  29432. mv = dd.DecodeUint(64)
  29433. if v != nil {
  29434. v[mk] = mv
  29435. }
  29436. }
  29437. dd.ReadMapEnd()
  29438. return v, changed
  29439. }
  29440. func (d *Decoder) fastpathDecMapInt64UintptrR(f *codecFnInfo, rv reflect.Value) {
  29441. if rv.Kind() == reflect.Ptr {
  29442. vp := rv2i(rv).(*map[int64]uintptr)
  29443. if v, changed := fastpathTV.DecMapInt64UintptrV(*vp, true, d); changed {
  29444. *vp = v
  29445. }
  29446. return
  29447. }
  29448. fastpathTV.DecMapInt64UintptrV(rv2i(rv).(map[int64]uintptr), false, d)
  29449. }
  29450. func (f fastpathT) DecMapInt64UintptrX(vp *map[int64]uintptr, d *Decoder) {
  29451. if v, changed := f.DecMapInt64UintptrV(*vp, true, d); changed {
  29452. *vp = v
  29453. }
  29454. }
  29455. func (_ fastpathT) DecMapInt64UintptrV(v map[int64]uintptr, canChange bool,
  29456. d *Decoder) (_ map[int64]uintptr, changed bool) {
  29457. dd, esep := d.d, d.hh.hasElemSeparators()
  29458. containerLen := dd.ReadMapStart()
  29459. if canChange && v == nil {
  29460. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  29461. v = make(map[int64]uintptr, xlen)
  29462. changed = true
  29463. }
  29464. if containerLen == 0 {
  29465. dd.ReadMapEnd()
  29466. return v, changed
  29467. }
  29468. var mk int64
  29469. var mv uintptr
  29470. hasLen := containerLen > 0
  29471. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29472. if esep {
  29473. dd.ReadMapElemKey()
  29474. }
  29475. mk = dd.DecodeInt(64)
  29476. if esep {
  29477. dd.ReadMapElemValue()
  29478. }
  29479. if dd.TryDecodeAsNil() {
  29480. if d.h.DeleteOnNilMapValue {
  29481. delete(v, mk)
  29482. } else {
  29483. v[mk] = 0
  29484. }
  29485. continue
  29486. }
  29487. mv = uintptr(dd.DecodeUint(uintBitsize))
  29488. if v != nil {
  29489. v[mk] = mv
  29490. }
  29491. }
  29492. dd.ReadMapEnd()
  29493. return v, changed
  29494. }
  29495. func (d *Decoder) fastpathDecMapInt64IntR(f *codecFnInfo, rv reflect.Value) {
  29496. if rv.Kind() == reflect.Ptr {
  29497. vp := rv2i(rv).(*map[int64]int)
  29498. if v, changed := fastpathTV.DecMapInt64IntV(*vp, true, d); changed {
  29499. *vp = v
  29500. }
  29501. return
  29502. }
  29503. fastpathTV.DecMapInt64IntV(rv2i(rv).(map[int64]int), false, d)
  29504. }
  29505. func (f fastpathT) DecMapInt64IntX(vp *map[int64]int, d *Decoder) {
  29506. if v, changed := f.DecMapInt64IntV(*vp, true, d); changed {
  29507. *vp = v
  29508. }
  29509. }
  29510. func (_ fastpathT) DecMapInt64IntV(v map[int64]int, canChange bool,
  29511. d *Decoder) (_ map[int64]int, changed bool) {
  29512. dd, esep := d.d, d.hh.hasElemSeparators()
  29513. containerLen := dd.ReadMapStart()
  29514. if canChange && v == nil {
  29515. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  29516. v = make(map[int64]int, xlen)
  29517. changed = true
  29518. }
  29519. if containerLen == 0 {
  29520. dd.ReadMapEnd()
  29521. return v, changed
  29522. }
  29523. var mk int64
  29524. var mv int
  29525. hasLen := containerLen > 0
  29526. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29527. if esep {
  29528. dd.ReadMapElemKey()
  29529. }
  29530. mk = dd.DecodeInt(64)
  29531. if esep {
  29532. dd.ReadMapElemValue()
  29533. }
  29534. if dd.TryDecodeAsNil() {
  29535. if d.h.DeleteOnNilMapValue {
  29536. delete(v, mk)
  29537. } else {
  29538. v[mk] = 0
  29539. }
  29540. continue
  29541. }
  29542. mv = int(dd.DecodeInt(intBitsize))
  29543. if v != nil {
  29544. v[mk] = mv
  29545. }
  29546. }
  29547. dd.ReadMapEnd()
  29548. return v, changed
  29549. }
  29550. func (d *Decoder) fastpathDecMapInt64Int8R(f *codecFnInfo, rv reflect.Value) {
  29551. if rv.Kind() == reflect.Ptr {
  29552. vp := rv2i(rv).(*map[int64]int8)
  29553. if v, changed := fastpathTV.DecMapInt64Int8V(*vp, true, d); changed {
  29554. *vp = v
  29555. }
  29556. return
  29557. }
  29558. fastpathTV.DecMapInt64Int8V(rv2i(rv).(map[int64]int8), false, d)
  29559. }
  29560. func (f fastpathT) DecMapInt64Int8X(vp *map[int64]int8, d *Decoder) {
  29561. if v, changed := f.DecMapInt64Int8V(*vp, true, d); changed {
  29562. *vp = v
  29563. }
  29564. }
  29565. func (_ fastpathT) DecMapInt64Int8V(v map[int64]int8, canChange bool,
  29566. d *Decoder) (_ map[int64]int8, changed bool) {
  29567. dd, esep := d.d, d.hh.hasElemSeparators()
  29568. containerLen := dd.ReadMapStart()
  29569. if canChange && v == nil {
  29570. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  29571. v = make(map[int64]int8, xlen)
  29572. changed = true
  29573. }
  29574. if containerLen == 0 {
  29575. dd.ReadMapEnd()
  29576. return v, changed
  29577. }
  29578. var mk int64
  29579. var mv int8
  29580. hasLen := containerLen > 0
  29581. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29582. if esep {
  29583. dd.ReadMapElemKey()
  29584. }
  29585. mk = dd.DecodeInt(64)
  29586. if esep {
  29587. dd.ReadMapElemValue()
  29588. }
  29589. if dd.TryDecodeAsNil() {
  29590. if d.h.DeleteOnNilMapValue {
  29591. delete(v, mk)
  29592. } else {
  29593. v[mk] = 0
  29594. }
  29595. continue
  29596. }
  29597. mv = int8(dd.DecodeInt(8))
  29598. if v != nil {
  29599. v[mk] = mv
  29600. }
  29601. }
  29602. dd.ReadMapEnd()
  29603. return v, changed
  29604. }
  29605. func (d *Decoder) fastpathDecMapInt64Int16R(f *codecFnInfo, rv reflect.Value) {
  29606. if rv.Kind() == reflect.Ptr {
  29607. vp := rv2i(rv).(*map[int64]int16)
  29608. if v, changed := fastpathTV.DecMapInt64Int16V(*vp, true, d); changed {
  29609. *vp = v
  29610. }
  29611. return
  29612. }
  29613. fastpathTV.DecMapInt64Int16V(rv2i(rv).(map[int64]int16), false, d)
  29614. }
  29615. func (f fastpathT) DecMapInt64Int16X(vp *map[int64]int16, d *Decoder) {
  29616. if v, changed := f.DecMapInt64Int16V(*vp, true, d); changed {
  29617. *vp = v
  29618. }
  29619. }
  29620. func (_ fastpathT) DecMapInt64Int16V(v map[int64]int16, canChange bool,
  29621. d *Decoder) (_ map[int64]int16, changed bool) {
  29622. dd, esep := d.d, d.hh.hasElemSeparators()
  29623. containerLen := dd.ReadMapStart()
  29624. if canChange && v == nil {
  29625. xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
  29626. v = make(map[int64]int16, xlen)
  29627. changed = true
  29628. }
  29629. if containerLen == 0 {
  29630. dd.ReadMapEnd()
  29631. return v, changed
  29632. }
  29633. var mk int64
  29634. var mv int16
  29635. hasLen := containerLen > 0
  29636. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29637. if esep {
  29638. dd.ReadMapElemKey()
  29639. }
  29640. mk = dd.DecodeInt(64)
  29641. if esep {
  29642. dd.ReadMapElemValue()
  29643. }
  29644. if dd.TryDecodeAsNil() {
  29645. if d.h.DeleteOnNilMapValue {
  29646. delete(v, mk)
  29647. } else {
  29648. v[mk] = 0
  29649. }
  29650. continue
  29651. }
  29652. mv = int16(dd.DecodeInt(16))
  29653. if v != nil {
  29654. v[mk] = mv
  29655. }
  29656. }
  29657. dd.ReadMapEnd()
  29658. return v, changed
  29659. }
  29660. func (d *Decoder) fastpathDecMapInt64Int32R(f *codecFnInfo, rv reflect.Value) {
  29661. if rv.Kind() == reflect.Ptr {
  29662. vp := rv2i(rv).(*map[int64]int32)
  29663. if v, changed := fastpathTV.DecMapInt64Int32V(*vp, true, d); changed {
  29664. *vp = v
  29665. }
  29666. return
  29667. }
  29668. fastpathTV.DecMapInt64Int32V(rv2i(rv).(map[int64]int32), false, d)
  29669. }
  29670. func (f fastpathT) DecMapInt64Int32X(vp *map[int64]int32, d *Decoder) {
  29671. if v, changed := f.DecMapInt64Int32V(*vp, true, d); changed {
  29672. *vp = v
  29673. }
  29674. }
  29675. func (_ fastpathT) DecMapInt64Int32V(v map[int64]int32, canChange bool,
  29676. d *Decoder) (_ map[int64]int32, changed bool) {
  29677. dd, esep := d.d, d.hh.hasElemSeparators()
  29678. containerLen := dd.ReadMapStart()
  29679. if canChange && v == nil {
  29680. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  29681. v = make(map[int64]int32, xlen)
  29682. changed = true
  29683. }
  29684. if containerLen == 0 {
  29685. dd.ReadMapEnd()
  29686. return v, changed
  29687. }
  29688. var mk int64
  29689. var mv int32
  29690. hasLen := containerLen > 0
  29691. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29692. if esep {
  29693. dd.ReadMapElemKey()
  29694. }
  29695. mk = dd.DecodeInt(64)
  29696. if esep {
  29697. dd.ReadMapElemValue()
  29698. }
  29699. if dd.TryDecodeAsNil() {
  29700. if d.h.DeleteOnNilMapValue {
  29701. delete(v, mk)
  29702. } else {
  29703. v[mk] = 0
  29704. }
  29705. continue
  29706. }
  29707. mv = int32(dd.DecodeInt(32))
  29708. if v != nil {
  29709. v[mk] = mv
  29710. }
  29711. }
  29712. dd.ReadMapEnd()
  29713. return v, changed
  29714. }
  29715. func (d *Decoder) fastpathDecMapInt64Int64R(f *codecFnInfo, rv reflect.Value) {
  29716. if rv.Kind() == reflect.Ptr {
  29717. vp := rv2i(rv).(*map[int64]int64)
  29718. if v, changed := fastpathTV.DecMapInt64Int64V(*vp, true, d); changed {
  29719. *vp = v
  29720. }
  29721. return
  29722. }
  29723. fastpathTV.DecMapInt64Int64V(rv2i(rv).(map[int64]int64), false, d)
  29724. }
  29725. func (f fastpathT) DecMapInt64Int64X(vp *map[int64]int64, d *Decoder) {
  29726. if v, changed := f.DecMapInt64Int64V(*vp, true, d); changed {
  29727. *vp = v
  29728. }
  29729. }
  29730. func (_ fastpathT) DecMapInt64Int64V(v map[int64]int64, canChange bool,
  29731. d *Decoder) (_ map[int64]int64, changed bool) {
  29732. dd, esep := d.d, d.hh.hasElemSeparators()
  29733. containerLen := dd.ReadMapStart()
  29734. if canChange && v == nil {
  29735. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  29736. v = make(map[int64]int64, xlen)
  29737. changed = true
  29738. }
  29739. if containerLen == 0 {
  29740. dd.ReadMapEnd()
  29741. return v, changed
  29742. }
  29743. var mk int64
  29744. var mv int64
  29745. hasLen := containerLen > 0
  29746. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29747. if esep {
  29748. dd.ReadMapElemKey()
  29749. }
  29750. mk = dd.DecodeInt(64)
  29751. if esep {
  29752. dd.ReadMapElemValue()
  29753. }
  29754. if dd.TryDecodeAsNil() {
  29755. if d.h.DeleteOnNilMapValue {
  29756. delete(v, mk)
  29757. } else {
  29758. v[mk] = 0
  29759. }
  29760. continue
  29761. }
  29762. mv = dd.DecodeInt(64)
  29763. if v != nil {
  29764. v[mk] = mv
  29765. }
  29766. }
  29767. dd.ReadMapEnd()
  29768. return v, changed
  29769. }
  29770. func (d *Decoder) fastpathDecMapInt64Float32R(f *codecFnInfo, rv reflect.Value) {
  29771. if rv.Kind() == reflect.Ptr {
  29772. vp := rv2i(rv).(*map[int64]float32)
  29773. if v, changed := fastpathTV.DecMapInt64Float32V(*vp, true, d); changed {
  29774. *vp = v
  29775. }
  29776. return
  29777. }
  29778. fastpathTV.DecMapInt64Float32V(rv2i(rv).(map[int64]float32), false, d)
  29779. }
  29780. func (f fastpathT) DecMapInt64Float32X(vp *map[int64]float32, d *Decoder) {
  29781. if v, changed := f.DecMapInt64Float32V(*vp, true, d); changed {
  29782. *vp = v
  29783. }
  29784. }
  29785. func (_ fastpathT) DecMapInt64Float32V(v map[int64]float32, canChange bool,
  29786. d *Decoder) (_ map[int64]float32, changed bool) {
  29787. dd, esep := d.d, d.hh.hasElemSeparators()
  29788. containerLen := dd.ReadMapStart()
  29789. if canChange && v == nil {
  29790. xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
  29791. v = make(map[int64]float32, xlen)
  29792. changed = true
  29793. }
  29794. if containerLen == 0 {
  29795. dd.ReadMapEnd()
  29796. return v, changed
  29797. }
  29798. var mk int64
  29799. var mv float32
  29800. hasLen := containerLen > 0
  29801. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29802. if esep {
  29803. dd.ReadMapElemKey()
  29804. }
  29805. mk = dd.DecodeInt(64)
  29806. if esep {
  29807. dd.ReadMapElemValue()
  29808. }
  29809. if dd.TryDecodeAsNil() {
  29810. if d.h.DeleteOnNilMapValue {
  29811. delete(v, mk)
  29812. } else {
  29813. v[mk] = 0
  29814. }
  29815. continue
  29816. }
  29817. mv = float32(dd.DecodeFloat(true))
  29818. if v != nil {
  29819. v[mk] = mv
  29820. }
  29821. }
  29822. dd.ReadMapEnd()
  29823. return v, changed
  29824. }
  29825. func (d *Decoder) fastpathDecMapInt64Float64R(f *codecFnInfo, rv reflect.Value) {
  29826. if rv.Kind() == reflect.Ptr {
  29827. vp := rv2i(rv).(*map[int64]float64)
  29828. if v, changed := fastpathTV.DecMapInt64Float64V(*vp, true, d); changed {
  29829. *vp = v
  29830. }
  29831. return
  29832. }
  29833. fastpathTV.DecMapInt64Float64V(rv2i(rv).(map[int64]float64), false, d)
  29834. }
  29835. func (f fastpathT) DecMapInt64Float64X(vp *map[int64]float64, d *Decoder) {
  29836. if v, changed := f.DecMapInt64Float64V(*vp, true, d); changed {
  29837. *vp = v
  29838. }
  29839. }
  29840. func (_ fastpathT) DecMapInt64Float64V(v map[int64]float64, canChange bool,
  29841. d *Decoder) (_ map[int64]float64, changed bool) {
  29842. dd, esep := d.d, d.hh.hasElemSeparators()
  29843. containerLen := dd.ReadMapStart()
  29844. if canChange && v == nil {
  29845. xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
  29846. v = make(map[int64]float64, xlen)
  29847. changed = true
  29848. }
  29849. if containerLen == 0 {
  29850. dd.ReadMapEnd()
  29851. return v, changed
  29852. }
  29853. var mk int64
  29854. var mv float64
  29855. hasLen := containerLen > 0
  29856. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29857. if esep {
  29858. dd.ReadMapElemKey()
  29859. }
  29860. mk = dd.DecodeInt(64)
  29861. if esep {
  29862. dd.ReadMapElemValue()
  29863. }
  29864. if dd.TryDecodeAsNil() {
  29865. if d.h.DeleteOnNilMapValue {
  29866. delete(v, mk)
  29867. } else {
  29868. v[mk] = 0
  29869. }
  29870. continue
  29871. }
  29872. mv = dd.DecodeFloat(false)
  29873. if v != nil {
  29874. v[mk] = mv
  29875. }
  29876. }
  29877. dd.ReadMapEnd()
  29878. return v, changed
  29879. }
  29880. func (d *Decoder) fastpathDecMapInt64BoolR(f *codecFnInfo, rv reflect.Value) {
  29881. if rv.Kind() == reflect.Ptr {
  29882. vp := rv2i(rv).(*map[int64]bool)
  29883. if v, changed := fastpathTV.DecMapInt64BoolV(*vp, true, d); changed {
  29884. *vp = v
  29885. }
  29886. return
  29887. }
  29888. fastpathTV.DecMapInt64BoolV(rv2i(rv).(map[int64]bool), false, d)
  29889. }
  29890. func (f fastpathT) DecMapInt64BoolX(vp *map[int64]bool, d *Decoder) {
  29891. if v, changed := f.DecMapInt64BoolV(*vp, true, d); changed {
  29892. *vp = v
  29893. }
  29894. }
  29895. func (_ fastpathT) DecMapInt64BoolV(v map[int64]bool, canChange bool,
  29896. d *Decoder) (_ map[int64]bool, changed bool) {
  29897. dd, esep := d.d, d.hh.hasElemSeparators()
  29898. containerLen := dd.ReadMapStart()
  29899. if canChange && v == nil {
  29900. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  29901. v = make(map[int64]bool, xlen)
  29902. changed = true
  29903. }
  29904. if containerLen == 0 {
  29905. dd.ReadMapEnd()
  29906. return v, changed
  29907. }
  29908. var mk int64
  29909. var mv bool
  29910. hasLen := containerLen > 0
  29911. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29912. if esep {
  29913. dd.ReadMapElemKey()
  29914. }
  29915. mk = dd.DecodeInt(64)
  29916. if esep {
  29917. dd.ReadMapElemValue()
  29918. }
  29919. if dd.TryDecodeAsNil() {
  29920. if d.h.DeleteOnNilMapValue {
  29921. delete(v, mk)
  29922. } else {
  29923. v[mk] = false
  29924. }
  29925. continue
  29926. }
  29927. mv = dd.DecodeBool()
  29928. if v != nil {
  29929. v[mk] = mv
  29930. }
  29931. }
  29932. dd.ReadMapEnd()
  29933. return v, changed
  29934. }
  29935. func (d *Decoder) fastpathDecMapBoolIntfR(f *codecFnInfo, rv reflect.Value) {
  29936. if rv.Kind() == reflect.Ptr {
  29937. vp := rv2i(rv).(*map[bool]interface{})
  29938. if v, changed := fastpathTV.DecMapBoolIntfV(*vp, true, d); changed {
  29939. *vp = v
  29940. }
  29941. return
  29942. }
  29943. fastpathTV.DecMapBoolIntfV(rv2i(rv).(map[bool]interface{}), false, d)
  29944. }
  29945. func (f fastpathT) DecMapBoolIntfX(vp *map[bool]interface{}, d *Decoder) {
  29946. if v, changed := f.DecMapBoolIntfV(*vp, true, d); changed {
  29947. *vp = v
  29948. }
  29949. }
  29950. func (_ fastpathT) DecMapBoolIntfV(v map[bool]interface{}, canChange bool,
  29951. d *Decoder) (_ map[bool]interface{}, changed bool) {
  29952. dd, esep := d.d, d.hh.hasElemSeparators()
  29953. containerLen := dd.ReadMapStart()
  29954. if canChange && v == nil {
  29955. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  29956. v = make(map[bool]interface{}, xlen)
  29957. changed = true
  29958. }
  29959. if containerLen == 0 {
  29960. dd.ReadMapEnd()
  29961. return v, changed
  29962. }
  29963. mapGet := !d.h.MapValueReset && !d.h.InterfaceReset
  29964. var mk bool
  29965. var mv interface{}
  29966. hasLen := containerLen > 0
  29967. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  29968. if esep {
  29969. dd.ReadMapElemKey()
  29970. }
  29971. mk = dd.DecodeBool()
  29972. if esep {
  29973. dd.ReadMapElemValue()
  29974. }
  29975. if dd.TryDecodeAsNil() {
  29976. if d.h.DeleteOnNilMapValue {
  29977. delete(v, mk)
  29978. } else {
  29979. v[mk] = nil
  29980. }
  29981. continue
  29982. }
  29983. if mapGet {
  29984. mv = v[mk]
  29985. } else {
  29986. mv = nil
  29987. }
  29988. d.decode(&mv)
  29989. if v != nil {
  29990. v[mk] = mv
  29991. }
  29992. }
  29993. dd.ReadMapEnd()
  29994. return v, changed
  29995. }
  29996. func (d *Decoder) fastpathDecMapBoolStringR(f *codecFnInfo, rv reflect.Value) {
  29997. if rv.Kind() == reflect.Ptr {
  29998. vp := rv2i(rv).(*map[bool]string)
  29999. if v, changed := fastpathTV.DecMapBoolStringV(*vp, true, d); changed {
  30000. *vp = v
  30001. }
  30002. return
  30003. }
  30004. fastpathTV.DecMapBoolStringV(rv2i(rv).(map[bool]string), false, d)
  30005. }
  30006. func (f fastpathT) DecMapBoolStringX(vp *map[bool]string, d *Decoder) {
  30007. if v, changed := f.DecMapBoolStringV(*vp, true, d); changed {
  30008. *vp = v
  30009. }
  30010. }
  30011. func (_ fastpathT) DecMapBoolStringV(v map[bool]string, canChange bool,
  30012. d *Decoder) (_ map[bool]string, changed bool) {
  30013. dd, esep := d.d, d.hh.hasElemSeparators()
  30014. containerLen := dd.ReadMapStart()
  30015. if canChange && v == nil {
  30016. xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
  30017. v = make(map[bool]string, xlen)
  30018. changed = true
  30019. }
  30020. if containerLen == 0 {
  30021. dd.ReadMapEnd()
  30022. return v, changed
  30023. }
  30024. var mk bool
  30025. var mv string
  30026. hasLen := containerLen > 0
  30027. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30028. if esep {
  30029. dd.ReadMapElemKey()
  30030. }
  30031. mk = dd.DecodeBool()
  30032. if esep {
  30033. dd.ReadMapElemValue()
  30034. }
  30035. if dd.TryDecodeAsNil() {
  30036. if d.h.DeleteOnNilMapValue {
  30037. delete(v, mk)
  30038. } else {
  30039. v[mk] = ""
  30040. }
  30041. continue
  30042. }
  30043. mv = dd.DecodeString()
  30044. if v != nil {
  30045. v[mk] = mv
  30046. }
  30047. }
  30048. dd.ReadMapEnd()
  30049. return v, changed
  30050. }
  30051. func (d *Decoder) fastpathDecMapBoolUintR(f *codecFnInfo, rv reflect.Value) {
  30052. if rv.Kind() == reflect.Ptr {
  30053. vp := rv2i(rv).(*map[bool]uint)
  30054. if v, changed := fastpathTV.DecMapBoolUintV(*vp, true, d); changed {
  30055. *vp = v
  30056. }
  30057. return
  30058. }
  30059. fastpathTV.DecMapBoolUintV(rv2i(rv).(map[bool]uint), false, d)
  30060. }
  30061. func (f fastpathT) DecMapBoolUintX(vp *map[bool]uint, d *Decoder) {
  30062. if v, changed := f.DecMapBoolUintV(*vp, true, d); changed {
  30063. *vp = v
  30064. }
  30065. }
  30066. func (_ fastpathT) DecMapBoolUintV(v map[bool]uint, canChange bool,
  30067. d *Decoder) (_ map[bool]uint, changed bool) {
  30068. dd, esep := d.d, d.hh.hasElemSeparators()
  30069. containerLen := dd.ReadMapStart()
  30070. if canChange && v == nil {
  30071. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  30072. v = make(map[bool]uint, xlen)
  30073. changed = true
  30074. }
  30075. if containerLen == 0 {
  30076. dd.ReadMapEnd()
  30077. return v, changed
  30078. }
  30079. var mk bool
  30080. var mv uint
  30081. hasLen := containerLen > 0
  30082. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30083. if esep {
  30084. dd.ReadMapElemKey()
  30085. }
  30086. mk = dd.DecodeBool()
  30087. if esep {
  30088. dd.ReadMapElemValue()
  30089. }
  30090. if dd.TryDecodeAsNil() {
  30091. if d.h.DeleteOnNilMapValue {
  30092. delete(v, mk)
  30093. } else {
  30094. v[mk] = 0
  30095. }
  30096. continue
  30097. }
  30098. mv = uint(dd.DecodeUint(uintBitsize))
  30099. if v != nil {
  30100. v[mk] = mv
  30101. }
  30102. }
  30103. dd.ReadMapEnd()
  30104. return v, changed
  30105. }
  30106. func (d *Decoder) fastpathDecMapBoolUint8R(f *codecFnInfo, rv reflect.Value) {
  30107. if rv.Kind() == reflect.Ptr {
  30108. vp := rv2i(rv).(*map[bool]uint8)
  30109. if v, changed := fastpathTV.DecMapBoolUint8V(*vp, true, d); changed {
  30110. *vp = v
  30111. }
  30112. return
  30113. }
  30114. fastpathTV.DecMapBoolUint8V(rv2i(rv).(map[bool]uint8), false, d)
  30115. }
  30116. func (f fastpathT) DecMapBoolUint8X(vp *map[bool]uint8, d *Decoder) {
  30117. if v, changed := f.DecMapBoolUint8V(*vp, true, d); changed {
  30118. *vp = v
  30119. }
  30120. }
  30121. func (_ fastpathT) DecMapBoolUint8V(v map[bool]uint8, canChange bool,
  30122. d *Decoder) (_ map[bool]uint8, changed bool) {
  30123. dd, esep := d.d, d.hh.hasElemSeparators()
  30124. containerLen := dd.ReadMapStart()
  30125. if canChange && v == nil {
  30126. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  30127. v = make(map[bool]uint8, xlen)
  30128. changed = true
  30129. }
  30130. if containerLen == 0 {
  30131. dd.ReadMapEnd()
  30132. return v, changed
  30133. }
  30134. var mk bool
  30135. var mv uint8
  30136. hasLen := containerLen > 0
  30137. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30138. if esep {
  30139. dd.ReadMapElemKey()
  30140. }
  30141. mk = dd.DecodeBool()
  30142. if esep {
  30143. dd.ReadMapElemValue()
  30144. }
  30145. if dd.TryDecodeAsNil() {
  30146. if d.h.DeleteOnNilMapValue {
  30147. delete(v, mk)
  30148. } else {
  30149. v[mk] = 0
  30150. }
  30151. continue
  30152. }
  30153. mv = uint8(dd.DecodeUint(8))
  30154. if v != nil {
  30155. v[mk] = mv
  30156. }
  30157. }
  30158. dd.ReadMapEnd()
  30159. return v, changed
  30160. }
  30161. func (d *Decoder) fastpathDecMapBoolUint16R(f *codecFnInfo, rv reflect.Value) {
  30162. if rv.Kind() == reflect.Ptr {
  30163. vp := rv2i(rv).(*map[bool]uint16)
  30164. if v, changed := fastpathTV.DecMapBoolUint16V(*vp, true, d); changed {
  30165. *vp = v
  30166. }
  30167. return
  30168. }
  30169. fastpathTV.DecMapBoolUint16V(rv2i(rv).(map[bool]uint16), false, d)
  30170. }
  30171. func (f fastpathT) DecMapBoolUint16X(vp *map[bool]uint16, d *Decoder) {
  30172. if v, changed := f.DecMapBoolUint16V(*vp, true, d); changed {
  30173. *vp = v
  30174. }
  30175. }
  30176. func (_ fastpathT) DecMapBoolUint16V(v map[bool]uint16, canChange bool,
  30177. d *Decoder) (_ map[bool]uint16, changed bool) {
  30178. dd, esep := d.d, d.hh.hasElemSeparators()
  30179. containerLen := dd.ReadMapStart()
  30180. if canChange && v == nil {
  30181. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  30182. v = make(map[bool]uint16, xlen)
  30183. changed = true
  30184. }
  30185. if containerLen == 0 {
  30186. dd.ReadMapEnd()
  30187. return v, changed
  30188. }
  30189. var mk bool
  30190. var mv uint16
  30191. hasLen := containerLen > 0
  30192. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30193. if esep {
  30194. dd.ReadMapElemKey()
  30195. }
  30196. mk = dd.DecodeBool()
  30197. if esep {
  30198. dd.ReadMapElemValue()
  30199. }
  30200. if dd.TryDecodeAsNil() {
  30201. if d.h.DeleteOnNilMapValue {
  30202. delete(v, mk)
  30203. } else {
  30204. v[mk] = 0
  30205. }
  30206. continue
  30207. }
  30208. mv = uint16(dd.DecodeUint(16))
  30209. if v != nil {
  30210. v[mk] = mv
  30211. }
  30212. }
  30213. dd.ReadMapEnd()
  30214. return v, changed
  30215. }
  30216. func (d *Decoder) fastpathDecMapBoolUint32R(f *codecFnInfo, rv reflect.Value) {
  30217. if rv.Kind() == reflect.Ptr {
  30218. vp := rv2i(rv).(*map[bool]uint32)
  30219. if v, changed := fastpathTV.DecMapBoolUint32V(*vp, true, d); changed {
  30220. *vp = v
  30221. }
  30222. return
  30223. }
  30224. fastpathTV.DecMapBoolUint32V(rv2i(rv).(map[bool]uint32), false, d)
  30225. }
  30226. func (f fastpathT) DecMapBoolUint32X(vp *map[bool]uint32, d *Decoder) {
  30227. if v, changed := f.DecMapBoolUint32V(*vp, true, d); changed {
  30228. *vp = v
  30229. }
  30230. }
  30231. func (_ fastpathT) DecMapBoolUint32V(v map[bool]uint32, canChange bool,
  30232. d *Decoder) (_ map[bool]uint32, changed bool) {
  30233. dd, esep := d.d, d.hh.hasElemSeparators()
  30234. containerLen := dd.ReadMapStart()
  30235. if canChange && v == nil {
  30236. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  30237. v = make(map[bool]uint32, xlen)
  30238. changed = true
  30239. }
  30240. if containerLen == 0 {
  30241. dd.ReadMapEnd()
  30242. return v, changed
  30243. }
  30244. var mk bool
  30245. var mv uint32
  30246. hasLen := containerLen > 0
  30247. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30248. if esep {
  30249. dd.ReadMapElemKey()
  30250. }
  30251. mk = dd.DecodeBool()
  30252. if esep {
  30253. dd.ReadMapElemValue()
  30254. }
  30255. if dd.TryDecodeAsNil() {
  30256. if d.h.DeleteOnNilMapValue {
  30257. delete(v, mk)
  30258. } else {
  30259. v[mk] = 0
  30260. }
  30261. continue
  30262. }
  30263. mv = uint32(dd.DecodeUint(32))
  30264. if v != nil {
  30265. v[mk] = mv
  30266. }
  30267. }
  30268. dd.ReadMapEnd()
  30269. return v, changed
  30270. }
  30271. func (d *Decoder) fastpathDecMapBoolUint64R(f *codecFnInfo, rv reflect.Value) {
  30272. if rv.Kind() == reflect.Ptr {
  30273. vp := rv2i(rv).(*map[bool]uint64)
  30274. if v, changed := fastpathTV.DecMapBoolUint64V(*vp, true, d); changed {
  30275. *vp = v
  30276. }
  30277. return
  30278. }
  30279. fastpathTV.DecMapBoolUint64V(rv2i(rv).(map[bool]uint64), false, d)
  30280. }
  30281. func (f fastpathT) DecMapBoolUint64X(vp *map[bool]uint64, d *Decoder) {
  30282. if v, changed := f.DecMapBoolUint64V(*vp, true, d); changed {
  30283. *vp = v
  30284. }
  30285. }
  30286. func (_ fastpathT) DecMapBoolUint64V(v map[bool]uint64, canChange bool,
  30287. d *Decoder) (_ map[bool]uint64, changed bool) {
  30288. dd, esep := d.d, d.hh.hasElemSeparators()
  30289. containerLen := dd.ReadMapStart()
  30290. if canChange && v == nil {
  30291. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  30292. v = make(map[bool]uint64, xlen)
  30293. changed = true
  30294. }
  30295. if containerLen == 0 {
  30296. dd.ReadMapEnd()
  30297. return v, changed
  30298. }
  30299. var mk bool
  30300. var mv uint64
  30301. hasLen := containerLen > 0
  30302. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30303. if esep {
  30304. dd.ReadMapElemKey()
  30305. }
  30306. mk = dd.DecodeBool()
  30307. if esep {
  30308. dd.ReadMapElemValue()
  30309. }
  30310. if dd.TryDecodeAsNil() {
  30311. if d.h.DeleteOnNilMapValue {
  30312. delete(v, mk)
  30313. } else {
  30314. v[mk] = 0
  30315. }
  30316. continue
  30317. }
  30318. mv = dd.DecodeUint(64)
  30319. if v != nil {
  30320. v[mk] = mv
  30321. }
  30322. }
  30323. dd.ReadMapEnd()
  30324. return v, changed
  30325. }
  30326. func (d *Decoder) fastpathDecMapBoolUintptrR(f *codecFnInfo, rv reflect.Value) {
  30327. if rv.Kind() == reflect.Ptr {
  30328. vp := rv2i(rv).(*map[bool]uintptr)
  30329. if v, changed := fastpathTV.DecMapBoolUintptrV(*vp, true, d); changed {
  30330. *vp = v
  30331. }
  30332. return
  30333. }
  30334. fastpathTV.DecMapBoolUintptrV(rv2i(rv).(map[bool]uintptr), false, d)
  30335. }
  30336. func (f fastpathT) DecMapBoolUintptrX(vp *map[bool]uintptr, d *Decoder) {
  30337. if v, changed := f.DecMapBoolUintptrV(*vp, true, d); changed {
  30338. *vp = v
  30339. }
  30340. }
  30341. func (_ fastpathT) DecMapBoolUintptrV(v map[bool]uintptr, canChange bool,
  30342. d *Decoder) (_ map[bool]uintptr, changed bool) {
  30343. dd, esep := d.d, d.hh.hasElemSeparators()
  30344. containerLen := dd.ReadMapStart()
  30345. if canChange && v == nil {
  30346. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  30347. v = make(map[bool]uintptr, xlen)
  30348. changed = true
  30349. }
  30350. if containerLen == 0 {
  30351. dd.ReadMapEnd()
  30352. return v, changed
  30353. }
  30354. var mk bool
  30355. var mv uintptr
  30356. hasLen := containerLen > 0
  30357. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30358. if esep {
  30359. dd.ReadMapElemKey()
  30360. }
  30361. mk = dd.DecodeBool()
  30362. if esep {
  30363. dd.ReadMapElemValue()
  30364. }
  30365. if dd.TryDecodeAsNil() {
  30366. if d.h.DeleteOnNilMapValue {
  30367. delete(v, mk)
  30368. } else {
  30369. v[mk] = 0
  30370. }
  30371. continue
  30372. }
  30373. mv = uintptr(dd.DecodeUint(uintBitsize))
  30374. if v != nil {
  30375. v[mk] = mv
  30376. }
  30377. }
  30378. dd.ReadMapEnd()
  30379. return v, changed
  30380. }
  30381. func (d *Decoder) fastpathDecMapBoolIntR(f *codecFnInfo, rv reflect.Value) {
  30382. if rv.Kind() == reflect.Ptr {
  30383. vp := rv2i(rv).(*map[bool]int)
  30384. if v, changed := fastpathTV.DecMapBoolIntV(*vp, true, d); changed {
  30385. *vp = v
  30386. }
  30387. return
  30388. }
  30389. fastpathTV.DecMapBoolIntV(rv2i(rv).(map[bool]int), false, d)
  30390. }
  30391. func (f fastpathT) DecMapBoolIntX(vp *map[bool]int, d *Decoder) {
  30392. if v, changed := f.DecMapBoolIntV(*vp, true, d); changed {
  30393. *vp = v
  30394. }
  30395. }
  30396. func (_ fastpathT) DecMapBoolIntV(v map[bool]int, canChange bool,
  30397. d *Decoder) (_ map[bool]int, changed bool) {
  30398. dd, esep := d.d, d.hh.hasElemSeparators()
  30399. containerLen := dd.ReadMapStart()
  30400. if canChange && v == nil {
  30401. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  30402. v = make(map[bool]int, xlen)
  30403. changed = true
  30404. }
  30405. if containerLen == 0 {
  30406. dd.ReadMapEnd()
  30407. return v, changed
  30408. }
  30409. var mk bool
  30410. var mv int
  30411. hasLen := containerLen > 0
  30412. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30413. if esep {
  30414. dd.ReadMapElemKey()
  30415. }
  30416. mk = dd.DecodeBool()
  30417. if esep {
  30418. dd.ReadMapElemValue()
  30419. }
  30420. if dd.TryDecodeAsNil() {
  30421. if d.h.DeleteOnNilMapValue {
  30422. delete(v, mk)
  30423. } else {
  30424. v[mk] = 0
  30425. }
  30426. continue
  30427. }
  30428. mv = int(dd.DecodeInt(intBitsize))
  30429. if v != nil {
  30430. v[mk] = mv
  30431. }
  30432. }
  30433. dd.ReadMapEnd()
  30434. return v, changed
  30435. }
  30436. func (d *Decoder) fastpathDecMapBoolInt8R(f *codecFnInfo, rv reflect.Value) {
  30437. if rv.Kind() == reflect.Ptr {
  30438. vp := rv2i(rv).(*map[bool]int8)
  30439. if v, changed := fastpathTV.DecMapBoolInt8V(*vp, true, d); changed {
  30440. *vp = v
  30441. }
  30442. return
  30443. }
  30444. fastpathTV.DecMapBoolInt8V(rv2i(rv).(map[bool]int8), false, d)
  30445. }
  30446. func (f fastpathT) DecMapBoolInt8X(vp *map[bool]int8, d *Decoder) {
  30447. if v, changed := f.DecMapBoolInt8V(*vp, true, d); changed {
  30448. *vp = v
  30449. }
  30450. }
  30451. func (_ fastpathT) DecMapBoolInt8V(v map[bool]int8, canChange bool,
  30452. d *Decoder) (_ map[bool]int8, changed bool) {
  30453. dd, esep := d.d, d.hh.hasElemSeparators()
  30454. containerLen := dd.ReadMapStart()
  30455. if canChange && v == nil {
  30456. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  30457. v = make(map[bool]int8, xlen)
  30458. changed = true
  30459. }
  30460. if containerLen == 0 {
  30461. dd.ReadMapEnd()
  30462. return v, changed
  30463. }
  30464. var mk bool
  30465. var mv int8
  30466. hasLen := containerLen > 0
  30467. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30468. if esep {
  30469. dd.ReadMapElemKey()
  30470. }
  30471. mk = dd.DecodeBool()
  30472. if esep {
  30473. dd.ReadMapElemValue()
  30474. }
  30475. if dd.TryDecodeAsNil() {
  30476. if d.h.DeleteOnNilMapValue {
  30477. delete(v, mk)
  30478. } else {
  30479. v[mk] = 0
  30480. }
  30481. continue
  30482. }
  30483. mv = int8(dd.DecodeInt(8))
  30484. if v != nil {
  30485. v[mk] = mv
  30486. }
  30487. }
  30488. dd.ReadMapEnd()
  30489. return v, changed
  30490. }
  30491. func (d *Decoder) fastpathDecMapBoolInt16R(f *codecFnInfo, rv reflect.Value) {
  30492. if rv.Kind() == reflect.Ptr {
  30493. vp := rv2i(rv).(*map[bool]int16)
  30494. if v, changed := fastpathTV.DecMapBoolInt16V(*vp, true, d); changed {
  30495. *vp = v
  30496. }
  30497. return
  30498. }
  30499. fastpathTV.DecMapBoolInt16V(rv2i(rv).(map[bool]int16), false, d)
  30500. }
  30501. func (f fastpathT) DecMapBoolInt16X(vp *map[bool]int16, d *Decoder) {
  30502. if v, changed := f.DecMapBoolInt16V(*vp, true, d); changed {
  30503. *vp = v
  30504. }
  30505. }
  30506. func (_ fastpathT) DecMapBoolInt16V(v map[bool]int16, canChange bool,
  30507. d *Decoder) (_ map[bool]int16, changed bool) {
  30508. dd, esep := d.d, d.hh.hasElemSeparators()
  30509. containerLen := dd.ReadMapStart()
  30510. if canChange && v == nil {
  30511. xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
  30512. v = make(map[bool]int16, xlen)
  30513. changed = true
  30514. }
  30515. if containerLen == 0 {
  30516. dd.ReadMapEnd()
  30517. return v, changed
  30518. }
  30519. var mk bool
  30520. var mv int16
  30521. hasLen := containerLen > 0
  30522. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30523. if esep {
  30524. dd.ReadMapElemKey()
  30525. }
  30526. mk = dd.DecodeBool()
  30527. if esep {
  30528. dd.ReadMapElemValue()
  30529. }
  30530. if dd.TryDecodeAsNil() {
  30531. if d.h.DeleteOnNilMapValue {
  30532. delete(v, mk)
  30533. } else {
  30534. v[mk] = 0
  30535. }
  30536. continue
  30537. }
  30538. mv = int16(dd.DecodeInt(16))
  30539. if v != nil {
  30540. v[mk] = mv
  30541. }
  30542. }
  30543. dd.ReadMapEnd()
  30544. return v, changed
  30545. }
  30546. func (d *Decoder) fastpathDecMapBoolInt32R(f *codecFnInfo, rv reflect.Value) {
  30547. if rv.Kind() == reflect.Ptr {
  30548. vp := rv2i(rv).(*map[bool]int32)
  30549. if v, changed := fastpathTV.DecMapBoolInt32V(*vp, true, d); changed {
  30550. *vp = v
  30551. }
  30552. return
  30553. }
  30554. fastpathTV.DecMapBoolInt32V(rv2i(rv).(map[bool]int32), false, d)
  30555. }
  30556. func (f fastpathT) DecMapBoolInt32X(vp *map[bool]int32, d *Decoder) {
  30557. if v, changed := f.DecMapBoolInt32V(*vp, true, d); changed {
  30558. *vp = v
  30559. }
  30560. }
  30561. func (_ fastpathT) DecMapBoolInt32V(v map[bool]int32, canChange bool,
  30562. d *Decoder) (_ map[bool]int32, changed bool) {
  30563. dd, esep := d.d, d.hh.hasElemSeparators()
  30564. containerLen := dd.ReadMapStart()
  30565. if canChange && v == nil {
  30566. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  30567. v = make(map[bool]int32, xlen)
  30568. changed = true
  30569. }
  30570. if containerLen == 0 {
  30571. dd.ReadMapEnd()
  30572. return v, changed
  30573. }
  30574. var mk bool
  30575. var mv int32
  30576. hasLen := containerLen > 0
  30577. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30578. if esep {
  30579. dd.ReadMapElemKey()
  30580. }
  30581. mk = dd.DecodeBool()
  30582. if esep {
  30583. dd.ReadMapElemValue()
  30584. }
  30585. if dd.TryDecodeAsNil() {
  30586. if d.h.DeleteOnNilMapValue {
  30587. delete(v, mk)
  30588. } else {
  30589. v[mk] = 0
  30590. }
  30591. continue
  30592. }
  30593. mv = int32(dd.DecodeInt(32))
  30594. if v != nil {
  30595. v[mk] = mv
  30596. }
  30597. }
  30598. dd.ReadMapEnd()
  30599. return v, changed
  30600. }
  30601. func (d *Decoder) fastpathDecMapBoolInt64R(f *codecFnInfo, rv reflect.Value) {
  30602. if rv.Kind() == reflect.Ptr {
  30603. vp := rv2i(rv).(*map[bool]int64)
  30604. if v, changed := fastpathTV.DecMapBoolInt64V(*vp, true, d); changed {
  30605. *vp = v
  30606. }
  30607. return
  30608. }
  30609. fastpathTV.DecMapBoolInt64V(rv2i(rv).(map[bool]int64), false, d)
  30610. }
  30611. func (f fastpathT) DecMapBoolInt64X(vp *map[bool]int64, d *Decoder) {
  30612. if v, changed := f.DecMapBoolInt64V(*vp, true, d); changed {
  30613. *vp = v
  30614. }
  30615. }
  30616. func (_ fastpathT) DecMapBoolInt64V(v map[bool]int64, canChange bool,
  30617. d *Decoder) (_ map[bool]int64, changed bool) {
  30618. dd, esep := d.d, d.hh.hasElemSeparators()
  30619. containerLen := dd.ReadMapStart()
  30620. if canChange && v == nil {
  30621. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  30622. v = make(map[bool]int64, xlen)
  30623. changed = true
  30624. }
  30625. if containerLen == 0 {
  30626. dd.ReadMapEnd()
  30627. return v, changed
  30628. }
  30629. var mk bool
  30630. var mv int64
  30631. hasLen := containerLen > 0
  30632. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30633. if esep {
  30634. dd.ReadMapElemKey()
  30635. }
  30636. mk = dd.DecodeBool()
  30637. if esep {
  30638. dd.ReadMapElemValue()
  30639. }
  30640. if dd.TryDecodeAsNil() {
  30641. if d.h.DeleteOnNilMapValue {
  30642. delete(v, mk)
  30643. } else {
  30644. v[mk] = 0
  30645. }
  30646. continue
  30647. }
  30648. mv = dd.DecodeInt(64)
  30649. if v != nil {
  30650. v[mk] = mv
  30651. }
  30652. }
  30653. dd.ReadMapEnd()
  30654. return v, changed
  30655. }
  30656. func (d *Decoder) fastpathDecMapBoolFloat32R(f *codecFnInfo, rv reflect.Value) {
  30657. if rv.Kind() == reflect.Ptr {
  30658. vp := rv2i(rv).(*map[bool]float32)
  30659. if v, changed := fastpathTV.DecMapBoolFloat32V(*vp, true, d); changed {
  30660. *vp = v
  30661. }
  30662. return
  30663. }
  30664. fastpathTV.DecMapBoolFloat32V(rv2i(rv).(map[bool]float32), false, d)
  30665. }
  30666. func (f fastpathT) DecMapBoolFloat32X(vp *map[bool]float32, d *Decoder) {
  30667. if v, changed := f.DecMapBoolFloat32V(*vp, true, d); changed {
  30668. *vp = v
  30669. }
  30670. }
  30671. func (_ fastpathT) DecMapBoolFloat32V(v map[bool]float32, canChange bool,
  30672. d *Decoder) (_ map[bool]float32, changed bool) {
  30673. dd, esep := d.d, d.hh.hasElemSeparators()
  30674. containerLen := dd.ReadMapStart()
  30675. if canChange && v == nil {
  30676. xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
  30677. v = make(map[bool]float32, xlen)
  30678. changed = true
  30679. }
  30680. if containerLen == 0 {
  30681. dd.ReadMapEnd()
  30682. return v, changed
  30683. }
  30684. var mk bool
  30685. var mv float32
  30686. hasLen := containerLen > 0
  30687. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30688. if esep {
  30689. dd.ReadMapElemKey()
  30690. }
  30691. mk = dd.DecodeBool()
  30692. if esep {
  30693. dd.ReadMapElemValue()
  30694. }
  30695. if dd.TryDecodeAsNil() {
  30696. if d.h.DeleteOnNilMapValue {
  30697. delete(v, mk)
  30698. } else {
  30699. v[mk] = 0
  30700. }
  30701. continue
  30702. }
  30703. mv = float32(dd.DecodeFloat(true))
  30704. if v != nil {
  30705. v[mk] = mv
  30706. }
  30707. }
  30708. dd.ReadMapEnd()
  30709. return v, changed
  30710. }
  30711. func (d *Decoder) fastpathDecMapBoolFloat64R(f *codecFnInfo, rv reflect.Value) {
  30712. if rv.Kind() == reflect.Ptr {
  30713. vp := rv2i(rv).(*map[bool]float64)
  30714. if v, changed := fastpathTV.DecMapBoolFloat64V(*vp, true, d); changed {
  30715. *vp = v
  30716. }
  30717. return
  30718. }
  30719. fastpathTV.DecMapBoolFloat64V(rv2i(rv).(map[bool]float64), false, d)
  30720. }
  30721. func (f fastpathT) DecMapBoolFloat64X(vp *map[bool]float64, d *Decoder) {
  30722. if v, changed := f.DecMapBoolFloat64V(*vp, true, d); changed {
  30723. *vp = v
  30724. }
  30725. }
  30726. func (_ fastpathT) DecMapBoolFloat64V(v map[bool]float64, canChange bool,
  30727. d *Decoder) (_ map[bool]float64, changed bool) {
  30728. dd, esep := d.d, d.hh.hasElemSeparators()
  30729. containerLen := dd.ReadMapStart()
  30730. if canChange && v == nil {
  30731. xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
  30732. v = make(map[bool]float64, xlen)
  30733. changed = true
  30734. }
  30735. if containerLen == 0 {
  30736. dd.ReadMapEnd()
  30737. return v, changed
  30738. }
  30739. var mk bool
  30740. var mv float64
  30741. hasLen := containerLen > 0
  30742. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30743. if esep {
  30744. dd.ReadMapElemKey()
  30745. }
  30746. mk = dd.DecodeBool()
  30747. if esep {
  30748. dd.ReadMapElemValue()
  30749. }
  30750. if dd.TryDecodeAsNil() {
  30751. if d.h.DeleteOnNilMapValue {
  30752. delete(v, mk)
  30753. } else {
  30754. v[mk] = 0
  30755. }
  30756. continue
  30757. }
  30758. mv = dd.DecodeFloat(false)
  30759. if v != nil {
  30760. v[mk] = mv
  30761. }
  30762. }
  30763. dd.ReadMapEnd()
  30764. return v, changed
  30765. }
  30766. func (d *Decoder) fastpathDecMapBoolBoolR(f *codecFnInfo, rv reflect.Value) {
  30767. if rv.Kind() == reflect.Ptr {
  30768. vp := rv2i(rv).(*map[bool]bool)
  30769. if v, changed := fastpathTV.DecMapBoolBoolV(*vp, true, d); changed {
  30770. *vp = v
  30771. }
  30772. return
  30773. }
  30774. fastpathTV.DecMapBoolBoolV(rv2i(rv).(map[bool]bool), false, d)
  30775. }
  30776. func (f fastpathT) DecMapBoolBoolX(vp *map[bool]bool, d *Decoder) {
  30777. if v, changed := f.DecMapBoolBoolV(*vp, true, d); changed {
  30778. *vp = v
  30779. }
  30780. }
  30781. func (_ fastpathT) DecMapBoolBoolV(v map[bool]bool, canChange bool,
  30782. d *Decoder) (_ map[bool]bool, changed bool) {
  30783. dd, esep := d.d, d.hh.hasElemSeparators()
  30784. containerLen := dd.ReadMapStart()
  30785. if canChange && v == nil {
  30786. xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
  30787. v = make(map[bool]bool, xlen)
  30788. changed = true
  30789. }
  30790. if containerLen == 0 {
  30791. dd.ReadMapEnd()
  30792. return v, changed
  30793. }
  30794. var mk bool
  30795. var mv bool
  30796. hasLen := containerLen > 0
  30797. for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
  30798. if esep {
  30799. dd.ReadMapElemKey()
  30800. }
  30801. mk = dd.DecodeBool()
  30802. if esep {
  30803. dd.ReadMapElemValue()
  30804. }
  30805. if dd.TryDecodeAsNil() {
  30806. if d.h.DeleteOnNilMapValue {
  30807. delete(v, mk)
  30808. } else {
  30809. v[mk] = false
  30810. }
  30811. continue
  30812. }
  30813. mv = dd.DecodeBool()
  30814. if v != nil {
  30815. v[mk] = mv
  30816. }
  30817. }
  30818. dd.ReadMapEnd()
  30819. return v, changed
  30820. }