CommunityToolkit.HighPerformance.xml 454 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594
  1. <?xml version="1.0"?>
  2. <doc>
  3. <assembly>
  4. <name>CommunityToolkit.HighPerformance</name>
  5. </assembly>
  6. <members>
  7. <member name="T:CommunityToolkit.HighPerformance.Box`1">
  8. <summary>
  9. A <see langword="class"/> that represents a boxed <typeparamref name="T"/> value on the managed heap.
  10. This is a "shadow" type that can be used in place of a non-generic <see cref="T:System.Object"/> reference to a
  11. boxed value type, to make the code more expressive and reduce the chances of errors.
  12. Consider this example:
  13. <code>
  14. object obj = 42;
  15. // Manual, error prone unboxing
  16. int sum = (int)obj + 1;
  17. </code>
  18. In this example, it is not possible to know in advance what type is actually being boxed in a given
  19. <see cref="T:System.Object"/> instance, making the code less robust at build time. The <see cref="T:CommunityToolkit.HighPerformance.Box`1"/>
  20. type can be used as a drop-in replacement in this case, like so:
  21. <code>
  22. Box&lt;int> box = 42;
  23. // Build-time validation, automatic unboxing
  24. int sum = box.Value + 1;
  25. </code>
  26. This type can also be useful when dealing with large custom value types that are also boxed, as
  27. it allows to retrieve a mutable reference to the boxing value. This means that a given boxed
  28. value can be mutated in-place, instead of having to allocate a new updated boxed instance.
  29. </summary>
  30. <typeparam name="T">The type of value being boxed.</typeparam>
  31. </member>
  32. <member name="M:CommunityToolkit.HighPerformance.Box`1.#ctor">
  33. <summary>
  34. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> class.
  35. </summary>
  36. <remarks>
  37. This constructor is never used, it is only declared in order to mark it with
  38. the <see langword="private"/> visibility modifier and prevent direct use.
  39. </remarks>
  40. <exception cref="T:System.InvalidOperationException">Always thrown when this constructor is used (eg. from reflection).</exception>
  41. </member>
  42. <member name="M:CommunityToolkit.HighPerformance.Box`1.GetFrom(System.Object)">
  43. <summary>
  44. Returns a <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> reference from the input <see cref="T:System.Object"/> instance.
  45. </summary>
  46. <param name="obj">The input <see cref="T:System.Object"/> instance, representing a boxed <typeparamref name="T"/> value.</param>
  47. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> reference pointing to <paramref name="obj"/>.</returns>
  48. </member>
  49. <member name="M:CommunityToolkit.HighPerformance.Box`1.DangerousGetFrom(System.Object)">
  50. <summary>
  51. Returns a <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> reference from the input <see cref="T:System.Object"/> instance.
  52. </summary>
  53. <param name="obj">The input <see cref="T:System.Object"/> instance, representing a boxed <typeparamref name="T"/> value.</param>
  54. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> reference pointing to <paramref name="obj"/>.</returns>
  55. <remarks>
  56. This method doesn't check the actual type of <paramref name="obj"/>, so it is responsibility of the caller
  57. to ensure it actually represents a boxed <typeparamref name="T"/> value and not some other instance.
  58. </remarks>
  59. </member>
  60. <member name="M:CommunityToolkit.HighPerformance.Box`1.TryGetFrom(System.Object,CommunityToolkit.HighPerformance.Box{`0}@)">
  61. <summary>
  62. Tries to get a <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> reference from an input <see cref="T:System.Object"/> representing a boxed <typeparamref name="T"/> value.
  63. </summary>
  64. <param name="obj">The input <see cref="T:System.Object"/> instance to check.</param>
  65. <param name="box">The resulting <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> reference, if <paramref name="obj"/> was a boxed <typeparamref name="T"/> value.</param>
  66. <returns><see langword="true"/> if a <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> instance was retrieved correctly, <see langword="false"/> otherwise.</returns>
  67. </member>
  68. <member name="M:CommunityToolkit.HighPerformance.Box`1.op_Implicit(CommunityToolkit.HighPerformance.Box{`0})~`0">
  69. <summary>
  70. Implicitly gets the <typeparamref name="T"/> value from a given <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> instance.
  71. </summary>
  72. <param name="box">The input <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> instance.</param>
  73. </member>
  74. <member name="M:CommunityToolkit.HighPerformance.Box`1.op_Implicit(`0)~CommunityToolkit.HighPerformance.Box{`0}">
  75. <summary>
  76. Implicitly creates a new <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> instance from a given <typeparamref name="T"/> value.
  77. </summary>
  78. <param name="value">The input <typeparamref name="T"/> value to wrap.</param>
  79. </member>
  80. <member name="M:CommunityToolkit.HighPerformance.Box`1.ToString">
  81. <inheritdoc/>
  82. </member>
  83. <member name="M:CommunityToolkit.HighPerformance.Box`1.Equals(System.Object)">
  84. <inheritdoc/>
  85. </member>
  86. <member name="M:CommunityToolkit.HighPerformance.Box`1.GetHashCode">
  87. <inheritdoc/>
  88. </member>
  89. <member name="M:CommunityToolkit.HighPerformance.Box`1.ThrowInvalidCastExceptionForGetFrom">
  90. <summary>
  91. Throws an <see cref="T:System.InvalidCastException"/> when a cast from an invalid <see cref="T:System.Object"/> is attempted.
  92. </summary>
  93. </member>
  94. <member name="T:CommunityToolkit.HighPerformance.BoxExtensions">
  95. <summary>
  96. Helpers for working with the <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> type.
  97. </summary>
  98. </member>
  99. <member name="M:CommunityToolkit.HighPerformance.BoxExtensions.GetReference``1(CommunityToolkit.HighPerformance.Box{``0})">
  100. <summary>
  101. Gets a <typeparamref name="T"/> reference from a <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> instance.
  102. </summary>
  103. <typeparam name="T">The type of reference to retrieve.</typeparam>
  104. <param name="box">The input <see cref="T:CommunityToolkit.HighPerformance.Box`1"/> instance.</param>
  105. <returns>A <typeparamref name="T"/> reference to the boxed value within <paramref name="box"/>.</returns>
  106. </member>
  107. <member name="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1">
  108. <summary>
  109. Represents a heap-based, array-backed output sink into which <typeparamref name="T"/> data can be written.
  110. </summary>
  111. <typeparam name="T">The type of items to write to the current instance.</typeparam>
  112. <remarks>
  113. This is a custom <see cref="T:System.Buffers.IBufferWriter`1"/> implementation that replicates the
  114. functionality and API surface of the array-based buffer writer available in
  115. .NET Standard 2.1, with the main difference being the fact that in this case
  116. the arrays in use are rented from the shared <see cref="T:System.Buffers.ArrayPool`1"/> instance,
  117. and that <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> is also available on .NET Standard 2.0.
  118. </remarks>
  119. </member>
  120. <member name="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.DefaultInitialBufferSize">
  121. <summary>
  122. The default buffer size to use to expand empty arrays.
  123. </summary>
  124. </member>
  125. <member name="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.pool">
  126. <summary>
  127. The <see cref="T:System.Buffers.ArrayPool`1"/> instance used to rent <see cref="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.array"/>.
  128. </summary>
  129. </member>
  130. <member name="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.array">
  131. <summary>
  132. The underlying <typeparamref name="T"/> array.
  133. </summary>
  134. </member>
  135. <member name="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.index">
  136. <summary>
  137. The starting offset within <see cref="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.array"/>.
  138. </summary>
  139. </member>
  140. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.#ctor">
  141. <summary>
  142. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> class.
  143. </summary>
  144. </member>
  145. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.#ctor(System.Buffers.ArrayPool{`0})">
  146. <summary>
  147. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> class.
  148. </summary>
  149. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance to use.</param>
  150. </member>
  151. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.#ctor(System.Int32)">
  152. <summary>
  153. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> class.
  154. </summary>
  155. <param name="initialCapacity">The minimum capacity with which to initialize the underlying buffer.</param>
  156. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="initialCapacity"/> is not valid.</exception>
  157. </member>
  158. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.#ctor(System.Buffers.ArrayPool{`0},System.Int32)">
  159. <summary>
  160. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> class.
  161. </summary>
  162. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance to use.</param>
  163. <param name="initialCapacity">The minimum capacity with which to initialize the underlying buffer.</param>
  164. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="initialCapacity"/> is not valid.</exception>
  165. </member>
  166. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.Finalize">
  167. <summary>
  168. Finalizes an instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> class.
  169. </summary>
  170. </member>
  171. <member name="P:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.System#Buffers#IMemoryOwner{T}#Memory">
  172. <inheritdoc/>
  173. </member>
  174. <member name="P:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.WrittenMemory">
  175. <inheritdoc/>
  176. </member>
  177. <member name="P:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.WrittenSpan">
  178. <inheritdoc/>
  179. </member>
  180. <member name="P:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.WrittenCount">
  181. <inheritdoc/>
  182. </member>
  183. <member name="P:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.Capacity">
  184. <inheritdoc/>
  185. </member>
  186. <member name="P:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.FreeCapacity">
  187. <inheritdoc/>
  188. </member>
  189. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.Clear">
  190. <inheritdoc/>
  191. </member>
  192. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.Advance(System.Int32)">
  193. <inheritdoc/>
  194. </member>
  195. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.GetMemory(System.Int32)">
  196. <inheritdoc/>
  197. </member>
  198. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.GetSpan(System.Int32)">
  199. <inheritdoc/>
  200. </member>
  201. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.CheckBufferAndEnsureCapacity(System.Int32)">
  202. <summary>
  203. Ensures that <see cref="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.array"/> has enough free space to contain a given number of new items.
  204. </summary>
  205. <param name="sizeHint">The minimum number of items to ensure space for in <see cref="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.array"/>.</param>
  206. </member>
  207. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.ResizeBuffer(System.Int32)">
  208. <summary>
  209. Resizes <see cref="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.array"/> to ensure it can fit the specified number of new items.
  210. </summary>
  211. <param name="sizeHint">The minimum number of items to ensure space for in <see cref="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.array"/>.</param>
  212. </member>
  213. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.Dispose">
  214. <inheritdoc/>
  215. </member>
  216. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.ToString">
  217. <inheritdoc/>
  218. </member>
  219. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.ThrowArgumentOutOfRangeExceptionForNegativeCount">
  220. <summary>
  221. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the requested count is negative.
  222. </summary>
  223. </member>
  224. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.ThrowArgumentOutOfRangeExceptionForNegativeSizeHint">
  225. <summary>
  226. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the size hint is negative.
  227. </summary>
  228. </member>
  229. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.ThrowArgumentExceptionForAdvancedTooFar">
  230. <summary>
  231. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the requested count is negative.
  232. </summary>
  233. </member>
  234. <member name="M:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.ThrowObjectDisposedException">
  235. <summary>
  236. Throws an <see cref="T:System.ObjectDisposedException"/> when <see cref="F:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1.array"/> is <see langword="null"/>.
  237. </summary>
  238. </member>
  239. <member name="T:CommunityToolkit.HighPerformance.Buffers.AllocationMode">
  240. <summary>
  241. An <see langword="enum"/> that indicates a mode to use when allocating buffers.
  242. </summary>
  243. </member>
  244. <member name="F:CommunityToolkit.HighPerformance.Buffers.AllocationMode.Default">
  245. <summary>
  246. The default allocation mode for pooled memory (rented buffers are not cleared).
  247. </summary>
  248. </member>
  249. <member name="F:CommunityToolkit.HighPerformance.Buffers.AllocationMode.Clear">
  250. <summary>
  251. Clear pooled buffers when renting them.
  252. </summary>
  253. </member>
  254. <member name="T:CommunityToolkit.HighPerformance.Buffers.IBuffer`1">
  255. <summary>
  256. An interface that expands <see cref="T:System.Buffers.IBufferWriter`1"/> with the ability to also inspect
  257. the written data, and to reset the underlying buffer to write again from the start.
  258. </summary>
  259. <typeparam name="T">The type of items in the current buffer.</typeparam>
  260. </member>
  261. <member name="P:CommunityToolkit.HighPerformance.Buffers.IBuffer`1.WrittenMemory">
  262. <summary>
  263. Gets the data written to the underlying buffer so far, as a <see cref="T:System.ReadOnlyMemory`1"/>.
  264. </summary>
  265. </member>
  266. <member name="P:CommunityToolkit.HighPerformance.Buffers.IBuffer`1.WrittenSpan">
  267. <summary>
  268. Gets the data written to the underlying buffer so far, as a <see cref="T:System.ReadOnlySpan`1"/>.
  269. </summary>
  270. </member>
  271. <member name="P:CommunityToolkit.HighPerformance.Buffers.IBuffer`1.WrittenCount">
  272. <summary>
  273. Gets the amount of data written to the underlying buffer so far.
  274. </summary>
  275. </member>
  276. <member name="P:CommunityToolkit.HighPerformance.Buffers.IBuffer`1.Capacity">
  277. <summary>
  278. Gets the total amount of space within the underlying buffer.
  279. </summary>
  280. </member>
  281. <member name="P:CommunityToolkit.HighPerformance.Buffers.IBuffer`1.FreeCapacity">
  282. <summary>
  283. Gets the amount of space available that can still be written into without forcing the underlying buffer to grow.
  284. </summary>
  285. </member>
  286. <member name="M:CommunityToolkit.HighPerformance.Buffers.IBuffer`1.Clear">
  287. <summary>
  288. Clears the data written to the underlying buffer.
  289. </summary>
  290. <remarks>
  291. You must clear the <see cref="T:CommunityToolkit.HighPerformance.Buffers.IBuffer`1"/> instance before trying to re-use it.
  292. </remarks>
  293. </member>
  294. <member name="T:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2">
  295. <summary>
  296. A custom <see cref="T:System.Buffers.MemoryManager`1"/> that casts data from a <typeparamref name="TFrom"/> array, to <typeparamref name="TTo"/> values.
  297. </summary>
  298. <typeparam name="TFrom">The source type of items to read.</typeparam>
  299. <typeparam name="TTo">The target type to cast the source items to.</typeparam>
  300. </member>
  301. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.array">
  302. <summary>
  303. The source <typeparamref name="TFrom"/> array to read data from.
  304. </summary>
  305. </member>
  306. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.offset">
  307. <summary>
  308. The starting offset within <see name="array"/>.
  309. </summary>
  310. </member>
  311. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.length">
  312. <summary>
  313. The original used length for <see name="array"/>.
  314. </summary>
  315. </member>
  316. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.#ctor(`0[],System.Int32,System.Int32)">
  317. <summary>
  318. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2"/> class.
  319. </summary>
  320. <param name="array">The source <typeparamref name="TFrom"/> array to read data from.</param>
  321. <param name="offset">The starting offset within <paramref name="array"/>.</param>
  322. <param name="length">The original used length for <paramref name="array"/>.</param>
  323. </member>
  324. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.GetSpan">
  325. <inheritdoc/>
  326. </member>
  327. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.Pin(System.Int32)">
  328. <inheritdoc/>
  329. </member>
  330. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.Unpin">
  331. <inheritdoc/>
  332. </member>
  333. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.Dispose(System.Boolean)">
  334. <inheritdoc/>
  335. </member>
  336. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.GetMemory``1(System.Int32,System.Int32)">
  337. <inheritdoc/>
  338. </member>
  339. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.ThrowArgumentOutOfRangeExceptionForInvalidIndex">
  340. <summary>
  341. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the target index for <see cref="M:CommunityToolkit.HighPerformance.Buffers.Internals.ArrayMemoryManager`2.Pin(System.Int32)"/> is invalid.
  342. </summary>
  343. </member>
  344. <member name="T:CommunityToolkit.HighPerformance.Buffers.Internals.Interfaces.IMemoryManager">
  345. <summary>
  346. An interface for a <see cref="T:System.Buffers.MemoryManager`1"/> instance that can reinterpret its underlying data.
  347. </summary>
  348. </member>
  349. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.Interfaces.IMemoryManager.GetMemory``1(System.Int32,System.Int32)">
  350. <summary>
  351. Creates a new <see cref="T:System.Memory`1"/> that reinterprets the underlying data for the current instance.
  352. </summary>
  353. <typeparam name="T">The target type to cast the items to.</typeparam>
  354. <param name="offset">The starting offset within the data store.</param>
  355. <param name="length">The original used length for the data store.</param>
  356. <returns>A new <see cref="T:System.Memory`1"/> instance of the specified type, reinterpreting the current items.</returns>
  357. </member>
  358. <member name="T:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2">
  359. <summary>
  360. A custom <see cref="T:System.Buffers.MemoryManager`1"/> that casts data from a <see cref="T:System.Buffers.MemoryManager`1"/> of <typeparamref name="TFrom"/>, to <typeparamref name="TTo"/> values.
  361. </summary>
  362. <typeparam name="TFrom">The source type of items to read.</typeparam>
  363. <typeparam name="TTo">The target type to cast the source items to.</typeparam>
  364. </member>
  365. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.memoryManager">
  366. <summary>
  367. The source <see cref="T:System.Buffers.MemoryManager`1"/> to read data from.
  368. </summary>
  369. </member>
  370. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.offset">
  371. <summary>
  372. The starting offset within <see name="memoryManager"/>.
  373. </summary>
  374. </member>
  375. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.length">
  376. <summary>
  377. The original used length for <see name="memoryManager"/>.
  378. </summary>
  379. </member>
  380. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.#ctor(System.Buffers.MemoryManager{`0},System.Int32,System.Int32)">
  381. <summary>
  382. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2"/> class.
  383. </summary>
  384. <param name="memoryManager">The source <see cref="T:System.Buffers.MemoryManager`1"/> to read data from.</param>
  385. <param name="offset">The starting offset within <paramref name="memoryManager"/>.</param>
  386. <param name="length">The original used length for <paramref name="memoryManager"/>.</param>
  387. </member>
  388. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.GetSpan">
  389. <inheritdoc/>
  390. </member>
  391. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.Pin(System.Int32)">
  392. <inheritdoc/>
  393. </member>
  394. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.Unpin">
  395. <inheritdoc/>
  396. </member>
  397. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.Dispose(System.Boolean)">
  398. <inheritdoc/>
  399. </member>
  400. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.GetMemory``1(System.Int32,System.Int32)">
  401. <inheritdoc/>
  402. </member>
  403. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.ThrowArgumentExceptionForInvalidIndex">
  404. <summary>
  405. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the target index for <see cref="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.Pin(System.Int32)"/> is invalid.
  406. </summary>
  407. </member>
  408. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.ThrowArgumentExceptionForInvalidAlignment">
  409. <summary>
  410. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when <see cref="M:CommunityToolkit.HighPerformance.Buffers.Internals.ProxyMemoryManager`2.Pin(System.Int32)"/> receives an invalid target index.
  411. </summary>
  412. </member>
  413. <member name="T:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1">
  414. <summary>
  415. A custom <see cref="T:System.Buffers.MemoryManager`1"/> that can wrap arbitrary <see cref="T:System.Object"/> instances.
  416. </summary>
  417. <typeparam name="T">The type of elements in the target memory area.</typeparam>
  418. </member>
  419. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.instance">
  420. <summary>
  421. The target <see cref="T:System.Object"/> instance.
  422. </summary>
  423. </member>
  424. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.offset">
  425. <summary>
  426. The initial offset within <see cref="F:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.instance"/>.
  427. </summary>
  428. </member>
  429. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.length">
  430. <summary>
  431. The length of the target memory area.
  432. </summary>
  433. </member>
  434. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.#ctor(System.Object,System.IntPtr,System.Int32)">
  435. <summary>
  436. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1"/> class.
  437. </summary>
  438. <param name="instance">The target <see cref="T:System.Object"/> instance.</param>
  439. <param name="offset">The starting offset within <paramref name="instance"/>.</param>
  440. <param name="length">The usable length within <paramref name="instance"/>.</param>
  441. </member>
  442. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.GetSpan">
  443. <inheritdoc/>
  444. </member>
  445. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.Pin(System.Int32)">
  446. <inheritdoc/>
  447. </member>
  448. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.Unpin">
  449. <inheritdoc/>
  450. </member>
  451. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.Dispose(System.Boolean)">
  452. <inheritdoc/>
  453. </member>
  454. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.ThrowArgumentOutOfRangeExceptionForInvalidElementIndex">
  455. <summary>
  456. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the input index for <see cref="M:CommunityToolkit.HighPerformance.Buffers.Internals.RawObjectMemoryManager`1.Pin(System.Int32)"/> is not valid.
  457. </summary>
  458. </member>
  459. <member name="T:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1">
  460. <summary>
  461. A custom <see cref="T:System.Buffers.MemoryManager`1"/> that casts data from a <see cref="T:System.String"/> to <typeparamref name="TTo"/> values.
  462. </summary>
  463. <typeparam name="TTo">The target type to cast the source characters to.</typeparam>
  464. </member>
  465. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.text">
  466. <summary>
  467. The source <see cref="T:System.String"/> to read data from.
  468. </summary>
  469. </member>
  470. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.offset">
  471. <summary>
  472. The starting offset within <see name="array"/>.
  473. </summary>
  474. </member>
  475. <member name="F:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.length">
  476. <summary>
  477. The original used length for <see name="array"/>.
  478. </summary>
  479. </member>
  480. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.#ctor(System.String,System.Int32,System.Int32)">
  481. <summary>
  482. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1"/> class.
  483. </summary>
  484. <param name="text">The source <see cref="T:System.String"/> to read data from.</param>
  485. <param name="offset">The starting offset within <paramref name="text"/>.</param>
  486. <param name="length">The original used length for <paramref name="text"/>.</param>
  487. </member>
  488. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.GetSpan">
  489. <inheritdoc/>
  490. </member>
  491. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.Pin(System.Int32)">
  492. <inheritdoc/>
  493. </member>
  494. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.Unpin">
  495. <inheritdoc/>
  496. </member>
  497. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.Dispose(System.Boolean)">
  498. <inheritdoc/>
  499. </member>
  500. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.GetMemory``1(System.Int32,System.Int32)">
  501. <inheritdoc/>
  502. </member>
  503. <member name="M:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.ThrowArgumentOutOfRangeExceptionForInvalidIndex">
  504. <summary>
  505. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the target index for <see cref="M:CommunityToolkit.HighPerformance.Buffers.Internals.StringMemoryManager`1.Pin(System.Int32)"/> is invalid.
  506. </summary>
  507. </member>
  508. <member name="T:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1">
  509. <summary>
  510. Represents an output sink into which <typeparamref name="T"/> data can be written, backed by a <see cref="T:System.Memory`1"/> instance.
  511. </summary>
  512. <typeparam name="T">The type of items to write to the current instance.</typeparam>
  513. <remarks>
  514. This is a custom <see cref="T:System.Buffers.IBufferWriter`1"/> implementation that wraps a <see cref="T:System.Memory`1"/> instance.
  515. It can be used to bridge APIs consuming an <see cref="T:System.Buffers.IBufferWriter`1"/> with existing <see cref="T:System.Memory`1"/>
  516. instances (or objects that can be converted to a <see cref="T:System.Memory`1"/>), to ensure the data is written directly
  517. to the intended buffer, with no possibility of doing additional allocations or expanding the available capacity.
  518. </remarks>
  519. </member>
  520. <member name="F:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.memory">
  521. <summary>
  522. The underlying <see cref="T:System.Memory`1"/> instance.
  523. </summary>
  524. </member>
  525. <member name="F:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.index">
  526. <summary>
  527. The starting offset within <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.memory"/>.
  528. </summary>
  529. </member>
  530. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.#ctor(System.Memory{`0})">
  531. <summary>
  532. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1"/> class.
  533. </summary>
  534. <param name="memory">The target <see cref="T:System.Memory`1"/> instance to write to.</param>
  535. </member>
  536. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.WrittenMemory">
  537. <inheritdoc/>
  538. </member>
  539. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.WrittenSpan">
  540. <inheritdoc/>
  541. </member>
  542. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.WrittenCount">
  543. <inheritdoc/>
  544. </member>
  545. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.Capacity">
  546. <inheritdoc/>
  547. </member>
  548. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.FreeCapacity">
  549. <inheritdoc/>
  550. </member>
  551. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.Clear">
  552. <inheritdoc/>
  553. </member>
  554. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.Advance(System.Int32)">
  555. <inheritdoc/>
  556. </member>
  557. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.GetMemory(System.Int32)">
  558. <inheritdoc/>
  559. </member>
  560. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.GetSpan(System.Int32)">
  561. <inheritdoc/>
  562. </member>
  563. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.ValidateSizeHint(System.Int32)">
  564. <summary>
  565. Validates the requested size for either <see cref="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.GetMemory(System.Int32)"/> or <see cref="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.GetSpan(System.Int32)"/>.
  566. </summary>
  567. <param name="sizeHint">The minimum number of items to ensure space for in <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.memory"/>.</param>
  568. </member>
  569. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.ToString">
  570. <inheritdoc/>
  571. </member>
  572. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.ThrowArgumentOutOfRangeExceptionForNegativeCount">
  573. <summary>
  574. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the requested count is negative.
  575. </summary>
  576. </member>
  577. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.ThrowArgumentOutOfRangeExceptionForNegativeSizeHint">
  578. <summary>
  579. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the size hint is negative.
  580. </summary>
  581. </member>
  582. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.ThrowArgumentExceptionForAdvancedTooFar">
  583. <summary>
  584. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the requested count is negative.
  585. </summary>
  586. </member>
  587. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1.ThrowArgumentExceptionForCapacityExceeded">
  588. <summary>
  589. Throws an <see cref="T:System.ArgumentException"/> when the requested size exceeds the capacity.
  590. </summary>
  591. </member>
  592. <member name="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1">
  593. <summary>
  594. An <see cref="T:System.Buffers.IMemoryOwner`1"/> implementation with an embedded length and a fast <see cref="T:System.Span`1"/> accessor.
  595. </summary>
  596. <typeparam name="T">The type of items to store in the current instance.</typeparam>
  597. </member>
  598. <member name="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.start">
  599. <summary>
  600. The starting offset within <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.array"/>.
  601. </summary>
  602. </member>
  603. <member name="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.length">
  604. <summary>
  605. The usable length within <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.array"/> (starting from <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.start"/>).
  606. </summary>
  607. </member>
  608. <member name="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.pool">
  609. <summary>
  610. The <see cref="T:System.Buffers.ArrayPool`1"/> instance used to rent <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.array"/>.
  611. </summary>
  612. </member>
  613. <member name="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.array">
  614. <summary>
  615. The underlying <typeparamref name="T"/> array.
  616. </summary>
  617. </member>
  618. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.#ctor(System.Int32,System.Buffers.ArrayPool{`0},CommunityToolkit.HighPerformance.Buffers.AllocationMode)">
  619. <summary>
  620. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> class with the specified parameters.
  621. </summary>
  622. <param name="length">The length of the new memory buffer to use.</param>
  623. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance to use.</param>
  624. <param name="mode">Indicates the allocation mode to use for the new buffer to rent.</param>
  625. </member>
  626. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.#ctor(System.Int32,System.Int32,System.Buffers.ArrayPool{`0},`0[])">
  627. <summary>
  628. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> class with the specified parameters.
  629. </summary>
  630. <param name="start">The starting offset within <paramref name="array"/>.</param>
  631. <param name="length">The length of the array to use.</param>
  632. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance currently in use.</param>
  633. <param name="array">The input <typeparamref name="T"/> array to use.</param>
  634. </member>
  635. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Finalize">
  636. <summary>
  637. Finalizes an instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> class.
  638. </summary>
  639. </member>
  640. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Empty">
  641. <summary>
  642. Gets an empty <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance.
  643. </summary>
  644. </member>
  645. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Allocate(System.Int32)">
  646. <summary>
  647. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance with the specified parameters.
  648. </summary>
  649. <param name="size">The length of the new memory buffer to use.</param>
  650. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance of the requested length.</returns>
  651. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="size"/> is not valid.</exception>
  652. <remarks>This method is just a proxy for the <see langword="private"/> constructor, for clarity.</remarks>
  653. </member>
  654. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Allocate(System.Int32,System.Buffers.ArrayPool{`0})">
  655. <summary>
  656. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance with the specified parameters.
  657. </summary>
  658. <param name="size">The length of the new memory buffer to use.</param>
  659. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance currently in use.</param>
  660. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance of the requested length.</returns>
  661. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="size"/> is not valid.</exception>
  662. <remarks>This method is just a proxy for the <see langword="private"/> constructor, for clarity.</remarks>
  663. </member>
  664. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Allocate(System.Int32,CommunityToolkit.HighPerformance.Buffers.AllocationMode)">
  665. <summary>
  666. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance with the specified parameters.
  667. </summary>
  668. <param name="size">The length of the new memory buffer to use.</param>
  669. <param name="mode">Indicates the allocation mode to use for the new buffer to rent.</param>
  670. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance of the requested length.</returns>
  671. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="size"/> is not valid.</exception>
  672. <remarks>This method is just a proxy for the <see langword="private"/> constructor, for clarity.</remarks>
  673. </member>
  674. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Allocate(System.Int32,System.Buffers.ArrayPool{`0},CommunityToolkit.HighPerformance.Buffers.AllocationMode)">
  675. <summary>
  676. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance with the specified parameters.
  677. </summary>
  678. <param name="size">The length of the new memory buffer to use.</param>
  679. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance currently in use.</param>
  680. <param name="mode">Indicates the allocation mode to use for the new buffer to rent.</param>
  681. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance of the requested length.</returns>
  682. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="size"/> is not valid.</exception>
  683. <remarks>This method is just a proxy for the <see langword="private"/> constructor, for clarity.</remarks>
  684. </member>
  685. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Length">
  686. <summary>
  687. Gets the number of items in the current instance
  688. </summary>
  689. </member>
  690. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Memory">
  691. <inheritdoc/>
  692. </member>
  693. <member name="P:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Span">
  694. <summary>
  695. Gets a <see cref="T:System.Span`1"/> wrapping the memory belonging to the current instance.
  696. </summary>
  697. </member>
  698. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.DangerousGetReference">
  699. <summary>
  700. Returns a reference to the first element within the current instance, with no bounds check.
  701. </summary>
  702. <returns>A reference to the first element within the current instance.</returns>
  703. <exception cref="T:System.ObjectDisposedException">Thrown when the buffer in use has already been disposed.</exception>
  704. <remarks>
  705. This method does not perform bounds checks on the underlying buffer, but does check whether
  706. the buffer itself has been disposed or not. This check should not be removed, and it's also
  707. the reason why the method to get a reference at a specified offset is not present.
  708. </remarks>
  709. </member>
  710. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.DangerousGetArray">
  711. <summary>
  712. Gets an <see cref="T:System.ArraySegment`1"/> instance wrapping the underlying <typeparamref name="T"/> array in use.
  713. </summary>
  714. <returns>An <see cref="T:System.ArraySegment`1"/> instance wrapping the underlying <typeparamref name="T"/> array in use.</returns>
  715. <exception cref="T:System.ObjectDisposedException">Thrown when the buffer in use has already been disposed.</exception>
  716. <remarks>
  717. This method is meant to be used when working with APIs that only accept an array as input, and should be used with caution.
  718. In particular, the returned array is rented from an array pool, and it is responsibility of the caller to ensure that it's
  719. not used after the current <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance is disposed. Doing so is considered undefined behavior,
  720. as the same array might be in use within another <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance.
  721. </remarks>
  722. </member>
  723. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Slice(System.Int32,System.Int32)">
  724. <summary>
  725. Slices the buffer currently in use and returns a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance.
  726. </summary>
  727. <param name="start">The starting offset within the current buffer.</param>
  728. <param name="length">The length of the buffer to use.</param>
  729. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance using the target range of items.</returns>
  730. <exception cref="T:System.ObjectDisposedException">Thrown when the buffer in use has already been disposed.</exception>
  731. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="start"/> or <paramref name="length"/> are not valid.</exception>
  732. <remarks>
  733. Using this method will dispose the current instance, and should only be used when an oversized
  734. buffer is rented and then adjusted in size, to avoid having to rent a new buffer of the new
  735. size and copy the previous items into the new one, or needing an additional variable/field
  736. to manually handle to track the used range within a given <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance.
  737. </remarks>
  738. </member>
  739. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.Dispose">
  740. <inheritdoc/>
  741. </member>
  742. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.ToString">
  743. <inheritdoc/>
  744. </member>
  745. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.ThrowObjectDisposedException">
  746. <summary>
  747. Throws an <see cref="T:System.ObjectDisposedException"/> when <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.array"/> is <see langword="null"/>.
  748. </summary>
  749. </member>
  750. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.ThrowInvalidOffsetException">
  751. <summary>
  752. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.start"/> is invalid.
  753. </summary>
  754. </member>
  755. <member name="M:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.ThrowInvalidLengthException">
  756. <summary>
  757. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the <see cref="F:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1.length"/> is invalid.
  758. </summary>
  759. </member>
  760. <member name="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1">
  761. <summary>
  762. A stack-only type with the ability to rent a buffer of a specified length and getting a <see cref="T:System.Span`1"/> from it.
  763. This type mirrors <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> but without allocations and with further optimizations.
  764. As this is a stack-only type, it relies on the duck-typed <see cref="T:System.IDisposable"/> pattern introduced with C# 8.
  765. It should be used like so:
  766. <code>
  767. using (SpanOwner&lt;byte> buffer = SpanOwner&lt;byte>.Allocate(1024))
  768. {
  769. // Use the buffer here...
  770. }
  771. </code>
  772. As soon as the code leaves the scope of that <see langword="using"/> block, the underlying buffer will automatically
  773. be disposed. The APIs in <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> rely on this pattern for extra performance, eg. they don't perform
  774. the additional checks that are done in <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> to ensure that the buffer hasn't been disposed
  775. before returning a <see cref="T:System.Memory`1"/> or <see cref="T:System.Span`1"/> instance from it.
  776. As such, this type should always be used with a <see langword="using"/> block or expression.
  777. Not doing so will cause the underlying buffer not to be returned to the shared pool.
  778. </summary>
  779. <typeparam name="T">The type of items to store in the current instance.</typeparam>
  780. </member>
  781. <member name="F:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.length">
  782. <summary>
  783. The usable length within <see cref="F:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.array"/>.
  784. </summary>
  785. </member>
  786. <member name="F:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.pool">
  787. <summary>
  788. The <see cref="T:System.Buffers.ArrayPool`1"/> instance used to rent <see cref="F:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.array"/>.
  789. </summary>
  790. </member>
  791. <member name="F:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.array">
  792. <summary>
  793. The underlying <typeparamref name="T"/> array.
  794. </summary>
  795. </member>
  796. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.#ctor(System.Int32,System.Buffers.ArrayPool{`0},CommunityToolkit.HighPerformance.Buffers.AllocationMode)">
  797. <summary>
  798. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> struct with the specified parameters.
  799. </summary>
  800. <param name="length">The length of the new memory buffer to use.</param>
  801. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance to use.</param>
  802. <param name="mode">Indicates the allocation mode to use for the new buffer to rent.</param>
  803. </member>
  804. <member name="P:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.Empty">
  805. <summary>
  806. Gets an empty <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance.
  807. </summary>
  808. </member>
  809. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.Allocate(System.Int32)">
  810. <summary>
  811. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance with the specified parameters.
  812. </summary>
  813. <param name="size">The length of the new memory buffer to use.</param>
  814. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance of the requested length.</returns>
  815. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="size"/> is not valid.</exception>
  816. <remarks>This method is just a proxy for the <see langword="private"/> constructor, for clarity.</remarks>
  817. </member>
  818. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.Allocate(System.Int32,System.Buffers.ArrayPool{`0})">
  819. <summary>
  820. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance with the specified parameters.
  821. </summary>
  822. <param name="size">The length of the new memory buffer to use.</param>
  823. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance to use.</param>
  824. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance of the requested length.</returns>
  825. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="size"/> is not valid.</exception>
  826. <remarks>This method is just a proxy for the <see langword="private"/> constructor, for clarity.</remarks>
  827. </member>
  828. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.Allocate(System.Int32,CommunityToolkit.HighPerformance.Buffers.AllocationMode)">
  829. <summary>
  830. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance with the specified parameters.
  831. </summary>
  832. <param name="size">The length of the new memory buffer to use.</param>
  833. <param name="mode">Indicates the allocation mode to use for the new buffer to rent.</param>
  834. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance of the requested length.</returns>
  835. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="size"/> is not valid.</exception>
  836. <remarks>This method is just a proxy for the <see langword="private"/> constructor, for clarity.</remarks>
  837. </member>
  838. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.Allocate(System.Int32,System.Buffers.ArrayPool{`0},CommunityToolkit.HighPerformance.Buffers.AllocationMode)">
  839. <summary>
  840. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance with the specified parameters.
  841. </summary>
  842. <param name="size">The length of the new memory buffer to use.</param>
  843. <param name="pool">The <see cref="T:System.Buffers.ArrayPool`1"/> instance to use.</param>
  844. <param name="mode">Indicates the allocation mode to use for the new buffer to rent.</param>
  845. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance of the requested length.</returns>
  846. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="size"/> is not valid.</exception>
  847. <remarks>This method is just a proxy for the <see langword="private"/> constructor, for clarity.</remarks>
  848. </member>
  849. <member name="P:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.Length">
  850. <summary>
  851. Gets the number of items in the current instance
  852. </summary>
  853. </member>
  854. <member name="P:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.Span">
  855. <summary>
  856. Gets a <see cref="T:System.Span`1"/> wrapping the memory belonging to the current instance.
  857. </summary>
  858. </member>
  859. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.DangerousGetReference">
  860. <summary>
  861. Returns a reference to the first element within the current instance, with no bounds check.
  862. </summary>
  863. <returns>A reference to the first element within the current instance.</returns>
  864. </member>
  865. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.DangerousGetArray">
  866. <summary>
  867. Gets an <see cref="T:System.ArraySegment`1"/> instance wrapping the underlying <typeparamref name="T"/> array in use.
  868. </summary>
  869. <returns>An <see cref="T:System.ArraySegment`1"/> instance wrapping the underlying <typeparamref name="T"/> array in use.</returns>
  870. <remarks>
  871. This method is meant to be used when working with APIs that only accept an array as input, and should be used with caution.
  872. In particular, the returned array is rented from an array pool, and it is responsibility of the caller to ensure that it's
  873. not used after the current <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance is disposed. Doing so is considered undefined behavior,
  874. as the same array might be in use within another <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance.
  875. </remarks>
  876. </member>
  877. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.Dispose">
  878. <summary>
  879. Implements the duck-typed <see cref="M:System.IDisposable.Dispose"/> method.
  880. </summary>
  881. </member>
  882. <member name="M:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1.ToString">
  883. <inheritdoc/>
  884. </member>
  885. <member name="T:CommunityToolkit.HighPerformance.Buffers.StringPool">
  886. <summary>
  887. A configurable pool for <see cref="T:System.String"/> instances. This can be used to minimize allocations
  888. when creating multiple <see cref="T:System.String"/> instances from buffers of <see cref="T:System.Char"/> values.
  889. The <see cref="M:CommunityToolkit.HighPerformance.Buffers.StringPool.GetOrAdd(System.ReadOnlySpan{System.Char})"/> method provides a best-effort alternative to just creating
  890. a new <see cref="T:System.String"/> instance every time, in order to minimize the number of duplicated instances.
  891. The <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> type will internally manage a highly efficient priority queue for the
  892. cached <see cref="T:System.String"/> instances, so that when the full capacity is reached, the least frequently
  893. used values will be automatically discarded to leave room for new values to cache.
  894. </summary>
  895. </member>
  896. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.DefaultSize">
  897. <summary>
  898. The size used by default by the parameterless constructor.
  899. </summary>
  900. </member>
  901. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.MinimumSize">
  902. <summary>
  903. The minimum size for <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> instances.
  904. </summary>
  905. </member>
  906. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.maps">
  907. <summary>
  908. The current array of <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap"/> instances in use.
  909. </summary>
  910. </member>
  911. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.numberOfMaps">
  912. <summary>
  913. The total number of maps in use.
  914. </summary>
  915. </member>
  916. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.#ctor">
  917. <summary>
  918. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> class.
  919. </summary>
  920. </member>
  921. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.#ctor(System.Int32)">
  922. <summary>
  923. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> class.
  924. </summary>
  925. <param name="minimumSize">The minimum size for the pool to create.</param>
  926. </member>
  927. <member name="P:CommunityToolkit.HighPerformance.Buffers.StringPool.Shared">
  928. <summary>
  929. Gets the shared <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> instance.
  930. </summary>
  931. <remarks>
  932. The shared pool provides a singleton, reusable <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> instance that
  933. can be accessed directly, and that pools <see cref="T:System.String"/> instances for the entire
  934. process. Since <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> is thread-safe, the shared instance can be used
  935. concurrently by multiple threads without the need for manual synchronization.
  936. </remarks>
  937. </member>
  938. <member name="P:CommunityToolkit.HighPerformance.Buffers.StringPool.Size">
  939. <summary>
  940. Gets the total number of <see cref="T:System.String"/> that can be stored in the current instance.
  941. </summary>
  942. </member>
  943. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.Add(System.String)">
  944. <summary>
  945. Stores a <see cref="T:System.String"/> instance in the internal cache.
  946. </summary>
  947. <param name="value">The input <see cref="T:System.String"/> instance to cache.</param>
  948. </member>
  949. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.GetOrAdd(System.String)">
  950. <summary>
  951. Gets a cached <see cref="T:System.String"/> instance matching the input content, or stores the input one.
  952. </summary>
  953. <param name="value">The input <see cref="T:System.String"/> instance with the contents to use.</param>
  954. <returns>A <see cref="T:System.String"/> instance with the contents of <paramref name="value"/>, cached if possible.</returns>
  955. </member>
  956. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.GetOrAdd(System.ReadOnlySpan{System.Char})">
  957. <summary>
  958. Gets a cached <see cref="T:System.String"/> instance matching the input content, or creates a new one.
  959. </summary>
  960. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> with the contents to use.</param>
  961. <returns>A <see cref="T:System.String"/> instance with the contents of <paramref name="span"/>, cached if possible.</returns>
  962. </member>
  963. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.GetOrAdd(System.ReadOnlySpan{System.Byte},System.Text.Encoding)">
  964. <summary>
  965. Gets a cached <see cref="T:System.String"/> instance matching the input content (converted to Unicode), or creates a new one.
  966. </summary>
  967. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> with the contents to use, in a specified encoding.</param>
  968. <param name="encoding">The <see cref="T:System.Text.Encoding"/> instance to use to decode the contents of <paramref name="span"/>.</param>
  969. <returns>A <see cref="T:System.String"/> instance with the contents of <paramref name="span"/>, cached if possible.</returns>
  970. </member>
  971. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.TryGet(System.ReadOnlySpan{System.Char},System.String@)">
  972. <summary>
  973. Tries to get a cached <see cref="T:System.String"/> instance matching the input content, if present.
  974. </summary>
  975. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> with the contents to use.</param>
  976. <param name="value">The resulting cached <see cref="T:System.String"/> instance, if present</param>
  977. <returns>Whether or not the target <see cref="T:System.String"/> instance was found.</returns>
  978. </member>
  979. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.Reset">
  980. <summary>
  981. Resets the current instance and its associated maps.
  982. </summary>
  983. </member>
  984. <member name="T:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap">
  985. <summary>
  986. A configurable map containing a group of cached <see cref="T:System.String"/> instances.
  987. </summary>
  988. <remarks>
  989. Instances of this type are stored in an array within <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> and they are
  990. always accessed by reference - essentially as if this type had been a class. The type is
  991. also private, so there's no risk for users to directly access it and accidentally copy an
  992. instance, which would lead to bugs due to values becoming out of sync with the internal state
  993. (that is, because instances would be copied by value, so primitive fields would not be shared).
  994. The reason why we're using a struct here is to remove an indirection level and improve cache
  995. locality when accessing individual buckets from the methods in the <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool"/> type.
  996. </remarks>
  997. </member>
  998. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.EndOfList">
  999. <summary>
  1000. The index representing the end of a given list.
  1001. </summary>
  1002. </member>
  1003. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.buckets">
  1004. <summary>
  1005. The array of 1-based indices for the <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.MapEntry"/> items stored in <see cref="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.mapEntries"/>.
  1006. </summary>
  1007. </member>
  1008. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.mapEntries">
  1009. <summary>
  1010. The array of currently cached entries (ie. the lists for each hash group).
  1011. </summary>
  1012. </member>
  1013. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.heapEntries">
  1014. <summary>
  1015. The array of priority values associated to each item stored in <see cref="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.mapEntries"/>.
  1016. </summary>
  1017. </member>
  1018. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.count">
  1019. <summary>
  1020. The current number of items stored in the map.
  1021. </summary>
  1022. </member>
  1023. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.timestamp">
  1024. <summary>
  1025. The current incremental timestamp for the items stored in <see cref="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.heapEntries"/>.
  1026. </summary>
  1027. </member>
  1028. <member name="T:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.MapEntry">
  1029. <summary>
  1030. A type representing a map entry, ie. a node in a given list.
  1031. </summary>
  1032. </member>
  1033. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.MapEntry.HashCode">
  1034. <summary>
  1035. The precomputed hashcode for <see cref="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.MapEntry.Value"/>.
  1036. </summary>
  1037. </member>
  1038. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.MapEntry.Value">
  1039. <summary>
  1040. The <see cref="T:System.String"/> instance cached in this entry.
  1041. </summary>
  1042. </member>
  1043. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.MapEntry.NextIndex">
  1044. <summary>
  1045. The 0-based index for the next node in the current list.
  1046. </summary>
  1047. </member>
  1048. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.MapEntry.HeapIndex">
  1049. <summary>
  1050. The 0-based index for the heap entry corresponding to the current node.
  1051. </summary>
  1052. </member>
  1053. <member name="T:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.HeapEntry">
  1054. <summary>
  1055. A type representing a heap entry, used to associate priority to each item.
  1056. </summary>
  1057. </member>
  1058. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.HeapEntry.Timestamp">
  1059. <summary>
  1060. The timestamp for the current entry (ie. the priority for the item).
  1061. </summary>
  1062. </member>
  1063. <member name="F:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.HeapEntry.MapIndex">
  1064. <summary>
  1065. The 0-based index for the map entry corresponding to the current item.
  1066. </summary>
  1067. </member>
  1068. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.#ctor(System.Int32)">
  1069. <summary>
  1070. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap"/> struct.
  1071. </summary>
  1072. <param name="capacity">The fixed capacity of the current map.</param>
  1073. </member>
  1074. <member name="P:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.SyncRoot">
  1075. <summary>
  1076. Gets an <see cref="T:System.Object"/> that can be used to synchronize access to the current instance.
  1077. </summary>
  1078. </member>
  1079. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.Add(System.String,System.Int32)">
  1080. <summary>
  1081. Implements <see cref="M:CommunityToolkit.HighPerformance.Buffers.StringPool.Add(System.String)"/> for the current instance.
  1082. </summary>
  1083. <param name="value">The input <see cref="T:System.String"/> instance to cache.</param>
  1084. <param name="hashcode">The precomputed hashcode for <paramref name="value"/>.</param>
  1085. </member>
  1086. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.GetOrAdd(System.String,System.Int32)">
  1087. <summary>
  1088. Implements <see cref="M:CommunityToolkit.HighPerformance.Buffers.StringPool.GetOrAdd(System.String)"/> for the current instance.
  1089. </summary>
  1090. <param name="value">The input <see cref="T:System.String"/> instance with the contents to use.</param>
  1091. <param name="hashcode">The precomputed hashcode for <paramref name="value"/>.</param>
  1092. <returns>A <see cref="T:System.String"/> instance with the contents of <paramref name="value"/>.</returns>
  1093. </member>
  1094. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.GetOrAdd(System.ReadOnlySpan{System.Char},System.Int32)">
  1095. <summary>
  1096. Implements <see cref="M:CommunityToolkit.HighPerformance.Buffers.StringPool.GetOrAdd(System.ReadOnlySpan{System.Char})"/> for the current instance.
  1097. </summary>
  1098. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> with the contents to use.</param>
  1099. <param name="hashcode">The precomputed hashcode for <paramref name="span"/>.</param>
  1100. <returns>A <see cref="T:System.String"/> instance with the contents of <paramref name="span"/>, cached if possible.</returns>
  1101. </member>
  1102. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.TryGet(System.ReadOnlySpan{System.Char},System.Int32,System.String@)">
  1103. <summary>
  1104. Implements <see cref="M:CommunityToolkit.HighPerformance.Buffers.StringPool.TryGet(System.ReadOnlySpan{System.Char},System.String@)"/> for the current instance.
  1105. </summary>
  1106. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> with the contents to use.</param>
  1107. <param name="hashcode">The precomputed hashcode for <paramref name="span"/>.</param>
  1108. <param name="value">The resulting cached <see cref="T:System.String"/> instance, if present</param>
  1109. <returns>Whether or not the target <see cref="T:System.String"/> instance was found.</returns>
  1110. </member>
  1111. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.Reset">
  1112. <summary>
  1113. Resets the current instance and throws away all the cached values.
  1114. </summary>
  1115. </member>
  1116. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.TryGet(System.ReadOnlySpan{System.Char},System.Int32)">
  1117. <summary>
  1118. Tries to get a target <see cref="T:System.String"/> instance, if it exists, and returns a reference to it.
  1119. </summary>
  1120. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> with the contents to use.</param>
  1121. <param name="hashcode">The precomputed hashcode for <paramref name="span"/>.</param>
  1122. <returns>A reference to the slot where the target <see cref="T:System.String"/> instance could be.</returns>
  1123. </member>
  1124. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.Insert(System.String,System.Int32)">
  1125. <summary>
  1126. Inserts a new <see cref="T:System.String"/> instance in the current map, freeing up a space if needed.
  1127. </summary>
  1128. <param name="value">The new <see cref="T:System.String"/> instance to store.</param>
  1129. <param name="hashcode">The precomputed hashcode for <paramref name="value"/>.</param>
  1130. </member>
  1131. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.Remove(System.Int32,System.Int32)">
  1132. <summary>
  1133. Removes a specified <see cref="T:System.String"/> instance from the map to free up one slot.
  1134. </summary>
  1135. <param name="hashcode">The precomputed hashcode of the instance to remove.</param>
  1136. <param name="mapIndex">The index of the target map node to remove.</param>
  1137. <remarks>The input <see cref="T:System.String"/> instance needs to already exist in the map.</remarks>
  1138. </member>
  1139. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.UpdateTimestamp(System.Int32@)">
  1140. <summary>
  1141. Updates the timestamp of a heap node at the specified index (which is then synced back).
  1142. </summary>
  1143. <param name="heapIndex">The index of the target heap node to update.</param>
  1144. </member>
  1145. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.FixedSizePriorityMap.UpdateAllTimestamps">
  1146. <summary>
  1147. Updates the timestamp of all the current heap nodes in incrementing order.
  1148. The heap is always guaranteed to be complete binary tree, so when it contains
  1149. a given number of nodes, those are all contiguous from the start of the array.
  1150. </summary>
  1151. </member>
  1152. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.GetHashCode(System.ReadOnlySpan{System.Char})">
  1153. <summary>
  1154. Gets the (positive) hashcode for a given <see cref="T:System.ReadOnlySpan`1"/> instance.
  1155. </summary>
  1156. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  1157. <returns>The hashcode for <paramref name="span"/>.</returns>
  1158. </member>
  1159. <member name="M:CommunityToolkit.HighPerformance.Buffers.StringPool.ThrowArgumentOutOfRangeException">
  1160. <summary>
  1161. Throws an <see cref="T:System.ArgumentException"/> when the requested size exceeds the capacity.
  1162. </summary>
  1163. </member>
  1164. <member name="T:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1">
  1165. <summary>
  1166. A debug proxy used to display items in a 1D layout.
  1167. </summary>
  1168. <typeparam name="T">The type of items to display.</typeparam>
  1169. </member>
  1170. <member name="M:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1.#ctor(CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter{`0})">
  1171. <summary>
  1172. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1"/> class with the specified parameters.
  1173. </summary>
  1174. <param name="arrayPoolBufferWriter">The input <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> instance with the items to display.</param>
  1175. </member>
  1176. <member name="M:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1.#ctor(CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter{`0})">
  1177. <summary>
  1178. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1"/> class with the specified parameters.
  1179. </summary>
  1180. <param name="memoryBufferWriter">The input <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryBufferWriter`1"/> instance with the items to display.</param>
  1181. </member>
  1182. <member name="M:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1.#ctor(CommunityToolkit.HighPerformance.Buffers.MemoryOwner{`0})">
  1183. <summary>
  1184. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1"/> class with the specified parameters.
  1185. </summary>
  1186. <param name="memoryOwner">The input <see cref="T:CommunityToolkit.HighPerformance.Buffers.MemoryOwner`1"/> instance with the items to display.</param>
  1187. </member>
  1188. <member name="M:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1.#ctor(CommunityToolkit.HighPerformance.Buffers.SpanOwner{`0})">
  1189. <summary>
  1190. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1"/> class with the specified parameters.
  1191. </summary>
  1192. <param name="spanOwner">The input <see cref="T:CommunityToolkit.HighPerformance.Buffers.SpanOwner`1"/> instance with the items to display.</param>
  1193. </member>
  1194. <member name="P:CommunityToolkit.HighPerformance.Buffers.Views.MemoryDebugView`1.Items">
  1195. <summary>
  1196. Gets the items to display for the current instance
  1197. </summary>
  1198. </member>
  1199. <member name="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1">
  1200. <summary>
  1201. A <see langword="ref"/> <see langword="struct"/> that iterates readonly items from arbitrary memory locations.
  1202. </summary>
  1203. <typeparam name="T">The type of items to enumerate.</typeparam>
  1204. </member>
  1205. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.span">
  1206. <summary>
  1207. The <see cref="T:System.ReadOnlySpan`1"/> instance pointing to the first item in the target memory area.
  1208. </summary>
  1209. <remarks>The <see cref="P:System.ReadOnlySpan`1.Length"/> field maps to the total available length.</remarks>
  1210. </member>
  1211. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.step">
  1212. <summary>
  1213. The distance between items in the sequence to enumerate.
  1214. </summary>
  1215. <remarks>The distance refers to <typeparamref name="T"/> items, not byte offset.</remarks>
  1216. </member>
  1217. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.#ctor(System.ReadOnlySpan{`0},System.Int32)">
  1218. <summary>
  1219. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> struct.
  1220. </summary>
  1221. <param name="span">The <see cref="T:System.ReadOnlySpan`1"/> instance pointing to the first item in the target memory area.</param>
  1222. <param name="step">The distance between items in the sequence to enumerate.</param>
  1223. </member>
  1224. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.#ctor(`0@,System.Int32,System.Int32)">
  1225. <summary>
  1226. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> struct.
  1227. </summary>
  1228. <param name="reference">A reference to the first item of the sequence.</param>
  1229. <param name="length">The number of items in the sequence.</param>
  1230. <param name="step">The distance between items in the sequence to enumerate.</param>
  1231. </member>
  1232. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.DangerousCreate(`0@,System.Int32,System.Int32)">
  1233. <summary>
  1234. Creates a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> struct with the specified parameters.
  1235. </summary>
  1236. <param name="value">The reference to the first <typeparamref name="T"/> item to map.</param>
  1237. <param name="length">The number of items in the sequence.</param>
  1238. <param name="step">The distance between items in the sequence to enumerate.</param>
  1239. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> instance with the specified parameters.</returns>
  1240. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when one of the parameters are negative.</exception>
  1241. </member>
  1242. <member name="P:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Length">
  1243. <summary>
  1244. Gets the total available length for the sequence.
  1245. </summary>
  1246. </member>
  1247. <member name="P:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Item(System.Int32)">
  1248. <summary>
  1249. Gets the element at the specified zero-based index.
  1250. </summary>
  1251. <param name="index">The zero-based index of the element.</param>
  1252. <returns>A reference to the element at the specified index.</returns>
  1253. <exception cref="T:System.IndexOutOfRangeException">
  1254. Thrown when <paramref name="index"/> is invalid.
  1255. </exception>
  1256. </member>
  1257. <member name="P:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Item(System.Index)">
  1258. <summary>
  1259. Gets the element at the specified zero-based index.
  1260. </summary>
  1261. <param name="index">The zero-based index of the element.</param>
  1262. <returns>A reference to the element at the specified index.</returns>
  1263. <exception cref="T:System.IndexOutOfRangeException">
  1264. Thrown when <paramref name="index"/> is invalid.
  1265. </exception>
  1266. </member>
  1267. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.GetEnumerator">
  1268. <inheritdoc cref="M:System.Collections.IEnumerable.GetEnumerator"/>
  1269. </member>
  1270. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.CopyTo(CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{`0})">
  1271. <summary>
  1272. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> into a destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1273. </summary>
  1274. <param name="destination">The destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.</param>
  1275. <exception cref="T:System.ArgumentException">
  1276. Thrown when <paramref name="destination"/> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> instance.
  1277. </exception>
  1278. </member>
  1279. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.TryCopyTo(CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{`0})">
  1280. <summary>
  1281. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> instance to a destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/>.
  1282. </summary>
  1283. <param name="destination">The target <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> of the copy operation.</param>
  1284. <returns>Whether or not the operation was successful.</returns>
  1285. </member>
  1286. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.CopyTo(System.Span{`0})">
  1287. <summary>
  1288. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> into a destination <see cref="T:System.Span`1"/> instance.
  1289. </summary>
  1290. <param name="destination">The destination <see cref="T:System.Span`1"/> instance.</param>
  1291. <exception cref="T:System.ArgumentException">
  1292. Thrown when <paramref name="destination"/> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1293. </exception>
  1294. </member>
  1295. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.TryCopyTo(System.Span{`0})">
  1296. <summary>
  1297. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance to a destination <see cref="T:System.Span`1"/>.
  1298. </summary>
  1299. <param name="destination">The target <see cref="T:System.Span`1"/> of the copy operation.</param>
  1300. <returns>Whether or not the operation was successful.</returns>
  1301. </member>
  1302. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.ToArray">
  1303. <inheritdoc cref="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.ToArray"/>
  1304. </member>
  1305. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.op_Implicit(CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{`0})~CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable{`0}">
  1306. <summary>
  1307. Implicitly converts a <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance into a <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> one.
  1308. </summary>
  1309. <param name="enumerable">The input <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.</param>
  1310. </member>
  1311. <member name="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Enumerator">
  1312. <summary>
  1313. A custom enumerator type to traverse items within a <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> instance.
  1314. </summary>
  1315. </member>
  1316. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Enumerator.span">
  1317. <inheritdoc cref="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.span"/>
  1318. </member>
  1319. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Enumerator.step">
  1320. <inheritdoc cref="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.step"/>
  1321. </member>
  1322. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Enumerator.position">
  1323. <summary>
  1324. The current position in the sequence.
  1325. </summary>
  1326. </member>
  1327. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Enumerator.#ctor(System.ReadOnlySpan{`0},System.Int32)">
  1328. <summary>
  1329. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Enumerator"/> struct.
  1330. </summary>
  1331. <param name="span">The <see cref="T:System.ReadOnlySpan`1"/> instance with the info on the items to traverse.</param>
  1332. <param name="step">The distance between items in the sequence to enumerate.</param>
  1333. </member>
  1334. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Enumerator.MoveNext">
  1335. <inheritdoc cref="M:System.Collections.IEnumerator.MoveNext"/>
  1336. </member>
  1337. <member name="P:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.Enumerator.Current">
  1338. <inheritdoc cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
  1339. </member>
  1340. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.ThrowArgumentOutOfRangeExceptionForLength">
  1341. <summary>
  1342. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "length" parameter is invalid.
  1343. </summary>
  1344. </member>
  1345. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.ThrowArgumentOutOfRangeExceptionForStep">
  1346. <summary>
  1347. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "step" parameter is invalid.
  1348. </summary>
  1349. </member>
  1350. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1.ThrowArgumentExceptionForDestinationTooShort">
  1351. <summary>
  1352. Throws an <see cref="T:System.ArgumentException"/> when the target span is too short.
  1353. </summary>
  1354. </member>
  1355. <member name="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1">
  1356. <summary>
  1357. A <see langword="ref"/> <see langword="struct"/> that enumerates the items in a given <see cref="T:System.ReadOnlySpan`1"/> instance.
  1358. </summary>
  1359. <typeparam name="T">The type of items to enumerate.</typeparam>
  1360. </member>
  1361. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.span">
  1362. <summary>
  1363. The source <see cref="T:System.ReadOnlySpan`1"/> instance.
  1364. </summary>
  1365. </member>
  1366. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.index">
  1367. <summary>
  1368. The current index within <see cref="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.span"/>.
  1369. </summary>
  1370. </member>
  1371. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.#ctor(System.ReadOnlySpan{`0})">
  1372. <summary>
  1373. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1"/> struct.
  1374. </summary>
  1375. <param name="span">The source <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  1376. </member>
  1377. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.GetEnumerator">
  1378. <summary>
  1379. Implements the duck-typed <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/> method.
  1380. </summary>
  1381. <returns>An <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1"/> instance targeting the current <see cref="T:System.ReadOnlySpan`1"/> value.</returns>
  1382. </member>
  1383. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.MoveNext">
  1384. <summary>
  1385. Implements the duck-typed <see cref="M:System.Collections.IEnumerator.MoveNext"/> method.
  1386. </summary>
  1387. <returns><see langword="true"/> whether a new element is available, <see langword="false"/> otherwise</returns>
  1388. </member>
  1389. <member name="P:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.Current">
  1390. <summary>
  1391. Gets the duck-typed <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property.
  1392. </summary>
  1393. </member>
  1394. <member name="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.Item">
  1395. <summary>
  1396. An item from a source <see cref="T:System.Span`1"/> instance.
  1397. </summary>
  1398. </member>
  1399. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.Item.span">
  1400. <summary>
  1401. The source <see cref="T:System.ReadOnlySpan`1"/> instance.
  1402. </summary>
  1403. </member>
  1404. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.Item.#ctor(`0@,System.Int32)">
  1405. <summary>
  1406. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.Item"/> struct.
  1407. </summary>
  1408. <param name="value">A reference to the target value.</param>
  1409. <param name="index">The index of the target value.</param>
  1410. </member>
  1411. <member name="P:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.Item.Value">
  1412. <summary>
  1413. Gets the reference to the current value.
  1414. </summary>
  1415. </member>
  1416. <member name="P:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1.Item.Index">
  1417. <summary>
  1418. Gets the current index.
  1419. </summary>
  1420. </member>
  1421. <member name="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1">
  1422. <summary>
  1423. A <see langword="ref"/> <see langword="struct"/> that tokenizes a given <see cref="T:System.ReadOnlySpan`1"/> instance.
  1424. </summary>
  1425. <typeparam name="T">The type of items to enumerate.</typeparam>
  1426. </member>
  1427. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1.span">
  1428. <summary>
  1429. The source <see cref="T:System.ReadOnlySpan`1"/> instance.
  1430. </summary>
  1431. </member>
  1432. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1.separator">
  1433. <summary>
  1434. The separator item to use.
  1435. </summary>
  1436. </member>
  1437. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1.start">
  1438. <summary>
  1439. The current initial offset.
  1440. </summary>
  1441. </member>
  1442. <member name="F:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1.end">
  1443. <summary>
  1444. The current final offset.
  1445. </summary>
  1446. </member>
  1447. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1.#ctor(System.ReadOnlySpan{`0},`0)">
  1448. <summary>
  1449. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1"/> struct.
  1450. </summary>
  1451. <param name="span">The source <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  1452. <param name="separator">The separator item to use.</param>
  1453. </member>
  1454. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1.GetEnumerator">
  1455. <summary>
  1456. Implements the duck-typed <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/> method.
  1457. </summary>
  1458. <returns>An <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1"/> instance targeting the current <see cref="T:System.ReadOnlySpan`1"/> value.</returns>
  1459. </member>
  1460. <member name="M:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1.MoveNext">
  1461. <summary>
  1462. Implements the duck-typed <see cref="M:System.Collections.IEnumerator.MoveNext"/> method.
  1463. </summary>
  1464. <returns><see langword="true"/> whether a new element is available, <see langword="false"/> otherwise</returns>
  1465. </member>
  1466. <member name="P:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1.Current">
  1467. <summary>
  1468. Gets the duck-typed <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property.
  1469. </summary>
  1470. </member>
  1471. <member name="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1">
  1472. <summary>
  1473. A <see langword="ref"/> <see langword="struct"/> that iterates items from arbitrary memory locations.
  1474. </summary>
  1475. <typeparam name="T">The type of items to enumerate.</typeparam>
  1476. </member>
  1477. <member name="F:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Span">
  1478. <summary>
  1479. The <see cref="T:System.Span`1"/> instance pointing to the first item in the target memory area.
  1480. </summary>
  1481. <remarks>The <see cref="P:System.Span`1.Length"/> field maps to the total available length.</remarks>
  1482. </member>
  1483. <member name="F:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Step">
  1484. <summary>
  1485. The distance between items in the sequence to enumerate.
  1486. </summary>
  1487. <remarks>The distance refers to <typeparamref name="T"/> items, not byte offset.</remarks>
  1488. </member>
  1489. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.#ctor(`0@,System.Int32,System.Int32)">
  1490. <summary>
  1491. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> struct.
  1492. </summary>
  1493. <param name="reference">A reference to the first item of the sequence.</param>
  1494. <param name="length">The number of items in the sequence.</param>
  1495. <param name="step">The distance between items in the sequence to enumerate.</param>
  1496. </member>
  1497. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.DangerousCreate(`0@,System.Int32,System.Int32)">
  1498. <summary>
  1499. Creates a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> struct with the specified parameters.
  1500. </summary>
  1501. <param name="value">The reference to the first <typeparamref name="T"/> item to map.</param>
  1502. <param name="length">The number of items in the sequence.</param>
  1503. <param name="step">The distance between items in the sequence to enumerate.</param>
  1504. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance with the specified parameters.</returns>
  1505. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when one of the parameters are negative.</exception>
  1506. </member>
  1507. <member name="P:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Length">
  1508. <summary>
  1509. Gets the total available length for the sequence.
  1510. </summary>
  1511. </member>
  1512. <member name="P:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Item(System.Int32)">
  1513. <summary>
  1514. Gets the element at the specified zero-based index.
  1515. </summary>
  1516. <param name="index">The zero-based index of the element.</param>
  1517. <returns>A reference to the element at the specified index.</returns>
  1518. <exception cref="T:System.IndexOutOfRangeException">
  1519. Thrown when <paramref name="index"/> is invalid.
  1520. </exception>
  1521. </member>
  1522. <member name="P:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Item(System.Index)">
  1523. <summary>
  1524. Gets the element at the specified zero-based index.
  1525. </summary>
  1526. <param name="index">The zero-based index of the element.</param>
  1527. <returns>A reference to the element at the specified index.</returns>
  1528. <exception cref="T:System.IndexOutOfRangeException">
  1529. Thrown when <paramref name="index"/> is invalid.
  1530. </exception>
  1531. </member>
  1532. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.GetEnumerator">
  1533. <inheritdoc cref="M:System.Collections.IEnumerable.GetEnumerator"/>
  1534. </member>
  1535. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Clear">
  1536. <summary>
  1537. Clears the contents of the current <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1538. </summary>
  1539. </member>
  1540. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.CopyTo(CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{`0})">
  1541. <summary>
  1542. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> into a destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1543. </summary>
  1544. <param name="destination">The destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.</param>
  1545. <exception cref="T:System.ArgumentException">
  1546. Thrown when <paramref name="destination"/> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1547. </exception>
  1548. </member>
  1549. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.TryCopyTo(CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{`0})">
  1550. <summary>
  1551. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance to a destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/>.
  1552. </summary>
  1553. <param name="destination">The target <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> of the copy operation.</param>
  1554. <returns>Whether or not the operation was successful.</returns>
  1555. </member>
  1556. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.CopyTo(System.Span{`0})">
  1557. <summary>
  1558. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> into a destination <see cref="T:System.Span`1"/> instance.
  1559. </summary>
  1560. <param name="destination">The destination <see cref="T:System.Span`1"/> instance.</param>
  1561. <exception cref="T:System.ArgumentException">
  1562. Thrown when <paramref name="destination"/> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1563. </exception>
  1564. </member>
  1565. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.TryCopyTo(System.Span{`0})">
  1566. <summary>
  1567. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance to a destination <see cref="T:System.Span`1"/>.
  1568. </summary>
  1569. <param name="destination">The target <see cref="T:System.Span`1"/> of the copy operation.</param>
  1570. <returns>Whether or not the operation was successful.</returns>
  1571. </member>
  1572. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.CopyFrom(System.ReadOnlySpan{`0})">
  1573. <summary>
  1574. Copies the contents of a source <see cref="T:System.ReadOnlySpan`1"/> into the current <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1575. </summary>
  1576. <param name="source">The source <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  1577. <exception cref="T:System.ArgumentException">
  1578. Thrown when the current <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> is shorter than the source <see cref="T:System.ReadOnlySpan`1"/> instance.
  1579. </exception>
  1580. </member>
  1581. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.TryCopyFrom(System.ReadOnlySpan{`0})">
  1582. <summary>
  1583. Attempts to copy the source <see cref="T:System.ReadOnlySpan`1"/> into the current <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1584. </summary>
  1585. <param name="source">The source <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  1586. <returns>Whether or not the operation was successful.</returns>
  1587. </member>
  1588. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Fill(`0)">
  1589. <summary>
  1590. Fills the elements of this <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> with a specified value.
  1591. </summary>
  1592. <param name="value">The value to assign to each element of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.</param>
  1593. </member>
  1594. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.ToArray">
  1595. <summary>
  1596. Returns a <typeparamref name="T"/> array with the values in the target row.
  1597. </summary>
  1598. <returns>A <typeparamref name="T"/> array with the values in the target row.</returns>
  1599. <remarks>
  1600. This method will allocate a new <typeparamref name="T"/> array, so only
  1601. use it if you really need to copy the target items in a new memory location.
  1602. </remarks>
  1603. </member>
  1604. <member name="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Enumerator">
  1605. <summary>
  1606. A custom enumerator type to traverse items within a <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  1607. </summary>
  1608. </member>
  1609. <member name="F:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Enumerator.span">
  1610. <inheritdoc cref="F:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Span"/>
  1611. </member>
  1612. <member name="F:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Enumerator.step">
  1613. <inheritdoc cref="F:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Step"/>
  1614. </member>
  1615. <member name="F:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Enumerator.position">
  1616. <summary>
  1617. The current position in the sequence.
  1618. </summary>
  1619. </member>
  1620. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Enumerator.#ctor(System.Span{`0},System.Int32)">
  1621. <summary>
  1622. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Enumerator"/> struct.
  1623. </summary>
  1624. <param name="span">The <see cref="T:System.Span`1"/> instance with the info on the items to traverse.</param>
  1625. <param name="step">The distance between items in the sequence to enumerate.</param>
  1626. </member>
  1627. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Enumerator.MoveNext">
  1628. <inheritdoc cref="M:System.Collections.IEnumerator.MoveNext"/>
  1629. </member>
  1630. <member name="P:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.Enumerator.Current">
  1631. <inheritdoc cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
  1632. </member>
  1633. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.ThrowArgumentOutOfRangeExceptionForLength">
  1634. <summary>
  1635. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "length" parameter is invalid.
  1636. </summary>
  1637. </member>
  1638. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.ThrowArgumentOutOfRangeExceptionForStep">
  1639. <summary>
  1640. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "step" parameter is invalid.
  1641. </summary>
  1642. </member>
  1643. <member name="M:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1.ThrowArgumentExceptionForDestinationTooShort">
  1644. <summary>
  1645. Throws an <see cref="T:System.ArgumentException"/> when the target span is too short.
  1646. </summary>
  1647. </member>
  1648. <member name="T:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1">
  1649. <summary>
  1650. A <see langword="ref"/> <see langword="struct"/> that enumerates the items in a given <see cref="T:System.Span`1"/> instance.
  1651. </summary>
  1652. <typeparam name="T">The type of items to enumerate.</typeparam>
  1653. </member>
  1654. <member name="F:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.span">
  1655. <summary>
  1656. The source <see cref="T:System.Span`1"/> instance.
  1657. </summary>
  1658. </member>
  1659. <member name="F:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.index">
  1660. <summary>
  1661. The current index within <see cref="F:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.span"/>.
  1662. </summary>
  1663. </member>
  1664. <member name="M:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.#ctor(System.Span{`0})">
  1665. <summary>
  1666. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1"/> struct.
  1667. </summary>
  1668. <param name="span">The source <see cref="T:System.Span`1"/> instance.</param>
  1669. </member>
  1670. <member name="M:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.GetEnumerator">
  1671. <summary>
  1672. Implements the duck-typed <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/> method.
  1673. </summary>
  1674. <returns>An <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1"/> instance targeting the current <see cref="T:System.Span`1"/> value.</returns>
  1675. </member>
  1676. <member name="M:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.MoveNext">
  1677. <summary>
  1678. Implements the duck-typed <see cref="M:System.Collections.IEnumerator.MoveNext"/> method.
  1679. </summary>
  1680. <returns><see langword="true"/> whether a new element is available, <see langword="false"/> otherwise</returns>
  1681. </member>
  1682. <member name="P:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.Current">
  1683. <summary>
  1684. Gets the duck-typed <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property.
  1685. </summary>
  1686. </member>
  1687. <member name="T:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.Item">
  1688. <summary>
  1689. An item from a source <see cref="T:System.Span`1"/> instance.
  1690. </summary>
  1691. </member>
  1692. <member name="F:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.Item.span">
  1693. <summary>
  1694. The source <see cref="T:System.Span`1"/> instance.
  1695. </summary>
  1696. </member>
  1697. <member name="M:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.Item.#ctor(`0@,System.Int32)">
  1698. <summary>
  1699. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.Item"/> struct.
  1700. </summary>
  1701. <param name="value">A reference to the target value.</param>
  1702. <param name="index">The index of the target value.</param>
  1703. </member>
  1704. <member name="P:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.Item.Value">
  1705. <summary>
  1706. Gets the reference to the current value.
  1707. </summary>
  1708. </member>
  1709. <member name="P:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1.Item.Index">
  1710. <summary>
  1711. Gets the current index.
  1712. </summary>
  1713. </member>
  1714. <member name="T:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1">
  1715. <summary>
  1716. A <see langword="ref"/> <see langword="struct"/> that tokenizes a given <see cref="T:System.Span`1"/> instance.
  1717. </summary>
  1718. <typeparam name="T">The type of items to enumerate.</typeparam>
  1719. </member>
  1720. <member name="F:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1.span">
  1721. <summary>
  1722. The source <see cref="T:System.Span`1"/> instance.
  1723. </summary>
  1724. </member>
  1725. <member name="F:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1.separator">
  1726. <summary>
  1727. The separator item to use.
  1728. </summary>
  1729. </member>
  1730. <member name="F:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1.start">
  1731. <summary>
  1732. The current initial offset.
  1733. </summary>
  1734. </member>
  1735. <member name="F:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1.end">
  1736. <summary>
  1737. The current final offset.
  1738. </summary>
  1739. </member>
  1740. <member name="M:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1.#ctor(System.Span{`0},`0)">
  1741. <summary>
  1742. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1"/> struct.
  1743. </summary>
  1744. <param name="span">The source <see cref="T:System.Span`1"/> instance.</param>
  1745. <param name="separator">The separator item to use.</param>
  1746. </member>
  1747. <member name="M:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1.GetEnumerator">
  1748. <summary>
  1749. Implements the duck-typed <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/> method.
  1750. </summary>
  1751. <returns>An <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1"/> instance targeting the current <see cref="T:System.Span`1"/> value.</returns>
  1752. </member>
  1753. <member name="M:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1.MoveNext">
  1754. <summary>
  1755. Implements the duck-typed <see cref="M:System.Collections.IEnumerator.MoveNext"/> method.
  1756. </summary>
  1757. <returns><see langword="true"/> whether a new element is available, <see langword="false"/> otherwise</returns>
  1758. </member>
  1759. <member name="P:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1.Current">
  1760. <summary>
  1761. Gets the duck-typed <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property.
  1762. </summary>
  1763. </member>
  1764. <member name="T:CommunityToolkit.HighPerformance.ArrayExtensions">
  1765. <summary>
  1766. Helpers for working with the <see cref="T:System.Array"/> type.
  1767. </summary>
  1768. <summary>
  1769. Helpers for working with the <see cref="T:System.Array"/> type.
  1770. </summary>
  1771. <summary>
  1772. Helpers for working with the <see cref="T:System.Array"/> type.
  1773. </summary>
  1774. </member>
  1775. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.DangerousGetReference``1(``0[])">
  1776. <summary>
  1777. Returns a reference to the first element within a given <typeparamref name="T"/> array, with no bounds checks.
  1778. </summary>
  1779. <typeparam name="T">The type of elements in the input <typeparamref name="T"/> array instance.</typeparam>
  1780. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1781. <returns>A reference to the first element within <paramref name="array"/>, or the location it would have used, if <paramref name="array"/> is empty.</returns>
  1782. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to perform checks in case the returned value is dereferenced.</remarks>
  1783. </member>
  1784. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.DangerousGetReferenceAt``1(``0[],System.Int32)">
  1785. <summary>
  1786. Returns a reference to an element at a specified index within a given <typeparamref name="T"/> array, with no bounds checks.
  1787. </summary>
  1788. <typeparam name="T">The type of elements in the input <typeparamref name="T"/> array instance.</typeparam>
  1789. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1790. <param name="i">The index of the element to retrieve within <paramref name="array"/>.</param>
  1791. <returns>A reference to the element within <paramref name="array"/> at the index specified by <paramref name="i"/>.</returns>
  1792. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to ensure the <paramref name="i"/> parameter is valid.</remarks>
  1793. </member>
  1794. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.Count``1(``0[],``0)">
  1795. <summary>
  1796. Counts the number of occurrences of a given value into a target <typeparamref name="T"/> array instance.
  1797. </summary>
  1798. <typeparam name="T">The type of items in the input <typeparamref name="T"/> array instance.</typeparam>
  1799. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1800. <param name="value">The <typeparamref name="T"/> value to look for.</param>
  1801. <returns>The number of occurrences of <paramref name="value"/> in <paramref name="array"/>.</returns>
  1802. </member>
  1803. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.Enumerate``1(``0[])">
  1804. <summary>
  1805. Enumerates the items in the input <typeparamref name="T"/> array instance, as pairs of reference/index values.
  1806. This extension should be used directly within a <see langword="foreach"/> loop:
  1807. <code>
  1808. int[] numbers = new[] { 1, 2, 3, 4, 5, 6, 7 };
  1809. foreach (var item in numbers.Enumerate())
  1810. {
  1811. // Access the index and value of each item here...
  1812. int index = item.Index;
  1813. ref int value = ref item.Value;
  1814. }
  1815. </code>
  1816. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  1817. </summary>
  1818. <typeparam name="T">The type of items to enumerate.</typeparam>
  1819. <param name="array">The source <typeparamref name="T"/> array to enumerate.</param>
  1820. <returns>A wrapper type that will handle the reference/index enumeration for <paramref name="array"/>.</returns>
  1821. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  1822. </member>
  1823. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.Tokenize``1(``0[],``0)">
  1824. <summary>
  1825. Tokenizes the values in the input <typeparamref name="T"/> array instance using a specified separator.
  1826. This extension should be used directly within a <see langword="foreach"/> loop:
  1827. <code>
  1828. char[] text = "Hello, world!".ToCharArray();
  1829. foreach (var token in text.Tokenize(','))
  1830. {
  1831. // Access the tokens here...
  1832. }
  1833. </code>
  1834. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  1835. </summary>
  1836. <typeparam name="T">The type of items in the <typeparamref name="T"/> array to tokenize.</typeparam>
  1837. <param name="array">The source <typeparamref name="T"/> array to tokenize.</param>
  1838. <param name="separator">The separator <typeparamref name="T"/> item to use.</param>
  1839. <returns>A wrapper type that will handle the tokenization for <paramref name="array"/>.</returns>
  1840. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  1841. </member>
  1842. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.GetDjb2HashCode``1(``0[])">
  1843. <summary>
  1844. Gets a content hash from the input <typeparamref name="T"/> array instance using the Djb2 algorithm.
  1845. For more info, see the documentation for <see cref="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.GetDjb2HashCode``1(System.ReadOnlySpan{``0})"/>.
  1846. </summary>
  1847. <typeparam name="T">The type of items in the input <typeparamref name="T"/> array instance.</typeparam>
  1848. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1849. <returns>The Djb2 value for the input <typeparamref name="T"/> array instance.</returns>
  1850. <remarks>The Djb2 hash is fully deterministic and with no random components.</remarks>
  1851. </member>
  1852. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.IsCovariant``1(``0[])">
  1853. <summary>
  1854. Checks whether or not a given <typeparamref name="T"/> array is covariant.
  1855. </summary>
  1856. <typeparam name="T">The type of items in the input <typeparamref name="T"/> array instance.</typeparam>
  1857. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1858. <returns>Whether or not <paramref name="array"/> is covariant.</returns>
  1859. </member>
  1860. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.ThrowOverflowException">
  1861. <summary>
  1862. Throws an <see cref="T:System.OverflowException"/> when the "column" parameter is invalid.
  1863. </summary>
  1864. </member>
  1865. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.DangerousGetReference``1(``0[0:,0:])">
  1866. <summary>
  1867. Returns a reference to the first element within a given 2D <typeparamref name="T"/> array, with no bounds checks.
  1868. </summary>
  1869. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1870. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1871. <returns>A reference to the first element within <paramref name="array"/>, or the location it would have used, if <paramref name="array"/> is empty.</returns>
  1872. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to perform checks in case the returned value is dereferenced.</remarks>
  1873. </member>
  1874. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.DangerousGetReferenceAt``1(``0[0:,0:],System.Int32,System.Int32)">
  1875. <summary>
  1876. Returns a reference to an element at a specified coordinate within a given 2D <typeparamref name="T"/> array, with no bounds checks.
  1877. </summary>
  1878. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1879. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  1880. <param name="i">The vertical index of the element to retrieve within <paramref name="array"/>.</param>
  1881. <param name="j">The horizontal index of the element to retrieve within <paramref name="array"/>.</param>
  1882. <returns>A reference to the element within <paramref name="array"/> at the coordinate specified by <paramref name="i"/> and <paramref name="j"/>.</returns>
  1883. <remarks>
  1884. This method doesn't do any bounds checks, therefore it is responsibility of the caller to ensure the <paramref name="i"/>
  1885. and <paramref name="j"/> parameters are valid. Furthermore, this extension will ignore the lower bounds for the input
  1886. array, and will just assume that the input index is 0-based. It is responsibility of the caller to adjust the input
  1887. indices to account for the actual lower bounds, if the input array has either axis not starting at 0.
  1888. </remarks>
  1889. </member>
  1890. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.GetRow``1(``0[0:,0:],System.Int32)">
  1891. <summary>
  1892. Returns a <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> over a row in a given 2D <typeparamref name="T"/> array instance.
  1893. </summary>
  1894. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1895. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1896. <param name="row">The target row to retrieve (0-based index).</param>
  1897. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> with the items from the target row within <paramref name="array"/>.</returns>
  1898. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  1899. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when one of the input parameters is out of range.</exception>
  1900. </member>
  1901. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.GetColumn``1(``0[0:,0:],System.Int32)">
  1902. <summary>
  1903. Returns a <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> that returns the items from a given column in a given 2D <typeparamref name="T"/> array instance.
  1904. This extension should be used directly within a <see langword="foreach"/> loop:
  1905. <code>
  1906. int[,] matrix =
  1907. {
  1908. { 1, 2, 3 },
  1909. { 4, 5, 6 },
  1910. { 7, 8, 9 }
  1911. };
  1912. foreach (ref int number in matrix.GetColumn(1))
  1913. {
  1914. // Access the current number by reference here...
  1915. }
  1916. </code>
  1917. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  1918. </summary>
  1919. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1920. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1921. <param name="column">The target column to retrieve (0-based index).</param>
  1922. <returns>A wrapper type that will handle the column enumeration for <paramref name="array"/>.</returns>
  1923. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  1924. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when one of the input parameters is out of range.</exception>
  1925. </member>
  1926. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsSpan2D``1(``0[0:,0:])">
  1927. <summary>
  1928. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> over an input 2D <typeparamref name="T"/> array.
  1929. </summary>
  1930. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1931. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  1932. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance with the values of <paramref name="array"/>.</returns>
  1933. </member>
  1934. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsSpan2D``1(``0[0:,0:],System.Int32,System.Int32,System.Int32,System.Int32)">
  1935. <summary>
  1936. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> over an input 2D <typeparamref name="T"/> array.
  1937. </summary>
  1938. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1939. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  1940. <param name="row">The target row to map within <paramref name="array"/>.</param>
  1941. <param name="column">The target column to map within <paramref name="array"/>.</param>
  1942. <param name="height">The height to map within <paramref name="array"/>.</param>
  1943. <param name="width">The width to map within <paramref name="array"/>.</param>
  1944. <exception cref="T:System.ArrayTypeMismatchException">
  1945. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  1946. </exception>
  1947. <exception cref="T:System.ArgumentException">
  1948. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  1949. are negative or not within the bounds that are valid for <paramref name="array"/>.
  1950. </exception>
  1951. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance with the values of <paramref name="array"/>.</returns>
  1952. </member>
  1953. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsMemory2D``1(``0[0:,0:])">
  1954. <summary>
  1955. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> over an input 2D <typeparamref name="T"/> array.
  1956. </summary>
  1957. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1958. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  1959. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance with the values of <paramref name="array"/>.</returns>
  1960. </member>
  1961. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsMemory2D``1(``0[0:,0:],System.Int32,System.Int32,System.Int32,System.Int32)">
  1962. <summary>
  1963. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> over an input 2D <typeparamref name="T"/> array.
  1964. </summary>
  1965. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1966. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  1967. <param name="row">The target row to map within <paramref name="array"/>.</param>
  1968. <param name="column">The target column to map within <paramref name="array"/>.</param>
  1969. <param name="height">The height to map within <paramref name="array"/>.</param>
  1970. <param name="width">The width to map within <paramref name="array"/>.</param>
  1971. <exception cref="T:System.ArrayTypeMismatchException">
  1972. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  1973. </exception>
  1974. <exception cref="T:System.ArgumentException">
  1975. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  1976. are negative or not within the bounds that are valid for <paramref name="array"/>.
  1977. </exception>
  1978. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance with the values of <paramref name="array"/>.</returns>
  1979. </member>
  1980. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.GetRowSpan``1(``0[0:,0:],System.Int32)">
  1981. <summary>
  1982. Returns a <see cref="T:System.Span`1"/> over a row in a given 2D <typeparamref name="T"/> array instance.
  1983. </summary>
  1984. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1985. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1986. <param name="row">The target row to retrieve (0-based index).</param>
  1987. <returns>A <see cref="T:System.Span`1"/> with the items from the target row within <paramref name="array"/>.</returns>
  1988. <exception cref="T:System.ArrayTypeMismatchException">Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.</exception>
  1989. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="row"/> is invalid.</exception>
  1990. </member>
  1991. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.GetRowMemory``1(``0[0:,0:],System.Int32)">
  1992. <summary>
  1993. Returns a <see cref="T:System.Memory`1"/> over a row in a given 2D <typeparamref name="T"/> array instance.
  1994. </summary>
  1995. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  1996. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  1997. <param name="row">The target row to retrieve (0-based index).</param>
  1998. <returns>A <see cref="T:System.Memory`1"/> with the items from the target row within <paramref name="array"/>.</returns>
  1999. <exception cref="T:System.ArrayTypeMismatchException">Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.</exception>
  2000. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="row"/> is invalid.</exception>
  2001. </member>
  2002. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsMemory``1(``0[0:,0:])">
  2003. <summary>
  2004. Creates a new <see cref="T:System.Memory`1"/> over an input 2D <typeparamref name="T"/> array.
  2005. </summary>
  2006. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  2007. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  2008. <returns>A <see cref="T:System.Memory`1"/> instance with the values of <paramref name="array"/>.</returns>
  2009. </member>
  2010. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsSpan``1(``0[0:,0:])">
  2011. <summary>
  2012. Creates a new <see cref="T:System.Span`1"/> over an input 2D <typeparamref name="T"/> array.
  2013. </summary>
  2014. <typeparam name="T">The type of elements in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  2015. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  2016. <returns>A <see cref="T:System.Span`1"/> instance with the values of <paramref name="array"/>.</returns>
  2017. </member>
  2018. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.Count``1(``0[0:,0:],``0)">
  2019. <summary>
  2020. Counts the number of occurrences of a given value into a target 2D <typeparamref name="T"/> array instance.
  2021. </summary>
  2022. <typeparam name="T">The type of items in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  2023. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  2024. <param name="value">The <typeparamref name="T"/> value to look for.</param>
  2025. <returns>The number of occurrences of <paramref name="value"/> in <paramref name="array"/>.</returns>
  2026. </member>
  2027. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.GetDjb2HashCode``1(``0[0:,0:])">
  2028. <summary>
  2029. Gets a content hash from the input 2D <typeparamref name="T"/> array instance using the Djb2 algorithm.
  2030. For more info, see the documentation for <see cref="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.GetDjb2HashCode``1(System.ReadOnlySpan{``0})"/>.
  2031. </summary>
  2032. <typeparam name="T">The type of items in the input 2D <typeparamref name="T"/> array instance.</typeparam>
  2033. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  2034. <returns>The Djb2 value for the input 2D <typeparamref name="T"/> array instance.</returns>
  2035. <remarks>The Djb2 hash is fully deterministic and with no random components.</remarks>
  2036. </member>
  2037. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.IsCovariant``1(``0[0:,0:])">
  2038. <summary>
  2039. Checks whether or not a given <typeparamref name="T"/> array is covariant.
  2040. </summary>
  2041. <typeparam name="T">The type of items in the input <typeparamref name="T"/> array instance.</typeparam>
  2042. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  2043. <returns>Whether or not <paramref name="array"/> is covariant.</returns>
  2044. </member>
  2045. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.ThrowArrayTypeMismatchException">
  2046. <summary>
  2047. Throws an <see cref="T:System.ArrayTypeMismatchException"/> when using an array of an invalid type.
  2048. </summary>
  2049. </member>
  2050. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.ThrowArgumentOutOfRangeExceptionForRow">
  2051. <summary>
  2052. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "row" parameter is invalid.
  2053. </summary>
  2054. </member>
  2055. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.ThrowArgumentOutOfRangeExceptionForColumn">
  2056. <summary>
  2057. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "column" parameter is invalid.
  2058. </summary>
  2059. </member>
  2060. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.DangerousGetReference``1(``0[0:,0:,0:])">
  2061. <summary>
  2062. Returns a reference to the first element within a given 3D <typeparamref name="T"/> array, with no bounds checks.
  2063. </summary>
  2064. <typeparam name="T">The type of elements in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2065. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  2066. <returns>A reference to the first element within <paramref name="array"/>, or the location it would have used, if <paramref name="array"/> is empty.</returns>
  2067. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to perform checks in case the returned value is dereferenced.</remarks>
  2068. </member>
  2069. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.DangerousGetReferenceAt``1(``0[0:,0:,0:],System.Int32,System.Int32,System.Int32)">
  2070. <summary>
  2071. Returns a reference to an element at a specified coordinate within a given 3D <typeparamref name="T"/> array, with no bounds checks.
  2072. </summary>
  2073. <typeparam name="T">The type of elements in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2074. <param name="array">The input 2D <typeparamref name="T"/> array instance.</param>
  2075. <param name="i">The depth index of the element to retrieve within <paramref name="array"/>.</param>
  2076. <param name="j">The vertical index of the element to retrieve within <paramref name="array"/>.</param>
  2077. <param name="k">The horizontal index of the element to retrieve within <paramref name="array"/>.</param>
  2078. <returns>A reference to the element within <paramref name="array"/> at the coordinate specified by <paramref name="i"/> and <paramref name="j"/>.</returns>
  2079. <remarks>
  2080. This method doesn't do any bounds checks, therefore it is responsibility of the caller to ensure the <paramref name="i"/>
  2081. and <paramref name="j"/> parameters are valid. Furthermore, this extension will ignore the lower bounds for the input
  2082. array, and will just assume that the input index is 0-based. It is responsibility of the caller to adjust the input
  2083. indices to account for the actual lower bounds, if the input array has either axis not starting at 0.
  2084. </remarks>
  2085. </member>
  2086. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsMemory``1(``0[0:,0:,0:])">
  2087. <summary>
  2088. Creates a new <see cref="T:System.Memory`1"/> over an input 3D <typeparamref name="T"/> array.
  2089. </summary>
  2090. <typeparam name="T">The type of elements in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2091. <param name="array">The input 3D <typeparamref name="T"/> array instance.</param>
  2092. <returns>A <see cref="T:System.Memory`1"/> instance with the values of <paramref name="array"/>.</returns>
  2093. </member>
  2094. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsSpan``1(``0[0:,0:,0:])">
  2095. <summary>
  2096. Creates a new <see cref="T:System.Span`1"/> over an input 3D <typeparamref name="T"/> array.
  2097. </summary>
  2098. <typeparam name="T">The type of elements in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2099. <param name="array">The input 3D <typeparamref name="T"/> array instance.</param>
  2100. <returns>A <see cref="T:System.Span`1"/> instance with the values of <paramref name="array"/>.</returns>
  2101. </member>
  2102. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsSpan``1(``0[0:,0:,0:],System.Int32)">
  2103. <summary>
  2104. Creates a new instance of the <see cref="T:System.Span`1"/> struct wrapping a layer in a 3D array.
  2105. </summary>
  2106. <typeparam name="T">The type of elements in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2107. <param name="array">The given 3D array to wrap.</param>
  2108. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  2109. <exception cref="T:System.ArrayTypeMismatchException">Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.</exception>
  2110. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="depth"/> is invalid.</exception>
  2111. <returns>A <see cref="T:System.Span`1"/> instance wrapping the target layer within <paramref name="array"/>.</returns>
  2112. </member>
  2113. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsMemory``1(``0[0:,0:,0:],System.Int32)">
  2114. <summary>
  2115. Creates a new instance of the <see cref="T:System.Memory`1"/> struct wrapping a layer in a 3D array.
  2116. </summary>
  2117. <typeparam name="T">The type of elements in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2118. <param name="array">The given 3D array to wrap.</param>
  2119. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  2120. <exception cref="T:System.ArrayTypeMismatchException">Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.</exception>
  2121. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="depth"/> is invalid.</exception>
  2122. <returns>A <see cref="T:System.Memory`1"/> instance wrapping the target layer within <paramref name="array"/>.</returns>
  2123. </member>
  2124. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsSpan2D``1(``0[0:,0:,0:],System.Int32)">
  2125. <summary>
  2126. Creates a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct wrapping a layer in a 3D array.
  2127. </summary>
  2128. <typeparam name="T">The type of elements in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2129. <param name="array">The given 3D array to wrap.</param>
  2130. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  2131. <exception cref="T:System.ArrayTypeMismatchException">
  2132. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  2133. </exception>
  2134. <exception cref="T:System.ArgumentException">Thrown when either <paramref name="depth"/> is invalid.</exception>
  2135. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance wrapping the target layer within <paramref name="array"/>.</returns>
  2136. </member>
  2137. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.AsMemory2D``1(``0[0:,0:,0:],System.Int32)">
  2138. <summary>
  2139. Creates a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct wrapping a layer in a 3D array.
  2140. </summary>
  2141. <typeparam name="T">The type of elements in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2142. <param name="array">The given 3D array to wrap.</param>
  2143. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  2144. <exception cref="T:System.ArrayTypeMismatchException">
  2145. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  2146. </exception>
  2147. <exception cref="T:System.ArgumentException">Thrown when either <paramref name="depth"/> is invalid.</exception>
  2148. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance wrapping the target layer within <paramref name="array"/>.</returns>
  2149. </member>
  2150. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.Count``1(``0[0:,0:,0:],``0)">
  2151. <summary>
  2152. Counts the number of occurrences of a given value into a target 3D <typeparamref name="T"/> array instance.
  2153. </summary>
  2154. <typeparam name="T">The type of items in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2155. <param name="array">The input 3D <typeparamref name="T"/> array instance.</param>
  2156. <param name="value">The <typeparamref name="T"/> value to look for.</param>
  2157. <returns>The number of occurrences of <paramref name="value"/> in <paramref name="array"/>.</returns>
  2158. </member>
  2159. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.GetDjb2HashCode``1(``0[0:,0:,0:])">
  2160. <summary>
  2161. Gets a content hash from the input 3D <typeparamref name="T"/> array instance using the Djb2 algorithm.
  2162. For more info, see the documentation for <see cref="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.GetDjb2HashCode``1(System.ReadOnlySpan{``0})"/>.
  2163. </summary>
  2164. <typeparam name="T">The type of items in the input 3D <typeparamref name="T"/> array instance.</typeparam>
  2165. <param name="array">The input 3D <typeparamref name="T"/> array instance.</param>
  2166. <returns>The Djb2 value for the input 3D <typeparamref name="T"/> array instance.</returns>
  2167. <remarks>The Djb2 hash is fully deterministic and with no random components.</remarks>
  2168. </member>
  2169. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.IsCovariant``1(``0[0:,0:,0:])">
  2170. <summary>
  2171. Checks whether or not a given <typeparamref name="T"/> array is covariant.
  2172. </summary>
  2173. <typeparam name="T">The type of items in the input <typeparamref name="T"/> array instance.</typeparam>
  2174. <param name="array">The input <typeparamref name="T"/> array instance.</param>
  2175. <returns>Whether or not <paramref name="array"/> is covariant.</returns>
  2176. </member>
  2177. <member name="M:CommunityToolkit.HighPerformance.ArrayExtensions.ThrowArgumentOutOfRangeExceptionForDepth">
  2178. <summary>
  2179. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "depth" parameter is invalid.
  2180. </summary>
  2181. </member>
  2182. <member name="T:CommunityToolkit.HighPerformance.ArrayPoolBufferWriterExtensions">
  2183. <summary>
  2184. Helpers for working with the <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> type.
  2185. </summary>
  2186. </member>
  2187. <member name="M:CommunityToolkit.HighPerformance.ArrayPoolBufferWriterExtensions.AsStream(CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter{System.Byte})">
  2188. <summary>
  2189. Returns a <see cref="T:System.IO.Stream"/> that can be used to write to a target an <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> of <see cref="T:System.Byte"/> instance.
  2190. </summary>
  2191. <param name="writer">The target <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> instance.</param>
  2192. <returns>A <see cref="T:System.IO.Stream"/> wrapping <paramref name="writer"/> and writing data to its underlying buffer.</returns>
  2193. <remarks>The returned <see cref="T:System.IO.Stream"/> can only be written to and does not support seeking.</remarks>
  2194. </member>
  2195. <member name="T:CommunityToolkit.HighPerformance.ArrayPoolExtensions">
  2196. <summary>
  2197. Helpers for working with the <see cref="T:System.Buffers.ArrayPool`1"/> type.
  2198. </summary>
  2199. </member>
  2200. <member name="M:CommunityToolkit.HighPerformance.ArrayPoolExtensions.Resize``1(System.Buffers.ArrayPool{``0},``0[]@,System.Int32,System.Boolean)">
  2201. <summary>
  2202. Changes the number of elements of a rented one-dimensional array to the specified new size.
  2203. </summary>
  2204. <typeparam name="T">The type of items into the target array to resize.</typeparam>
  2205. <param name="pool">The target <see cref="T:System.Buffers.ArrayPool`1"/> instance to use to resize the array.</param>
  2206. <param name="array">The rented <typeparamref name="T"/> array to resize, or <see langword="null"/> to create a new array.</param>
  2207. <param name="newSize">The size of the new array.</param>
  2208. <param name="clearArray">Indicates whether the contents of the array should be cleared before reuse.</param>
  2209. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when <paramref name="newSize"/> is less than 0.</exception>
  2210. <remarks>When this method returns, the caller must not use any references to the old array anymore.</remarks>
  2211. </member>
  2212. <member name="T:CommunityToolkit.HighPerformance.BoolExtensions">
  2213. <summary>
  2214. Helpers for working with the <see cref="T:System.Boolean"/> type.
  2215. </summary>
  2216. </member>
  2217. <member name="M:CommunityToolkit.HighPerformance.BoolExtensions.ToByte(System.Boolean)">
  2218. <summary>
  2219. Converts the given <see cref="T:System.Boolean"/> value into a <see cref="T:System.Byte"/>.
  2220. </summary>
  2221. <param name="flag">The input value to convert.</param>
  2222. <returns>1 if <paramref name="flag"/> is <see langword="true"/>, 0 otherwise.</returns>
  2223. <remarks>This method does not contain branching instructions.</remarks>
  2224. </member>
  2225. <member name="M:CommunityToolkit.HighPerformance.BoolExtensions.ToBitwiseMask32(System.Boolean)">
  2226. <summary>
  2227. Converts the given <see cref="T:System.Boolean"/> value to an <see cref="T:System.Int32"/> mask with
  2228. all bits representing the value of the input flag (either 0xFFFFFFFF or 0x00000000).
  2229. </summary>
  2230. <param name="flag">The input value to convert.</param>
  2231. <returns>0xFFFFFFFF if <paramref name="flag"/> is <see langword="true"/>, 0x00000000 otherwise.</returns>
  2232. <remarks>
  2233. This method does not contain branching instructions, and it is only guaranteed to work with
  2234. <see cref="T:System.Boolean"/> values being either 0 or 1. Operations producing a <see cref="T:System.Boolean"/> result,
  2235. such as numerical comparisons, always result in a valid value. If the <see cref="T:System.Boolean"/> value is
  2236. produced by fields with a custom <see cref="T:System.Runtime.InteropServices.FieldOffsetAttribute"/>,
  2237. or by using <see cref="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)"/> or other unsafe APIs to directly manipulate the underlying
  2238. data though, it is responsibility of the caller to ensure the validity of the provided value.
  2239. </remarks>
  2240. </member>
  2241. <member name="M:CommunityToolkit.HighPerformance.BoolExtensions.ToBitwiseMask64(System.Boolean)">
  2242. <summary>
  2243. Converts the given <see cref="T:System.Boolean"/> value to a <see cref="T:System.Int64"/> mask with
  2244. all bits representing the value of the input flag (either all 1s or 0s).
  2245. </summary>
  2246. <param name="flag">The input value to convert.</param>
  2247. <returns>All 1s if <paramref name="flag"/> is <see langword="true"/>, all 0s otherwise.</returns>
  2248. <remarks>This method does not contain branching instructions. See additional note in <see cref="M:CommunityToolkit.HighPerformance.BoolExtensions.ToBitwiseMask32(System.Boolean)"/>.</remarks>
  2249. </member>
  2250. <member name="T:CommunityToolkit.HighPerformance.HashCodeExtensions">
  2251. <summary>
  2252. Helpers for working with the <see cref="T:System.HashCode"/> type.
  2253. </summary>
  2254. </member>
  2255. <member name="M:CommunityToolkit.HighPerformance.HashCodeExtensions.Add``1(System.HashCode@,System.ReadOnlySpan{``0})">
  2256. <summary>
  2257. Adds a sequence of <typeparamref name="T"/> values to the hash code.
  2258. </summary>
  2259. <typeparam name="T">The type of elements in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2260. <param name="hashCode">The input <see cref="T:System.HashCode"/> instance.</param>
  2261. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2262. </member>
  2263. <member name="T:CommunityToolkit.HighPerformance.IBufferWriterExtensions">
  2264. <summary>
  2265. Helpers for working with the <see cref="T:System.Buffers.IBufferWriter`1"/> type.
  2266. </summary>
  2267. </member>
  2268. <member name="M:CommunityToolkit.HighPerformance.IBufferWriterExtensions.AsStream(System.Buffers.IBufferWriter{System.Byte})">
  2269. <summary>
  2270. Returns a <see cref="T:System.IO.Stream"/> that can be used to write to a target an <see cref="T:System.Buffers.IBufferWriter`1"/> of <see cref="T:System.Byte"/> instance.
  2271. </summary>
  2272. <param name="writer">The target <see cref="T:System.Buffers.IBufferWriter`1"/> instance.</param>
  2273. <returns>A <see cref="T:System.IO.Stream"/> wrapping <paramref name="writer"/> and writing data to its underlying buffer.</returns>
  2274. <remarks>The returned <see cref="T:System.IO.Stream"/> can only be written to and does not support seeking.</remarks>
  2275. </member>
  2276. <member name="M:CommunityToolkit.HighPerformance.IBufferWriterExtensions.Write``1(System.Buffers.IBufferWriter{System.Byte},``0)">
  2277. <summary>
  2278. Writes a value of a specified type into a target <see cref="T:System.Buffers.IBufferWriter`1"/> instance.
  2279. </summary>
  2280. <typeparam name="T">The type of value to write.</typeparam>
  2281. <param name="writer">The target <see cref="T:System.Buffers.IBufferWriter`1"/> instance to write to.</param>
  2282. <param name="value">The input value to write to <paramref name="writer"/>.</param>
  2283. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="writer"/> reaches the end.</exception>
  2284. </member>
  2285. <member name="M:CommunityToolkit.HighPerformance.IBufferWriterExtensions.Write``1(System.Buffers.IBufferWriter{``0},``0)">
  2286. <summary>
  2287. Writes a value of a specified type into a target <see cref="T:System.Buffers.IBufferWriter`1"/> instance.
  2288. </summary>
  2289. <typeparam name="T">The type of value to write.</typeparam>
  2290. <param name="writer">The target <see cref="T:System.Buffers.IBufferWriter`1"/> instance to write to.</param>
  2291. <param name="value">The input value to write to <paramref name="writer"/>.</param>
  2292. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="writer"/> reaches the end.</exception>
  2293. </member>
  2294. <member name="M:CommunityToolkit.HighPerformance.IBufferWriterExtensions.Write``1(System.Buffers.IBufferWriter{System.Byte},System.ReadOnlySpan{``0})">
  2295. <summary>
  2296. Writes a series of items of a specified type into a target <see cref="T:System.Buffers.IBufferWriter`1"/> instance.
  2297. </summary>
  2298. <typeparam name="T">The type of value to write.</typeparam>
  2299. <param name="writer">The target <see cref="T:System.Buffers.IBufferWriter`1"/> instance to write to.</param>
  2300. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> to write to <paramref name="writer"/>.</param>
  2301. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="writer"/> reaches the end.</exception>
  2302. </member>
  2303. <member name="M:CommunityToolkit.HighPerformance.IBufferWriterExtensions.ThrowArgumentExceptionForEndOfBuffer">
  2304. <summary>
  2305. Throws an <see cref="T:System.ArgumentException"/> when trying to write too many bytes to the target writer.
  2306. </summary>
  2307. </member>
  2308. <member name="T:CommunityToolkit.HighPerformance.IMemoryOwnerExtensions">
  2309. <summary>
  2310. Helpers for working with the <see cref="T:System.Buffers.IMemoryOwner`1"/> type.
  2311. </summary>
  2312. </member>
  2313. <member name="M:CommunityToolkit.HighPerformance.IMemoryOwnerExtensions.AsStream(System.Buffers.IMemoryOwner{System.Byte})">
  2314. <summary>
  2315. Returns a <see cref="T:System.IO.Stream"/> wrapping the contents of the given <see cref="T:System.Buffers.IMemoryOwner`1"/> of <see cref="T:System.Byte"/> instance.
  2316. </summary>
  2317. <param name="memoryOwner">The input <see cref="T:System.Buffers.IMemoryOwner`1"/> of <see cref="T:System.Byte"/> instance.</param>
  2318. <returns>A <see cref="T:System.IO.Stream"/> wrapping the data within <paramref name="memoryOwner"/>.</returns>
  2319. <remarks>
  2320. The caller does not need to track the lifetime of the input <see cref="T:System.Buffers.IMemoryOwner`1"/> of <see cref="T:System.Byte"/>
  2321. instance, as the returned <see cref="T:System.IO.Stream"/> will take care of disposing that buffer when it is closed.
  2322. </remarks>
  2323. <exception cref="T:System.ArgumentException">Thrown when <paramref name="memoryOwner"/> has an invalid data store.</exception>
  2324. </member>
  2325. <member name="T:CommunityToolkit.HighPerformance.ListExtensions">
  2326. <summary>
  2327. Helpers for working with the <see cref="T:System.Collections.Generic.List`1"/> type.
  2328. </summary>
  2329. </member>
  2330. <member name="M:CommunityToolkit.HighPerformance.ListExtensions.AsSpan``1(System.Collections.Generic.List{``0})">
  2331. <summary>
  2332. Creates a new <see cref="T:System.Span`1"/> over an input <see cref="T:System.Collections.Generic.List`1"/> instance.
  2333. </summary>
  2334. <typeparam name="T">The type of elements in the input <see cref="T:System.Collections.Generic.List`1"/> instance.</typeparam>
  2335. <param name="list">The input <see cref="T:System.Collections.Generic.List`1"/> instance.</param>
  2336. <returns>A <see cref="T:System.Span`1"/> instance with the values of <paramref name="list"/>.</returns>
  2337. <remarks>
  2338. Note that the returned <see cref="T:System.Span`1"/> is only guaranteed to be valid as long as the items within
  2339. <paramref name="list"/> are not modified. Doing so might cause the <see cref="T:System.Collections.Generic.List`1"/> to swap its
  2340. internal buffer, causing the returned <see cref="T:System.Span`1"/> to become out of date. That means that in this
  2341. scenario, the <see cref="T:System.Span`1"/> would end up wrapping an array no longer in use. Always make sure to use
  2342. the returned <see cref="T:System.Span`1"/> while the target <see cref="T:System.Collections.Generic.List`1"/> is not modified.
  2343. </remarks>
  2344. </member>
  2345. <member name="T:CommunityToolkit.HighPerformance.MemoryExtensions">
  2346. <summary>
  2347. Helpers for working with the <see cref="T:System.Memory`1"/> type.
  2348. </summary>
  2349. </member>
  2350. <member name="M:CommunityToolkit.HighPerformance.MemoryExtensions.AsMemory2D``1(System.Memory{``0},System.Int32,System.Int32)">
  2351. <summary>
  2352. Returns a <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance wrapping the underlying data for the given <see cref="T:System.Memory`1"/> instance.
  2353. </summary>
  2354. <typeparam name="T">The type of items in the input <see cref="T:System.Memory`1"/> instance.</typeparam>
  2355. <param name="memory">The input <see cref="T:System.Memory`1"/> instance.</param>
  2356. <param name="height">The height of the resulting 2D area.</param>
  2357. <param name="width">The width of each row in the resulting 2D area.</param>
  2358. <returns>The resulting <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.</returns>
  2359. <exception cref="T:System.ArgumentOutOfRangeException">
  2360. Thrown when one of the input parameters is out of range.
  2361. </exception>
  2362. <exception cref="T:System.ArgumentException">
  2363. Thrown when the requested area is outside of bounds for <paramref name="memory"/>.
  2364. </exception>
  2365. </member>
  2366. <member name="M:CommunityToolkit.HighPerformance.MemoryExtensions.AsMemory2D``1(System.Memory{``0},System.Int32,System.Int32,System.Int32,System.Int32)">
  2367. <summary>
  2368. Returns a <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance wrapping the underlying data for the given <see cref="T:System.Memory`1"/> instance.
  2369. </summary>
  2370. <typeparam name="T">The type of items in the input <see cref="T:System.Memory`1"/> instance.</typeparam>
  2371. <param name="memory">The input <see cref="T:System.Memory`1"/> instance.</param>
  2372. <param name="offset">The initial offset within <paramref name="memory"/>.</param>
  2373. <param name="height">The height of the resulting 2D area.</param>
  2374. <param name="width">The width of each row in the resulting 2D area.</param>
  2375. <param name="pitch">The pitch in the resulting 2D area.</param>
  2376. <returns>The resulting <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.</returns>
  2377. <exception cref="T:System.ArgumentOutOfRangeException">
  2378. Thrown when one of the input parameters is out of range.
  2379. </exception>
  2380. <exception cref="T:System.ArgumentException">
  2381. Thrown when the requested area is outside of bounds for <paramref name="memory"/>.
  2382. </exception>
  2383. </member>
  2384. <member name="M:CommunityToolkit.HighPerformance.MemoryExtensions.AsBytes``1(System.Memory{``0})">
  2385. <summary>
  2386. Casts a <see cref="T:System.Memory`1"/> of one primitive type <typeparamref name="T"/> to <see cref="T:System.Memory`1"/> of bytes.
  2387. </summary>
  2388. <typeparam name="T">The type if items in the source <see cref="T:System.Memory`1"/>.</typeparam>
  2389. <param name="memory">The source <see cref="T:System.Memory`1"/>, of type <typeparamref name="T"/>.</param>
  2390. <returns>A <see cref="T:System.Memory`1"/> of bytes.</returns>
  2391. <exception cref="T:System.OverflowException">
  2392. Thrown if the <see cref="P:System.Memory`1.Length"/> property of the new <see cref="T:System.Memory`1"/> would exceed <see cref="F:System.Int32.MaxValue"/>.
  2393. </exception>
  2394. <exception cref="T:System.ArgumentException">Thrown when the data store of <paramref name="memory"/> is not supported.</exception>
  2395. </member>
  2396. <member name="M:CommunityToolkit.HighPerformance.MemoryExtensions.Cast``2(System.Memory{``0})">
  2397. <summary>
  2398. Casts a <see cref="T:System.Memory`1"/> of one primitive type <typeparamref name="TFrom"/> to another primitive type <typeparamref name="TTo"/>.
  2399. </summary>
  2400. <typeparam name="TFrom">The type of items in the source <see cref="T:System.Memory`1"/>.</typeparam>
  2401. <typeparam name="TTo">The type of items in the destination <see cref="T:System.Memory`1"/>.</typeparam>
  2402. <param name="memory">The source <see cref="T:System.Memory`1"/>, of type <typeparamref name="TFrom"/>.</param>
  2403. <returns>A <see cref="T:System.Memory`1"/> of type <typeparamref name="TTo"/></returns>
  2404. <exception cref="T:System.ArgumentException">Thrown when the data store of <paramref name="memory"/> is not supported.</exception>
  2405. </member>
  2406. <member name="M:CommunityToolkit.HighPerformance.MemoryExtensions.AsStream(System.Memory{System.Byte})">
  2407. <summary>
  2408. Returns a <see cref="T:System.IO.Stream"/> wrapping the contents of the given <see cref="T:System.Memory`1"/> of <see cref="T:System.Byte"/> instance.
  2409. </summary>
  2410. <param name="memory">The input <see cref="T:System.Memory`1"/> of <see cref="T:System.Byte"/> instance.</param>
  2411. <returns>A <see cref="T:System.IO.Stream"/> wrapping the data within <paramref name="memory"/>.</returns>
  2412. <remarks>
  2413. Since this method only receives a <see cref="T:System.Memory`1"/> instance, which does not track
  2414. the lifetime of its underlying buffer, it is responsibility of the caller to manage that.
  2415. In particular, the caller must ensure that the target buffer is not disposed as long
  2416. as the returned <see cref="T:System.IO.Stream"/> is in use, to avoid unexpected issues.
  2417. </remarks>
  2418. <exception cref="T:System.ArgumentException">Thrown when <paramref name="memory"/> has an invalid data store.</exception>
  2419. </member>
  2420. <member name="T:CommunityToolkit.HighPerformance.Extensions.NullableExtensions">
  2421. <summary>
  2422. Helpers for working with the <see cref="T:System.Nullable`1"/> type.
  2423. </summary>
  2424. </member>
  2425. <member name="M:CommunityToolkit.HighPerformance.Extensions.NullableExtensions.DangerousGetValueOrDefaultReference``1(System.Nullable{``0}@)">
  2426. <summary>
  2427. Returns a reference to the value of the input <see cref="T:System.Nullable`1"/> instance, regardless of whether
  2428. the <see cref="P:System.Nullable`1.HasValue"/> property is returning <see langword="true"/> or not. If that is not
  2429. the case, this method will still return a reference to the underlying <see langword="default"/> value.
  2430. </summary>
  2431. <typeparam name="T">The type of the underlying value</typeparam>
  2432. <param name="value">The <see cref="T:System.Nullable`1"/></param>
  2433. <returns>A reference to the underlying value from the input <see cref="T:System.Nullable`1"/> instance.</returns>
  2434. <remarks>
  2435. Note that attempting to mutate the returned reference will not change the value returned by <see cref="P:System.Nullable`1.HasValue"/>.
  2436. That means that reassigning the value of an empty instance will not make <see cref="P:System.Nullable`1.HasValue"/> return <see langword="true"/>.
  2437. </remarks>
  2438. </member>
  2439. <member name="T:CommunityToolkit.HighPerformance.Extensions.NullableExtensions.RawNullableData`1">
  2440. <summary>
  2441. Mapping type that reflects the internal layout of the <see cref="T:System.Nullable`1"/> type.
  2442. See https://github.com/dotnet/runtime/blob/master/src/libraries/System.Private.CoreLib/src/System/Nullable.cs.
  2443. </summary>
  2444. <typeparam name="T">The value type wrapped by the current instance.</typeparam>
  2445. </member>
  2446. <member name="T:CommunityToolkit.HighPerformance.ReadOnlyMemoryExtensions">
  2447. <summary>
  2448. Helpers for working with the <see cref="T:System.ReadOnlyMemory`1"/> type.
  2449. </summary>
  2450. </member>
  2451. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemoryExtensions.AsMemory2D``1(System.ReadOnlyMemory{``0},System.Int32,System.Int32)">
  2452. <summary>
  2453. Returns a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance wrapping the underlying data for the given <see cref="T:System.ReadOnlyMemory`1"/> instance.
  2454. </summary>
  2455. <typeparam name="T">The type of items in the input <see cref="T:System.ReadOnlyMemory`1"/> instance.</typeparam>
  2456. <param name="memory">The input <see cref="T:System.ReadOnlyMemory`1"/> instance.</param>
  2457. <param name="height">The height of the resulting 2D area.</param>
  2458. <param name="width">The width of each row in the resulting 2D area.</param>
  2459. <returns>The resulting <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance.</returns>
  2460. <exception cref="T:System.ArgumentOutOfRangeException">
  2461. Thrown when one of the input parameters is out of range.
  2462. </exception>
  2463. <exception cref="T:System.ArgumentException">
  2464. Thrown when the requested area is outside of bounds for <paramref name="memory"/>.
  2465. </exception>
  2466. </member>
  2467. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemoryExtensions.AsMemory2D``1(System.ReadOnlyMemory{``0},System.Int32,System.Int32,System.Int32,System.Int32)">
  2468. <summary>
  2469. Returns a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance wrapping the underlying data for the given <see cref="T:System.ReadOnlyMemory`1"/> instance.
  2470. </summary>
  2471. <typeparam name="T">The type of items in the input <see cref="T:System.ReadOnlyMemory`1"/> instance.</typeparam>
  2472. <param name="memory">The input <see cref="T:System.ReadOnlyMemory`1"/> instance.</param>
  2473. <param name="offset">The initial offset within <paramref name="memory"/>.</param>
  2474. <param name="height">The height of the resulting 2D area.</param>
  2475. <param name="width">The width of each row in the resulting 2D area.</param>
  2476. <param name="pitch">The pitch in the resulting 2D area.</param>
  2477. <returns>The resulting <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance.</returns>
  2478. <exception cref="T:System.ArgumentOutOfRangeException">
  2479. Thrown when one of the input parameters is out of range.
  2480. </exception>
  2481. <exception cref="T:System.ArgumentException">
  2482. Thrown when the requested area is outside of bounds for <paramref name="memory"/>.
  2483. </exception>
  2484. </member>
  2485. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemoryExtensions.AsBytes``1(System.ReadOnlyMemory{``0})">
  2486. <summary>
  2487. Casts a <see cref="T:System.ReadOnlyMemory`1"/> of one primitive type <typeparamref name="T"/> to <see cref="T:System.ReadOnlyMemory`1"/> of bytes.
  2488. </summary>
  2489. <typeparam name="T">The type if items in the source <see cref="T:System.ReadOnlyMemory`1"/>.</typeparam>
  2490. <param name="memory">The source <see cref="T:System.ReadOnlyMemory`1"/>, of type <typeparamref name="T"/>.</param>
  2491. <returns>A <see cref="T:System.ReadOnlyMemory`1"/> of bytes.</returns>
  2492. <exception cref="T:System.OverflowException">
  2493. Thrown if the <see cref="P:System.ReadOnlyMemory`1.Length"/> property of the new <see cref="T:System.ReadOnlyMemory`1"/> would exceed <see cref="F:System.Int32.MaxValue"/>.
  2494. </exception>
  2495. <exception cref="T:System.ArgumentException">Thrown when the data store of <paramref name="memory"/> is not supported.</exception>
  2496. </member>
  2497. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemoryExtensions.Cast``2(System.ReadOnlyMemory{``0})">
  2498. <summary>
  2499. Casts a <see cref="T:System.ReadOnlyMemory`1"/> of one primitive type <typeparamref name="TFrom"/> to another primitive type <typeparamref name="TTo"/>.
  2500. </summary>
  2501. <typeparam name="TFrom">The type of items in the source <see cref="T:System.ReadOnlyMemory`1"/>.</typeparam>
  2502. <typeparam name="TTo">The type of items in the destination <see cref="T:System.ReadOnlyMemory`1"/>.</typeparam>
  2503. <param name="memory">The source <see cref="T:System.ReadOnlyMemory`1"/>, of type <typeparamref name="TFrom"/>.</param>
  2504. <returns>A <see cref="T:System.ReadOnlyMemory`1"/> of type <typeparamref name="TTo"/></returns>
  2505. <exception cref="T:System.ArgumentException">Thrown when the data store of <paramref name="memory"/> is not supported.</exception>
  2506. </member>
  2507. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemoryExtensions.AsStream(System.ReadOnlyMemory{System.Byte})">
  2508. <summary>
  2509. Returns a <see cref="T:System.IO.Stream"/> wrapping the contents of the given <see cref="T:System.ReadOnlyMemory`1"/> of <see cref="T:System.Byte"/> instance.
  2510. </summary>
  2511. <param name="memory">The input <see cref="T:System.ReadOnlyMemory`1"/> of <see cref="T:System.Byte"/> instance.</param>
  2512. <returns>A <see cref="T:System.IO.Stream"/> wrapping the data within <paramref name="memory"/>.</returns>
  2513. <remarks>
  2514. Since this method only receives a <see cref="T:System.Memory`1"/> instance, which does not track
  2515. the lifetime of its underlying buffer, it is responsibility of the caller to manage that.
  2516. In particular, the caller must ensure that the target buffer is not disposed as long
  2517. as the returned <see cref="T:System.IO.Stream"/> is in use, to avoid unexpected issues.
  2518. </remarks>
  2519. <exception cref="T:System.ArgumentException">Thrown when <paramref name="memory"/> has an invalid data store.</exception>
  2520. </member>
  2521. <member name="T:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions">
  2522. <summary>
  2523. Helpers for working with the <see cref="T:System.ReadOnlySpan`1"/> type.
  2524. </summary>
  2525. </member>
  2526. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.DangerousGetReference``1(System.ReadOnlySpan{``0})">
  2527. <summary>
  2528. Returns a reference to the first element within a given <see cref="T:System.ReadOnlySpan`1"/>, with no bounds checks.
  2529. </summary>
  2530. <typeparam name="T">The type of elements in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2531. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2532. <returns>A reference to the first element within <paramref name="span"/>.</returns>
  2533. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to perform checks in case the returned value is dereferenced.</remarks>
  2534. </member>
  2535. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.DangerousGetReferenceAt``1(System.ReadOnlySpan{``0},System.Int32)">
  2536. <summary>
  2537. Returns a reference to an element at a specified index within a given <see cref="T:System.ReadOnlySpan`1"/>, with no bounds checks.
  2538. </summary>
  2539. <typeparam name="T">The type of elements in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2540. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2541. <param name="i">The index of the element to retrieve within <paramref name="span"/>.</param>
  2542. <returns>A reference to the element within <paramref name="span"/> at the index specified by <paramref name="i"/>.</returns>
  2543. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to ensure the <paramref name="i"/> parameter is valid.</remarks>
  2544. </member>
  2545. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.DangerousGetReferenceAt``1(System.ReadOnlySpan{``0},System.IntPtr)">
  2546. <summary>
  2547. Returns a reference to an element at a specified index within a given <see cref="T:System.ReadOnlySpan`1"/>, with no bounds checks.
  2548. </summary>
  2549. <typeparam name="T">The type of elements in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2550. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2551. <param name="i">The index of the element to retrieve within <paramref name="span"/>.</param>
  2552. <returns>A reference to the element within <paramref name="span"/> at the index specified by <paramref name="i"/>.</returns>
  2553. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to ensure the <paramref name="i"/> parameter is valid.</remarks>
  2554. </member>
  2555. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.DangerousGetLookupReferenceAt``1(System.ReadOnlySpan{``0},System.Int32)">
  2556. <summary>
  2557. Returns a reference to the first element within a given <see cref="T:System.ReadOnlySpan`1"/>, clamping the input index in the valid range.
  2558. If the <paramref name="i"/> parameter exceeds the length of <paramref name="span"/>, it will be clamped to 0.
  2559. Therefore, the returned reference will always point to a valid element within <paramref name="span"/>, assuming it is not empty.
  2560. This method is specifically meant to efficiently index lookup tables, especially if they point to constant data.
  2561. Consider this example where a lookup table is used to validate whether a given character is within a specific set:
  2562. <code>
  2563. public static ReadOnlySpan&lt;bool> ValidSetLookupTable => new bool[]
  2564. {
  2565. false, true, true, true, true, true, false, true,
  2566. false, false, true, false, true, false, true, false,
  2567. true, false, false, true, false, false, false, false,
  2568. false, false, false, false, true, true, false, true
  2569. };
  2570. int ch = Console.Read();
  2571. bool isValid = ValidSetLookupTable.DangerousGetLookupReference(ch);
  2572. </code>
  2573. Even if the input index is outside the range of the lookup table, being clamped to 0, it will
  2574. just cause the value 0 to be returned in this case, which is functionally the same for the check
  2575. being performed. This extension can easily be used whenever the first position in a lookup
  2576. table being referenced corresponds to a falsey value, like in this case.
  2577. Additionally, the example above leverages a compiler optimization introduced with C# 7.3,
  2578. which allows <see cref="T:System.ReadOnlySpan`1"/> instances pointing to compile-time constant data
  2579. to be directly mapped to the static .text section in the final assembly: the array being
  2580. created in code will never actually be allocated, and the <see cref="T:System.ReadOnlySpan`1"/> will
  2581. just point to constant data. Note that this only works for blittable values that are not
  2582. dependent on the byte endianness of the system, like <see cref="T:System.Byte"/> or <see cref="T:System.Boolean"/>.
  2583. For more info, see <see href="https://vcsjones.dev/2019/02/01/csharp-readonly-span-bytes-static/"/>.
  2584. </summary>
  2585. <typeparam name="T">The type of elements in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2586. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2587. <param name="i">The index of the element to retrieve within <paramref name="span"/>.</param>
  2588. <returns>
  2589. A reference to the element within <paramref name="span"/> at the index specified by <paramref name="i"/>,
  2590. or a reference to the first element within <paramref name="span"/> if <paramref name="i"/> was not a valid index.
  2591. </returns>
  2592. </member>
  2593. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.AsSpan2D``1(System.ReadOnlySpan{``0},System.Int32,System.Int32)">
  2594. <summary>
  2595. Returns a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance wrapping the underlying data for the given <see cref="T:System.ReadOnlySpan`1"/> instance.
  2596. </summary>
  2597. <typeparam name="T">The type of items in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2598. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2599. <param name="height">The height of the resulting 2D area.</param>
  2600. <param name="width">The width of each row in the resulting 2D area.</param>
  2601. <returns>The resulting <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.</returns>
  2602. <exception cref="T:System.ArgumentOutOfRangeException">
  2603. Thrown when one of the input parameters is out of range.
  2604. </exception>
  2605. <exception cref="T:System.ArgumentException">
  2606. Thrown when the requested area is outside of bounds for <paramref name="span"/>.
  2607. </exception>
  2608. </member>
  2609. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.AsSpan2D``1(System.ReadOnlySpan{``0},System.Int32,System.Int32,System.Int32,System.Int32)">
  2610. <summary>
  2611. Returns a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance wrapping the underlying data for the given <see cref="T:System.ReadOnlySpan`1"/> instance.
  2612. </summary>
  2613. <typeparam name="T">The type of items in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2614. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2615. <param name="offset">The initial offset within <paramref name="span"/>.</param>
  2616. <param name="height">The height of the resulting 2D area.</param>
  2617. <param name="width">The width of each row in the resulting 2D area.</param>
  2618. <param name="pitch">The pitch in the resulting 2D area.</param>
  2619. <returns>The resulting <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.</returns>
  2620. <exception cref="T:System.ArgumentOutOfRangeException">
  2621. Thrown when one of the input parameters is out of range.
  2622. </exception>
  2623. <exception cref="T:System.ArgumentException">
  2624. Thrown when the requested area is outside of bounds for <paramref name="span"/>.
  2625. </exception>
  2626. </member>
  2627. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0@)">
  2628. <summary>
  2629. Gets the index of an element of a given <see cref="T:System.ReadOnlySpan`1"/> from its reference.
  2630. </summary>
  2631. <typeparam name="T">The type if items in the input <see cref="T:System.ReadOnlySpan`1"/>.</typeparam>
  2632. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> to calculate the index for.</param>
  2633. <param name="value">The reference to the target item to get the index for.</param>
  2634. <returns>The index of <paramref name="value"/> within <paramref name="span"/>.</returns>
  2635. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> does not belong to <paramref name="span"/>.</exception>
  2636. </member>
  2637. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.Count``1(System.ReadOnlySpan{``0},``0)">
  2638. <summary>
  2639. Counts the number of occurrences of a given value into a target <see cref="T:System.ReadOnlySpan`1"/> instance.
  2640. </summary>
  2641. <typeparam name="T">The type of items in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2642. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance to read.</param>
  2643. <param name="value">The <typeparamref name="T"/> value to look for.</param>
  2644. <returns>The number of occurrences of <paramref name="value"/> in <paramref name="span"/>.</returns>
  2645. </member>
  2646. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.AsBytes``1(System.ReadOnlySpan{``0})">
  2647. <summary>
  2648. Casts a <see cref="T:System.ReadOnlySpan`1"/> of one primitive type <typeparamref name="T"/> to <see cref="T:System.ReadOnlySpan`1"/> of bytes.
  2649. </summary>
  2650. <typeparam name="T">The type if items in the source <see cref="T:System.ReadOnlySpan`1"/>.</typeparam>
  2651. <param name="span">The source slice, of type <typeparamref name="T"/>.</param>
  2652. <returns>A <see cref="T:System.ReadOnlySpan`1"/> of bytes.</returns>
  2653. <exception cref="T:System.OverflowException">
  2654. Thrown if the <see cref="P:System.ReadOnlySpan`1.Length"/> property of the new <see cref="T:System.ReadOnlySpan`1"/> would exceed <see cref="F:System.Int32.MaxValue"/>.
  2655. </exception>
  2656. </member>
  2657. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.Cast``2(System.ReadOnlySpan{``0})">
  2658. <summary>
  2659. Casts a <see cref="T:System.ReadOnlySpan`1"/> of one primitive type <typeparamref name="TFrom"/> to another primitive type <typeparamref name="TTo"/>.
  2660. </summary>
  2661. <typeparam name="TFrom">The type of items in the source <see cref="T:System.ReadOnlySpan`1"/>.</typeparam>
  2662. <typeparam name="TTo">The type of items in the destination <see cref="T:System.ReadOnlySpan`1"/>.</typeparam>
  2663. <param name="span">The source slice, of type <typeparamref name="TFrom"/>.</param>
  2664. <returns>A <see cref="T:System.ReadOnlySpan`1"/> of type <typeparamref name="TTo"/></returns>
  2665. <remarks>
  2666. Supported only for platforms that support misaligned memory access or when the memory block is aligned by other means.
  2667. </remarks>
  2668. </member>
  2669. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.Enumerate``1(System.ReadOnlySpan{``0})">
  2670. <summary>
  2671. Enumerates the items in the input <see cref="T:System.ReadOnlySpan`1"/> instance, as pairs of value/index values.
  2672. This extension should be used directly within a <see langword="foreach"/> loop:
  2673. <code>
  2674. ReadOnlySpan&lt;string&gt; words = new[] { "Hello", ", ", "world", "!" };
  2675. foreach (var item in words.Enumerate())
  2676. {
  2677. // Access the index and value of each item here...
  2678. int index = item.Index;
  2679. string value = item.Value;
  2680. }
  2681. </code>
  2682. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  2683. </summary>
  2684. <typeparam name="T">The type of items to enumerate.</typeparam>
  2685. <param name="span">The source <see cref="T:System.ReadOnlySpan`1"/> to enumerate.</param>
  2686. <returns>A wrapper type that will handle the value/index enumeration for <paramref name="span"/>.</returns>
  2687. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  2688. </member>
  2689. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.Tokenize``1(System.ReadOnlySpan{``0},``0)">
  2690. <summary>
  2691. Tokenizes the values in the input <see cref="T:System.ReadOnlySpan`1"/> instance using a specified separator.
  2692. This extension should be used directly within a <see langword="foreach"/> loop:
  2693. <code>
  2694. ReadOnlySpan&lt;char&gt; text = "Hello, world!";
  2695. foreach (var token in text.Tokenize(','))
  2696. {
  2697. // Access the tokens here...
  2698. }
  2699. </code>
  2700. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  2701. </summary>
  2702. <typeparam name="T">The type of items in the <see cref="T:System.ReadOnlySpan`1"/> to tokenize.</typeparam>
  2703. <param name="span">The source <see cref="T:System.ReadOnlySpan`1"/> to tokenize.</param>
  2704. <param name="separator">The separator <typeparamref name="T"/> item to use.</param>
  2705. <returns>A wrapper type that will handle the tokenization for <paramref name="span"/>.</returns>
  2706. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  2707. </member>
  2708. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.GetDjb2HashCode``1(System.ReadOnlySpan{``0})">
  2709. <summary>
  2710. Gets a content hash from the input <see cref="T:System.ReadOnlySpan`1"/> instance using the Djb2 algorithm.
  2711. It was designed by <see href="https://en.wikipedia.org/wiki/Daniel_J._Bernstein">Daniel J. Bernstein</see> and is a
  2712. <see href="https://en.wikipedia.org/wiki/List_of_hash_functions#Non-cryptographic_hash_functions">non-cryptographic has function</see>.
  2713. The main advantages of this algorithm are a good distribution of the resulting hash codes, which results in a relatively low
  2714. number of collisions, while at the same time being particularly fast to process, making it suitable for quickly hashing
  2715. even long sequences of values. For the reference implementation, see: <see href="http://www.cse.yorku.ca/~oz/hash.html"/>.
  2716. For details on the used constants, see the details provided in this StackOverflow answer (as well as the accepted one):
  2717. <see href="https://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function/13809282#13809282"/>.
  2718. Additionally, a comparison between some common hashing algorithms can be found in the reply to this StackExchange question:
  2719. <see href="https://softwareengineering.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed"/>.
  2720. Note that the exact implementation is slightly different in this method when it is not called on a sequence of <see cref="T:System.Byte"/>
  2721. values: in this case the <see cref="M:System.Object.GetHashCode"/> method will be invoked for each <typeparamref name="T"/> value in
  2722. the provided <see cref="T:System.ReadOnlySpan`1"/> instance, and then those values will be combined using the Djb2 algorithm.
  2723. </summary>
  2724. <typeparam name="T">The type of items in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2725. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2726. <returns>The Djb2 value for the input <see cref="T:System.ReadOnlySpan`1"/> instance.</returns>
  2727. <remarks>The Djb2 hash is fully deterministic and with no random components.</remarks>
  2728. </member>
  2729. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.CopyTo``1(System.ReadOnlySpan{``0},CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{``0})">
  2730. <summary>
  2731. Copies the contents of a given <see cref="T:System.ReadOnlySpan`1"/> into destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  2732. </summary>
  2733. <typeparam name="T">The type of items in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2734. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2735. <param name="destination">The <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance to copy items into.</param>
  2736. <exception cref="T:System.ArgumentException">
  2737. Thrown when the destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> is shorter than the source <see cref="T:System.ReadOnlySpan`1"/>.
  2738. </exception>
  2739. </member>
  2740. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.TryCopyTo``1(System.ReadOnlySpan{``0},CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{``0})">
  2741. <summary>
  2742. Attempts to copy the contents of a given <see cref="T:System.ReadOnlySpan`1"/> into destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  2743. </summary>
  2744. <typeparam name="T">The type of items in the input <see cref="T:System.ReadOnlySpan`1"/> instance.</typeparam>
  2745. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance.</param>
  2746. <param name="destination">The <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance to copy items into.</param>
  2747. <returns>Whether or not the operation was successful.</returns>
  2748. </member>
  2749. <member name="T:CommunityToolkit.HighPerformance.SpanExtensions">
  2750. <summary>
  2751. Helpers for working with the <see cref="T:System.Span`1"/> type.
  2752. </summary>
  2753. </member>
  2754. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.DangerousGetReference``1(System.Span{``0})">
  2755. <summary>
  2756. Returns a reference to the first element within a given <see cref="T:System.Span`1"/>, with no bounds checks.
  2757. </summary>
  2758. <typeparam name="T">The type of elements in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2759. <param name="span">The input <see cref="T:System.Span`1"/> instance.</param>
  2760. <returns>A reference to the first element within <paramref name="span"/>.</returns>
  2761. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to perform checks in case the returned value is dereferenced.</remarks>
  2762. </member>
  2763. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.DangerousGetReferenceAt``1(System.Span{``0},System.Int32)">
  2764. <summary>
  2765. Returns a reference to an element at a specified index within a given <see cref="T:System.Span`1"/>, with no bounds checks.
  2766. </summary>
  2767. <typeparam name="T">The type of elements in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2768. <param name="span">The input <see cref="T:System.Span`1"/> instance.</param>
  2769. <param name="i">The index of the element to retrieve within <paramref name="span"/>.</param>
  2770. <returns>A reference to the element within <paramref name="span"/> at the index specified by <paramref name="i"/>.</returns>
  2771. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to ensure the <paramref name="i"/> parameter is valid.</remarks>
  2772. </member>
  2773. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.DangerousGetReferenceAt``1(System.Span{``0},System.IntPtr)">
  2774. <summary>
  2775. Returns a reference to an element at a specified index within a given <see cref="T:System.Span`1"/>, with no bounds checks.
  2776. </summary>
  2777. <typeparam name="T">The type of elements in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2778. <param name="span">The input <see cref="T:System.Span`1"/> instance.</param>
  2779. <param name="i">The index of the element to retrieve within <paramref name="span"/>.</param>
  2780. <returns>A reference to the element within <paramref name="span"/> at the index specified by <paramref name="i"/>.</returns>
  2781. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to ensure the <paramref name="i"/> parameter is valid.</remarks>
  2782. </member>
  2783. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.AsSpan2D``1(System.Span{``0},System.Int32,System.Int32)">
  2784. <summary>
  2785. Returns a <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance wrapping the underlying data for the given <see cref="T:System.Span`1"/> instance.
  2786. </summary>
  2787. <typeparam name="T">The type of items in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2788. <param name="span">The input <see cref="T:System.Span`1"/> instance.</param>
  2789. <param name="height">The height of the resulting 2D area.</param>
  2790. <param name="width">The width of each row in the resulting 2D area.</param>
  2791. <returns>The resulting <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</returns>
  2792. <exception cref="T:System.ArgumentOutOfRangeException">
  2793. Thrown when one of the input parameters is out of range.
  2794. </exception>
  2795. <exception cref="T:System.ArgumentException">
  2796. Thrown when the requested area is outside of bounds for <paramref name="span"/>.
  2797. </exception>
  2798. </member>
  2799. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.AsSpan2D``1(System.Span{``0},System.Int32,System.Int32,System.Int32,System.Int32)">
  2800. <summary>
  2801. Returns a <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance wrapping the underlying data for the given <see cref="T:System.Span`1"/> instance.
  2802. </summary>
  2803. <typeparam name="T">The type of items in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2804. <param name="span">The input <see cref="T:System.Span`1"/> instance.</param>
  2805. <param name="offset">The initial offset within <paramref name="span"/>.</param>
  2806. <param name="height">The height of the resulting 2D area.</param>
  2807. <param name="width">The width of each row in the resulting 2D area.</param>
  2808. <param name="pitch">The pitch in the resulting 2D area.</param>
  2809. <returns>The resulting <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</returns>
  2810. <exception cref="T:System.ArgumentOutOfRangeException">
  2811. Thrown when one of the input parameters is out of range.
  2812. </exception>
  2813. <exception cref="T:System.ArgumentException">
  2814. Thrown when the requested area is outside of bounds for <paramref name="span"/>.
  2815. </exception>
  2816. </member>
  2817. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.AsBytes``1(System.Span{``0})">
  2818. <summary>
  2819. Casts a <see cref="T:System.Span`1"/> of one primitive type <typeparamref name="T"/> to <see cref="T:System.Span`1"/> of bytes.
  2820. </summary>
  2821. <typeparam name="T">The type if items in the source <see cref="T:System.Span`1"/>.</typeparam>
  2822. <param name="span">The source slice, of type <typeparamref name="T"/>.</param>
  2823. <returns>A <see cref="T:System.Span`1"/> of bytes.</returns>
  2824. <exception cref="T:System.OverflowException">
  2825. Thrown if the <see cref="P:System.Span`1.Length"/> property of the new <see cref="T:System.Span`1"/> would exceed <see cref="F:System.Int32.MaxValue"/>.
  2826. </exception>
  2827. </member>
  2828. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.Cast``2(System.Span{``0})">
  2829. <summary>
  2830. Casts a <see cref="T:System.Span`1"/> of one primitive type <typeparamref name="TFrom"/> to another primitive type <typeparamref name="TTo"/>.
  2831. </summary>
  2832. <typeparam name="TFrom">The type of items in the source <see cref="T:System.Span`1"/>.</typeparam>
  2833. <typeparam name="TTo">The type of items in the destination <see cref="T:System.Span`1"/>.</typeparam>
  2834. <param name="span">The source slice, of type <typeparamref name="TFrom"/>.</param>
  2835. <returns>A <see cref="T:System.Span`1"/> of type <typeparamref name="TTo"/></returns>
  2836. <remarks>
  2837. Supported only for platforms that support misaligned memory access or when the memory block is aligned by other means.
  2838. </remarks>
  2839. </member>
  2840. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.IndexOf``1(System.Span{``0},``0@)">
  2841. <summary>
  2842. Gets the index of an element of a given <see cref="T:System.Span`1"/> from its reference.
  2843. </summary>
  2844. <typeparam name="T">The type if items in the input <see cref="T:System.Span`1"/>.</typeparam>
  2845. <param name="span">The input <see cref="T:System.Span`1"/> to calculate the index for.</param>
  2846. <param name="value">The reference to the target item to get the index for.</param>
  2847. <returns>The index of <paramref name="value"/> within <paramref name="span"/>.</returns>
  2848. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="value"/> does not belong to <paramref name="span"/>.</exception>
  2849. </member>
  2850. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.Count``1(System.Span{``0},``0)">
  2851. <summary>
  2852. Counts the number of occurrences of a given value into a target <see cref="T:System.Span`1"/> instance.
  2853. </summary>
  2854. <typeparam name="T">The type of items in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2855. <param name="span">The input <see cref="T:System.Span`1"/> instance to read.</param>
  2856. <param name="value">The <typeparamref name="T"/> value to look for.</param>
  2857. <returns>The number of occurrences of <paramref name="value"/> in <paramref name="span"/>.</returns>
  2858. </member>
  2859. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.Enumerate``1(System.Span{``0})">
  2860. <summary>
  2861. Enumerates the items in the input <see cref="T:System.Span`1"/> instance, as pairs of reference/index values.
  2862. This extension should be used directly within a <see langword="foreach"/> loop:
  2863. <code>
  2864. Span&lt;int&gt; numbers = new[] { 1, 2, 3, 4, 5, 6, 7 };
  2865. foreach (var item in numbers.Enumerate())
  2866. {
  2867. // Access the index and value of each item here...
  2868. int index = item.Index;
  2869. ref int value = ref item.Value;
  2870. }
  2871. </code>
  2872. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  2873. </summary>
  2874. <typeparam name="T">The type of items to enumerate.</typeparam>
  2875. <param name="span">The source <see cref="T:System.Span`1"/> to enumerate.</param>
  2876. <returns>A wrapper type that will handle the reference/index enumeration for <paramref name="span"/>.</returns>
  2877. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  2878. </member>
  2879. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.Tokenize``1(System.Span{``0},``0)">
  2880. <summary>
  2881. Tokenizes the values in the input <see cref="T:System.Span`1"/> instance using a specified separator.
  2882. This extension should be used directly within a <see langword="foreach"/> loop:
  2883. <code>
  2884. Span&lt;char&gt; text = "Hello, world!".ToCharArray();
  2885. foreach (var token in text.Tokenize(','))
  2886. {
  2887. // Access the tokens here...
  2888. }
  2889. </code>
  2890. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  2891. </summary>
  2892. <typeparam name="T">The type of items in the <see cref="T:System.Span`1"/> to tokenize.</typeparam>
  2893. <param name="span">The source <see cref="T:System.Span`1"/> to tokenize.</param>
  2894. <param name="separator">The separator <typeparamref name="T"/> item to use.</param>
  2895. <returns>A wrapper type that will handle the tokenization for <paramref name="span"/>.</returns>
  2896. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.SpanTokenizer`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  2897. </member>
  2898. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.GetDjb2HashCode``1(System.Span{``0})">
  2899. <summary>
  2900. Gets a content hash from the input <see cref="T:System.Span`1"/> instance using the Djb2 algorithm.
  2901. For more info, see the documentation for <see cref="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.GetDjb2HashCode``1(System.ReadOnlySpan{``0})"/>.
  2902. </summary>
  2903. <typeparam name="T">The type of items in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2904. <param name="span">The input <see cref="T:System.Span`1"/> instance.</param>
  2905. <returns>The Djb2 value for the input <see cref="T:System.Span`1"/> instance.</returns>
  2906. <remarks>The Djb2 hash is fully deterministic and with no random components.</remarks>
  2907. </member>
  2908. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.CopyTo``1(System.Span{``0},CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{``0})">
  2909. <summary>
  2910. Copies the contents of a given <see cref="T:System.Span`1"/> into destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  2911. </summary>
  2912. <typeparam name="T">The type of items in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2913. <param name="span">The input <see cref="T:System.Span`1"/> instance.</param>
  2914. <param name="destination">The <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance to copy items into.</param>
  2915. <exception cref="T:System.ArgumentException">
  2916. Thrown when the destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> is shorter than the source <see cref="T:System.Span`1"/>.
  2917. </exception>
  2918. </member>
  2919. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.TryCopyTo``1(System.Span{``0},CommunityToolkit.HighPerformance.Enumerables.RefEnumerable{``0})">
  2920. <summary>
  2921. Attempts to copy the contents of a given <see cref="T:System.Span`1"/> into destination <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance.
  2922. </summary>
  2923. <typeparam name="T">The type of items in the input <see cref="T:System.Span`1"/> instance.</typeparam>
  2924. <param name="span">The input <see cref="T:System.Span`1"/> instance.</param>
  2925. <param name="destination">The <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> instance to copy items into.</param>
  2926. <returns>Whether or not the operation was successful.</returns>
  2927. </member>
  2928. <member name="M:CommunityToolkit.HighPerformance.SpanExtensions.ThrowArgumentOutOfRangeExceptionForInvalidReference">
  2929. <summary>
  2930. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the given reference is out of range.
  2931. </summary>
  2932. </member>
  2933. <member name="T:CommunityToolkit.HighPerformance.SpinLockExtensions">
  2934. <summary>
  2935. Helpers for working with the <see cref="T:System.Threading.SpinLock"/> type.
  2936. </summary>
  2937. </member>
  2938. <member name="M:CommunityToolkit.HighPerformance.SpinLockExtensions.Enter(System.Threading.SpinLock*)">
  2939. <summary>
  2940. Enters a specified <see cref="T:System.Threading.SpinLock"/> instance and returns a wrapper to use to release the lock.
  2941. This extension should be used though a <see langword="using"/> block or statement:
  2942. <code>
  2943. SpinLock spinLock = new SpinLock();
  2944. using (SpinLockExtensions.Enter(&amp;spinLock))
  2945. {
  2946. // Thread-safe code here...
  2947. }
  2948. </code>
  2949. The compiler will take care of releasing the SpinLock when the code goes out of that <see langword="using"/> scope.
  2950. </summary>
  2951. <param name="spinLock">A pointer to the target <see cref="T:System.Threading.SpinLock"/> to use</param>
  2952. <returns>A wrapper type that will release <paramref name="spinLock"/> when its <see cref="M:System.IDisposable.Dispose"/> method is called.</returns>
  2953. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.SpinLockExtensions.UnsafeLock"/> value shouldn't be used directly: use this extension in a <see langword="using"/> block or statement.</remarks>
  2954. </member>
  2955. <member name="T:CommunityToolkit.HighPerformance.SpinLockExtensions.UnsafeLock">
  2956. <summary>
  2957. A <see langword="struct"/> that is used to enter and hold a <see cref="T:System.Threading.SpinLock"/> through a <see langword="using"/> block or statement.
  2958. </summary>
  2959. </member>
  2960. <member name="F:CommunityToolkit.HighPerformance.SpinLockExtensions.UnsafeLock.spinLock">
  2961. <summary>
  2962. The <see cref="T:System.Threading.SpinLock"/>* pointer to the target <see cref="T:System.Threading.SpinLock"/> value to use.
  2963. </summary>
  2964. </member>
  2965. <member name="F:CommunityToolkit.HighPerformance.SpinLockExtensions.UnsafeLock.lockTaken">
  2966. <summary>
  2967. A value indicating whether or not the lock is taken by this <see cref="T:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock"/> instance.
  2968. </summary>
  2969. </member>
  2970. <member name="M:CommunityToolkit.HighPerformance.SpinLockExtensions.UnsafeLock.#ctor(System.Threading.SpinLock*)">
  2971. <summary>
  2972. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.SpinLockExtensions.UnsafeLock"/> struct.
  2973. </summary>
  2974. <param name="spinLock">The target <see cref="T:System.Threading.SpinLock"/> to use.</param>
  2975. </member>
  2976. <member name="M:CommunityToolkit.HighPerformance.SpinLockExtensions.UnsafeLock.Dispose">
  2977. <summary>
  2978. Implements the duck-typed <see cref="M:System.IDisposable.Dispose"/> method and releases the current <see cref="T:System.Threading.SpinLock"/> instance.
  2979. </summary>
  2980. </member>
  2981. <member name="M:CommunityToolkit.HighPerformance.SpinLockExtensions.Enter(System.Threading.SpinLock@)">
  2982. <summary>
  2983. Enters a specified <see cref="T:System.Threading.SpinLock"/> instance and returns a wrapper to use to release the lock.
  2984. This extension should be used though a <see langword="using"/> block or statement:
  2985. <code>
  2986. SpinLock spinLock = new SpinLock();
  2987. using (spinLock.Enter())
  2988. {
  2989. // Thread-safe code here...
  2990. }
  2991. </code>
  2992. The compiler will take care of releasing the SpinLock when the code goes out of that <see langword="using"/> scope.
  2993. </summary>
  2994. <param name="spinLock">The target <see cref="T:System.Threading.SpinLock"/> to use</param>
  2995. <returns>A wrapper type that will release <paramref name="spinLock"/> when its <see cref="M:System.IDisposable.Dispose"/> method is called.</returns>
  2996. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock"/> value shouldn't be used directly: use this extension in a <see langword="using"/> block or statement.</remarks>
  2997. </member>
  2998. <member name="T:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock">
  2999. <summary>
  3000. A <see langword="struct"/> that is used to enter and hold a <see cref="T:System.Threading.SpinLock"/> through a <see langword="using"/> block or statement.
  3001. </summary>
  3002. </member>
  3003. <member name="F:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock.spinLock">
  3004. <summary>
  3005. The <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance pointing to the target <see cref="T:System.Threading.SpinLock"/> value to use.
  3006. </summary>
  3007. </member>
  3008. <member name="F:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock.lockTaken">
  3009. <summary>
  3010. A value indicating whether or not the lock is taken by this <see cref="T:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock"/> instance.
  3011. </summary>
  3012. </member>
  3013. <member name="M:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock.#ctor(System.Threading.SpinLock@)">
  3014. <summary>
  3015. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock"/> struct.
  3016. </summary>
  3017. <param name="spinLock">The target <see cref="T:System.Threading.SpinLock"/> to use.</param>
  3018. </member>
  3019. <member name="M:CommunityToolkit.HighPerformance.SpinLockExtensions.Lock.Dispose">
  3020. <summary>
  3021. Implements the duck-typed <see cref="M:System.IDisposable.Dispose"/> method and releases the current <see cref="T:System.Threading.SpinLock"/> instance.
  3022. </summary>
  3023. </member>
  3024. <member name="T:CommunityToolkit.HighPerformance.StreamExtensions">
  3025. <summary>
  3026. Helpers for working with the <see cref="T:System.IO.Stream"/> type.
  3027. </summary>
  3028. </member>
  3029. <member name="M:CommunityToolkit.HighPerformance.StreamExtensions.Read``1(System.IO.Stream)">
  3030. <summary>
  3031. Reads a value of a specified type from a source <see cref="T:System.IO.Stream"/> instance.
  3032. </summary>
  3033. <typeparam name="T">The type of value to read.</typeparam>
  3034. <param name="stream">The source <see cref="T:System.IO.Stream"/> instance to read from.</param>
  3035. <returns>The <typeparamref name="T"/> value read from <paramref name="stream"/>.</returns>
  3036. <exception cref="T:System.InvalidOperationException">Thrown if <paramref name="stream"/> reaches the end.</exception>
  3037. </member>
  3038. <member name="M:CommunityToolkit.HighPerformance.StreamExtensions.Write``1(System.IO.Stream,``0@)">
  3039. <summary>
  3040. Writes a value of a specified type into a target <see cref="T:System.IO.Stream"/> instance.
  3041. </summary>
  3042. <typeparam name="T">The type of value to write.</typeparam>
  3043. <param name="stream">The target <see cref="T:System.IO.Stream"/> instance to write to.</param>
  3044. <param name="value">The input value to write to <paramref name="stream"/>.</param>
  3045. </member>
  3046. <member name="M:CommunityToolkit.HighPerformance.StreamExtensions.ThrowInvalidOperationExceptionForEndOfStream">
  3047. <summary>
  3048. Throws an <see cref="T:System.InvalidOperationException"/> when <see cref="M:CommunityToolkit.HighPerformance.StreamExtensions.Read``1(System.IO.Stream)"/> fails.
  3049. </summary>
  3050. </member>
  3051. <member name="T:CommunityToolkit.HighPerformance.StringExtensions">
  3052. <summary>
  3053. Helpers for working with the <see cref="T:System.String"/> type.
  3054. </summary>
  3055. </member>
  3056. <member name="M:CommunityToolkit.HighPerformance.StringExtensions.DangerousGetReference(System.String)">
  3057. <summary>
  3058. Returns a reference to the first element within a given <see cref="T:System.String"/>, with no bounds checks.
  3059. </summary>
  3060. <param name="text">The input <see cref="T:System.String"/> instance.</param>
  3061. <returns>A reference to the first element within <paramref name="text"/>, or the location it would have used, if <paramref name="text"/> is empty.</returns>
  3062. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to perform checks in case the returned value is dereferenced.</remarks>
  3063. </member>
  3064. <member name="M:CommunityToolkit.HighPerformance.StringExtensions.DangerousGetReferenceAt(System.String,System.Int32)">
  3065. <summary>
  3066. Returns a reference to an element at a specified index within a given <see cref="T:System.String"/>, with no bounds checks.
  3067. </summary>
  3068. <param name="text">The input <see cref="T:System.String"/> instance.</param>
  3069. <param name="i">The index of the element to retrieve within <paramref name="text"/>.</param>
  3070. <returns>A reference to the element within <paramref name="text"/> at the index specified by <paramref name="i"/>.</returns>
  3071. <remarks>This method doesn't do any bounds checks, therefore it is responsibility of the caller to ensure the <paramref name="i"/> parameter is valid.</remarks>
  3072. </member>
  3073. <member name="M:CommunityToolkit.HighPerformance.StringExtensions.Count(System.String,System.Char)">
  3074. <summary>
  3075. Counts the number of occurrences of a given character into a target <see cref="T:System.String"/> instance.
  3076. </summary>
  3077. <param name="text">The input <see cref="T:System.String"/> instance to read.</param>
  3078. <param name="c">The character to look for.</param>
  3079. <returns>The number of occurrences of <paramref name="c"/> in <paramref name="text"/>.</returns>
  3080. </member>
  3081. <member name="M:CommunityToolkit.HighPerformance.StringExtensions.Enumerate(System.String)">
  3082. <summary>
  3083. Enumerates the items in the input <see cref="T:System.String"/> instance, as pairs of value/index values.
  3084. This extension should be used directly within a <see langword="foreach"/> loop:
  3085. <code>
  3086. string text = "Hello, world!";
  3087. foreach (var item in text.Enumerate())
  3088. {
  3089. // Access the index and value of each item here...
  3090. int index = item.Index;
  3091. char value = item.Value;
  3092. }
  3093. </code>
  3094. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  3095. </summary>
  3096. <param name="text">The source <see cref="T:System.String"/> to enumerate.</param>
  3097. <returns>A wrapper type that will handle the value/index enumeration for <paramref name="text"/>.</returns>
  3098. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  3099. </member>
  3100. <member name="M:CommunityToolkit.HighPerformance.StringExtensions.Tokenize(System.String,System.Char)">
  3101. <summary>
  3102. Tokenizes the values in the input <see cref="T:System.String"/> instance using a specified separator.
  3103. This extension should be used directly within a <see langword="foreach"/> loop:
  3104. <code>
  3105. string text = "Hello, world!";
  3106. foreach (var token in text.Tokenize(','))
  3107. {
  3108. // Access the tokens here...
  3109. }
  3110. </code>
  3111. The compiler will take care of properly setting up the <see langword="foreach"/> loop with the type returned from this method.
  3112. </summary>
  3113. <param name="text">The source <see cref="T:System.String"/> to tokenize.</param>
  3114. <param name="separator">The separator character to use.</param>
  3115. <returns>A wrapper type that will handle the tokenization for <paramref name="text"/>.</returns>
  3116. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlySpanTokenizer`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  3117. </member>
  3118. <member name="M:CommunityToolkit.HighPerformance.StringExtensions.GetDjb2HashCode(System.String)">
  3119. <summary>
  3120. Gets a content hash from the input <see cref="T:System.String"/> instance using the Djb2 algorithm.
  3121. For more info, see the documentation for <see cref="M:CommunityToolkit.HighPerformance.ReadOnlySpanExtensions.GetDjb2HashCode``1(System.ReadOnlySpan{``0})"/>.
  3122. </summary>
  3123. <param name="text">The source <see cref="T:System.String"/> to enumerate.</param>
  3124. <returns>The Djb2 value for the input <see cref="T:System.String"/> instance.</returns>
  3125. <remarks>The Djb2 hash is fully deterministic and with no random components.</remarks>
  3126. </member>
  3127. <member name="T:CommunityToolkit.HighPerformance.Helpers.BitHelper">
  3128. <summary>
  3129. Helpers to perform bit operations on numeric types.
  3130. </summary>
  3131. </member>
  3132. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasFlag(System.UInt32,System.Int32)">
  3133. <summary>
  3134. Checks whether or not a given bit is set.
  3135. </summary>
  3136. <param name="value">The input <see cref="T:System.UInt32"/> value.</param>
  3137. <param name="n">The position of the bit to check (in [0, 31] range).</param>
  3138. <returns>Whether or not the n-th bit is set.</returns>
  3139. <remarks>
  3140. This method doesn't validate <paramref name="n"/> against the valid range.
  3141. If the parameter is not valid, the result will just be inconsistent.
  3142. Additionally, no conditional branches are used to retrieve the flag.
  3143. </remarks>
  3144. </member>
  3145. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasLookupFlag(System.UInt32,System.Int32,System.Int32)">
  3146. <summary>
  3147. Checks whether or not a given bit is set in a given bitwise lookup table.
  3148. This method provides a branchless, register-based (with no memory accesses) way to
  3149. check whether a given value is valid, according to a precomputed lookup table.
  3150. It is similar in behavior to <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasFlag(System.UInt32,System.Int32)"/>, with the main difference
  3151. being that this method will also validate the input <paramref name="x"/> parameter, and
  3152. will always return <see langword="false"/> if it falls outside of the expected interval.
  3153. Additionally, this method accepts a <paramref name="min"/> parameter, which is used to
  3154. decrement the input parameter <paramref name="x"/> to ensure that the range of accepted
  3155. values fits within the available 32 bits of the lookup table in use.
  3156. For more info on this optimization technique, see <see href="https://egorbo.com/llvm-range-checks.html"/>.
  3157. Here is how the code from the link above would be implemented using this method:
  3158. <code>
  3159. bool IsReservedCharacter(char c)
  3160. {
  3161. return BitHelper.HasLookupFlag(314575237u, c, 36);
  3162. }
  3163. </code>
  3164. The resulted assembly is virtually identical, with the added optimization that the one
  3165. produced by <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasLookupFlag(System.UInt32,System.Int32,System.Int32)"/> has no conditional branches at all.
  3166. </summary>
  3167. <param name="table">The input lookup table to use.</param>
  3168. <param name="x">The input value to check.</param>
  3169. <param name="min">The minimum accepted value for <paramref name="x"/> (defaults to 0).</param>
  3170. <returns>Whether or not the corresponding flag for <paramref name="x"/> is set in <paramref name="table"/>.</returns>
  3171. <remarks>
  3172. For best results, as shown in the sample code, both <paramref name="table"/> and <paramref name="min"/>
  3173. should be compile-time constants, so that the JIT compiler will be able to produce more efficient code.
  3174. </remarks>
  3175. </member>
  3176. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasZeroByte(System.UInt32)">
  3177. <summary>
  3178. Checks whether the given value has any bytes that are set to 0.
  3179. That is, given a <see cref="T:System.UInt32"/> value, which has a total of 4 bytes,
  3180. it checks whether any of those have all the bits set to 0.
  3181. </summary>
  3182. <param name="value">The input value to check.</param>
  3183. <returns>Whether <paramref name="value"/> has any bytes set to 0.</returns>
  3184. <remarks>
  3185. This method contains no branches.
  3186. For more background on this subject, see <see href="https://graphics.stanford.edu/~seander/bithacks.html#ZeroInWord"/>.
  3187. </remarks>
  3188. </member>
  3189. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasZeroByte(System.UInt64)">
  3190. <summary>
  3191. Checks whether the given value has any bytes that are set to 0.
  3192. This method mirrors <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasZeroByte(System.UInt32)"/>, but with <see cref="T:System.UInt64"/> values.
  3193. </summary>
  3194. <param name="value">The input value to check.</param>
  3195. <returns>Whether <paramref name="value"/> has any bytes set to 0.</returns>
  3196. </member>
  3197. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasByteEqualTo(System.UInt32,System.Byte)">
  3198. <summary>
  3199. Checks whether a byte in the input <see cref="T:System.UInt32"/> value matches a target value.
  3200. </summary>
  3201. <param name="value">The input value to check.</param>
  3202. <param name="target">The target byte to look for.</param>
  3203. <returns>Whether <paramref name="value"/> has any bytes set to <paramref name="target"/>.</returns>
  3204. <remarks>
  3205. This method contains no branches.
  3206. For more info, see <see href="https://graphics.stanford.edu/~seander/bithacks.html#ZeroInWord"/>.
  3207. </remarks>
  3208. </member>
  3209. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasByteEqualTo(System.UInt64,System.Byte)">
  3210. <summary>
  3211. Checks whether a byte in the input <see cref="T:System.UInt32"/> value matches a target value.
  3212. This method mirrors <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasByteEqualTo(System.UInt32,System.Byte)"/>, but with <see cref="T:System.UInt64"/> values.
  3213. </summary>
  3214. <param name="value">The input value to check.</param>
  3215. <param name="target">The target byte to look for.</param>
  3216. <returns>Whether <paramref name="value"/> has any bytes set to <paramref name="target"/>.</returns>
  3217. </member>
  3218. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.SetFlag(System.UInt32@,System.Int32,System.Boolean)">
  3219. <summary>
  3220. Sets a bit to a specified value.
  3221. </summary>
  3222. <param name="value">The target <see cref="T:System.UInt32"/> value.</param>
  3223. <param name="n">The position of the bit to set or clear (in [0, 31] range).</param>
  3224. <param name="flag">The value to assign to the target bit.</param>
  3225. <remarks>
  3226. Just like <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasFlag(System.UInt32,System.Int32)"/>, this method doesn't validate <paramref name="n"/>
  3227. and does not contain branching instructions, so it's well suited for use in tight loops as well.
  3228. </remarks>
  3229. </member>
  3230. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.SetFlag(System.UInt32,System.Int32,System.Boolean)">
  3231. <summary>
  3232. Sets a bit to a specified value.
  3233. </summary>
  3234. <param name="value">The input <see cref="T:System.UInt32"/> value.</param>
  3235. <param name="n">The position of the bit to set or clear (in [0, 31] range).</param>
  3236. <param name="flag">The value to assign to the target bit.</param>
  3237. <returns>An <see cref="T:System.UInt32"/> value equal to <paramref name="value"/> except for the <paramref name="n"/>-th bit.</returns>
  3238. <remarks>
  3239. Just like <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasFlag(System.UInt32,System.Int32)"/>, this method doesn't validate <paramref name="n"/>
  3240. and does not contain branching instructions, so it's well suited for use in tight loops as well.
  3241. </remarks>
  3242. </member>
  3243. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.ExtractRange(System.UInt32,System.Byte,System.Byte)">
  3244. <summary>
  3245. Extracts a bit field range from a given value.
  3246. </summary>
  3247. <param name="value">The input <see cref="T:System.UInt32"/> value.</param>
  3248. <param name="start">The initial index of the range to extract (in [0, 31] range).</param>
  3249. <param name="length">The length of the range to extract (depends on <paramref name="start"/>).</param>
  3250. <returns>The value of the extracted range within <paramref name="value"/>.</returns>
  3251. <remarks>
  3252. This method doesn't validate <paramref name="start"/> and <paramref name="length"/>.
  3253. If either parameter is not valid, the result will just be inconsistent. The method
  3254. should not be used to set all the bits at once, and it is not guaranteed to work in
  3255. that case, which would just be equivalent to assigning the <see cref="T:System.UInt32"/> value.
  3256. Additionally, no conditional branches are used to retrieve the range.
  3257. </remarks>
  3258. </member>
  3259. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.SetRange(System.UInt32@,System.Byte,System.Byte,System.UInt32)">
  3260. <summary>
  3261. Sets a bit field range within a target value.
  3262. </summary>
  3263. <param name="value">The target <see cref="T:System.UInt32"/> value.</param>
  3264. <param name="start">The initial index of the range to extract (in [0, 31] range).</param>
  3265. <param name="length">The length of the range to extract (depends on <paramref name="start"/>).</param>
  3266. <param name="flags">The input flags to insert in the target range.</param>
  3267. <remarks>
  3268. Just like <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.ExtractRange(System.UInt32,System.Byte,System.Byte)"/>, this method doesn't validate the parameters
  3269. and does not contain branching instructions, so it's well suited for use in tight loops as well.
  3270. </remarks>
  3271. </member>
  3272. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.SetRange(System.UInt32,System.Byte,System.Byte,System.UInt32)">
  3273. <summary>
  3274. Sets a bit field range within a target value.
  3275. </summary>
  3276. <param name="value">The initial <see cref="T:System.UInt32"/> value.</param>
  3277. <param name="start">The initial index of the range to extract (in [0, 31] range).</param>
  3278. <param name="length">The length of the range to extract (depends on <paramref name="start"/>).</param>
  3279. <param name="flags">The input flags to insert in the target range.</param>
  3280. <returns>The updated bit field value after setting the specified range.</returns>
  3281. <remarks>
  3282. Just like <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.ExtractRange(System.UInt32,System.Byte,System.Byte)"/>, this method doesn't validate the parameters
  3283. and does not contain branching instructions, so it's well suited for use in tight loops as well.
  3284. </remarks>
  3285. </member>
  3286. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasFlag(System.UInt64,System.Int32)">
  3287. <summary>
  3288. Checks whether or not a given bit is set.
  3289. </summary>
  3290. <param name="value">The input <see cref="T:System.UInt64"/> value.</param>
  3291. <param name="n">The position of the bit to check (in [0, 63] range).</param>
  3292. <returns>Whether or not the n-th bit is set.</returns>
  3293. <remarks>
  3294. This method doesn't validate <paramref name="n"/> against the valid range.
  3295. If the parameter is not valid, the result will just be inconsistent.
  3296. Additionally, no conditional branches are used to retrieve the flag.
  3297. </remarks>
  3298. </member>
  3299. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasLookupFlag(System.UInt64,System.Int32,System.Int32)">
  3300. <summary>
  3301. Checks whether or not a given bit is set in a given bitwise lookup table.
  3302. For more info, check the XML docs of the <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasLookupFlag(System.UInt32,System.Int32,System.Int32)"/> overload.
  3303. </summary>
  3304. <param name="table">The input lookup table to use.</param>
  3305. <param name="x">The input value to check.</param>
  3306. <param name="min">The minimum accepted value for <paramref name="x"/> (defaults to 0).</param>
  3307. <returns>Whether or not the corresponding flag for <paramref name="x"/> is set in <paramref name="table"/>.</returns>
  3308. <remarks>
  3309. For best results, as shown in the sample code, both <paramref name="table"/> and <paramref name="min"/>
  3310. should be compile-time constants, so that the JIT compiler will be able to produce more efficient code.
  3311. </remarks>
  3312. </member>
  3313. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.SetFlag(System.UInt64@,System.Int32,System.Boolean)">
  3314. <summary>
  3315. Sets a bit to a specified value.
  3316. </summary>
  3317. <param name="value">The target <see cref="T:System.UInt64"/> value.</param>
  3318. <param name="n">The position of the bit to set or clear (in [0, 63] range).</param>
  3319. <param name="flag">The value to assign to the target bit.</param>
  3320. <remarks>
  3321. Just like <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasFlag(System.UInt64,System.Int32)"/>, this method doesn't validate <paramref name="n"/>
  3322. and does not contain branching instructions, so it's well suited for use in tight loops as well.
  3323. </remarks>
  3324. </member>
  3325. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.SetFlag(System.UInt64,System.Int32,System.Boolean)">
  3326. <summary>
  3327. Sets a bit to a specified value.
  3328. </summary>
  3329. <param name="value">The input <see cref="T:System.UInt64"/> value.</param>
  3330. <param name="n">The position of the bit to set or clear (in [0, 63] range).</param>
  3331. <param name="flag">The value to assign to the target bit.</param>
  3332. <returns>An <see cref="T:System.UInt64"/> value equal to <paramref name="value"/> except for the <paramref name="n"/>-th bit.</returns>
  3333. <remarks>
  3334. Just like <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.HasFlag(System.UInt64,System.Int32)"/>, this method doesn't validate <paramref name="n"/>
  3335. and does not contain branching instructions, so it's well suited for use in tight loops as well.
  3336. </remarks>
  3337. </member>
  3338. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.ExtractRange(System.UInt64,System.Byte,System.Byte)">
  3339. <summary>
  3340. Extracts a bit field range from a given value.
  3341. </summary>
  3342. <param name="value">The input <see cref="T:System.UInt64"/> value.</param>
  3343. <param name="start">The initial index of the range to extract (in [0, 63] range).</param>
  3344. <param name="length">The length of the range to extract (depends on <paramref name="start"/>).</param>
  3345. <returns>The value of the extracted range within <paramref name="value"/>.</returns>
  3346. <remarks>
  3347. This method doesn't validate <paramref name="start"/> and <paramref name="length"/>.
  3348. If either parameter is not valid, the result will just be inconsistent. The method
  3349. should not be used to set all the bits at once, and it is not guaranteed to work in
  3350. that case, which would just be equivalent to assigning the <see cref="T:System.UInt64"/> value.
  3351. Additionally, no conditional branches are used to retrieve the range.
  3352. </remarks>
  3353. </member>
  3354. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.SetRange(System.UInt64@,System.Byte,System.Byte,System.UInt64)">
  3355. <summary>
  3356. Sets a bit field range within a target value.
  3357. </summary>
  3358. <param name="value">The target <see cref="T:System.UInt64"/> value.</param>
  3359. <param name="start">The initial index of the range to extract (in [0, 63] range).</param>
  3360. <param name="length">The length of the range to extract (depends on <paramref name="start"/>).</param>
  3361. <param name="flags">The input flags to insert in the target range.</param>
  3362. <remarks>
  3363. Just like <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.ExtractRange(System.UInt64,System.Byte,System.Byte)"/>, this method doesn't validate the parameters
  3364. and does not contain branching instructions, so it's well suited for use in tight loops as well.
  3365. </remarks>
  3366. </member>
  3367. <member name="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.SetRange(System.UInt64,System.Byte,System.Byte,System.UInt64)">
  3368. <summary>
  3369. Sets a bit field range within a target value.
  3370. </summary>
  3371. <param name="value">The initial <see cref="T:System.UInt64"/> value.</param>
  3372. <param name="start">The initial index of the range to extract (in [0, 63] range).</param>
  3373. <param name="length">The length of the range to extract (depends on <paramref name="start"/>).</param>
  3374. <param name="flags">The input flags to insert in the target range.</param>
  3375. <returns>The updated bit field value after setting the specified range.</returns>
  3376. <remarks>
  3377. Just like <see cref="M:CommunityToolkit.HighPerformance.Helpers.BitHelper.ExtractRange(System.UInt64,System.Byte,System.Byte)"/>, this method doesn't validate the parameters
  3378. and does not contain branching instructions, so it's well suited for use in tight loops as well.
  3379. </remarks>
  3380. </member>
  3381. <member name="T:CommunityToolkit.HighPerformance.Helpers.HashCode`1">
  3382. <summary>
  3383. Combines the hash code of sequences of <typeparamref name="T"/> values into a single hash code.
  3384. </summary>
  3385. <typeparam name="T">The type of values to hash.</typeparam>
  3386. <remarks>
  3387. The hash codes returned by the <see cref="M:CommunityToolkit.HighPerformance.Helpers.HashCode`1.Combine(System.ReadOnlySpan{`0})"/> method are only guaranteed to be repeatable for
  3388. the current execution session, just like with the available <see cref="T:System.HashCode"/> APIs.In other words,
  3389. hashing the same <see cref="T:System.ReadOnlySpan`1"/> collection multiple times in the same process will always
  3390. result in the same hash code, while the same collection being hashed again from another process
  3391. (or another instance of the same process) is not guaranteed to result in the same final value.
  3392. For more info, see <see href="https://docs.microsoft.com/en-us/dotnet/api/system.object.gethashcode#remarks"/>.
  3393. </remarks>
  3394. </member>
  3395. <member name="M:CommunityToolkit.HighPerformance.Helpers.HashCode`1.Combine(System.ReadOnlySpan{`0})">
  3396. <summary>
  3397. Gets a content hash from the input <see cref="T:System.ReadOnlySpan`1"/> instance using the xxHash32 algorithm.
  3398. </summary>
  3399. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance</param>
  3400. <returns>The xxHash32 value for the input <see cref="T:System.ReadOnlySpan`1"/> instance</returns>
  3401. <remarks>The xxHash32 is only guaranteed to be deterministic within the scope of a single app execution</remarks>
  3402. </member>
  3403. <member name="M:CommunityToolkit.HighPerformance.Helpers.HashCode`1.CombineValues(System.ReadOnlySpan{`0})">
  3404. <summary>
  3405. Gets a content hash from the input <see cref="T:System.ReadOnlySpan`1"/> instance.
  3406. </summary>
  3407. <param name="span">The input <see cref="T:System.ReadOnlySpan`1"/> instance</param>
  3408. <returns>The hash code for the input <see cref="T:System.ReadOnlySpan`1"/> instance</returns>
  3409. <remarks>The returned hash code is not processed through <see cref="T:System.HashCode"/> APIs.</remarks>
  3410. </member>
  3411. <member name="T:CommunityToolkit.HighPerformance.Helpers.Internals.BitOperations">
  3412. <summary>
  3413. Utility methods for intrinsic bit-twiddling operations. The methods use hardware intrinsics
  3414. when available on the underlying platform, otherwise they use optimized software fallbacks.
  3415. </summary>
  3416. </member>
  3417. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.BitOperations.RoundUpPowerOfTwo(System.Int32)">
  3418. <summary>
  3419. Rounds up an <see cref="T:System.Int32"/> value to a power of 2.
  3420. </summary>
  3421. <param name="x">The input value to round up.</param>
  3422. <returns>The smallest power of two greater than or equal to <paramref name="x"/>.</returns>
  3423. </member>
  3424. <member name="T:CommunityToolkit.HighPerformance.Helpers.Internals.RefEnumerableHelper">
  3425. <summary>
  3426. Helpers to process sequences of values by reference with a given step.
  3427. </summary>
  3428. </member>
  3429. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RefEnumerableHelper.Clear``1(``0@,System.IntPtr,System.IntPtr)">
  3430. <summary>
  3431. Clears a target memory area.
  3432. </summary>
  3433. <typeparam name="T">The type of values to clear.</typeparam>
  3434. <param name="r0">A <typeparamref name="T"/> reference to the start of the memory area.</param>
  3435. <param name="length">The number of items in the memory area.</param>
  3436. <param name="step">The number of items between each consecutive target value.</param>
  3437. </member>
  3438. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RefEnumerableHelper.CopyTo``1(``0@,``0@,System.IntPtr,System.IntPtr)">
  3439. <summary>
  3440. Copies a sequence of discontiguous items from one memory area to another.
  3441. </summary>
  3442. <typeparam name="T">The type of items to copy.</typeparam>
  3443. <param name="sourceRef">The source reference to copy from.</param>
  3444. <param name="destinationRef">The target reference to copy to.</param>
  3445. <param name="length">The total number of items to copy.</param>
  3446. <param name="sourceStep">The step between consecutive items in the memory area pointed to by <paramref name="sourceRef"/>.</param>
  3447. </member>
  3448. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RefEnumerableHelper.CopyTo``1(``0@,``0@,System.IntPtr,System.IntPtr,System.IntPtr)">
  3449. <summary>
  3450. Copies a sequence of discontiguous items from one memory area to another.
  3451. </summary>
  3452. <typeparam name="T">The type of items to copy.</typeparam>
  3453. <param name="sourceRef">The source reference to copy from.</param>
  3454. <param name="destinationRef">The target reference to copy to.</param>
  3455. <param name="length">The total number of items to copy.</param>
  3456. <param name="sourceStep">The step between consecutive items in the memory area pointed to by <paramref name="sourceRef"/>.</param>
  3457. <param name="destinationStep">The step between consecutive items in the memory area pointed to by <paramref name="destinationRef"/>.</param>
  3458. </member>
  3459. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RefEnumerableHelper.CopyFrom``1(``0@,``0@,System.IntPtr,System.IntPtr)">
  3460. <summary>
  3461. Copies a sequence of discontiguous items from one memory area to another. This mirrors
  3462. <see cref="M:CommunityToolkit.HighPerformance.Helpers.Internals.RefEnumerableHelper.CopyTo``1(``0@,``0@,System.IntPtr,System.IntPtr)"/>, but <paramref name="sourceStep"/> refers to <paramref name="destinationRef"/> instead.
  3463. </summary>
  3464. <typeparam name="T">The type of items to copy.</typeparam>
  3465. <param name="sourceRef">The source reference to copy from.</param>
  3466. <param name="destinationRef">The target reference to copy to.</param>
  3467. <param name="length">The total number of items to copy.</param>
  3468. <param name="sourceStep">The step between consecutive items in the memory area pointed to by <paramref name="sourceRef"/>.</param>
  3469. </member>
  3470. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RefEnumerableHelper.Fill``1(``0@,System.IntPtr,System.IntPtr,``0)">
  3471. <summary>
  3472. Fills a target memory area.
  3473. </summary>
  3474. <typeparam name="T">The type of values to fill.</typeparam>
  3475. <param name="r0">A <typeparamref name="T"/> reference to the start of the memory area.</param>
  3476. <param name="length">The number of items in the memory area.</param>
  3477. <param name="step">The number of items between each consecutive target value.</param>
  3478. <param name="value">The value to assign to every item in the target memory area.</param>
  3479. </member>
  3480. <member name="T:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers">
  3481. <summary>
  3482. A helper class that with utility methods for dealing with references, and other low-level details.
  3483. It also contains some APIs that act as polyfills for .NET Standard 2.0 and below.
  3484. </summary>
  3485. </member>
  3486. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.ConvertLength``2(System.Int32)">
  3487. <summary>
  3488. Converts a length of items from one size to another (rounding towards zero).
  3489. </summary>
  3490. <typeparam name="TFrom">The source type of items.</typeparam>
  3491. <typeparam name="TTo">The target type of items.</typeparam>
  3492. <param name="length">The input length to convert.</param>
  3493. <returns>The converted length for the specified argument and types.</returns>
  3494. </member>
  3495. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.GetArrayNativeLength``1(``0[])">
  3496. <summary>
  3497. Gets the length of a given array as a native integer.
  3498. </summary>
  3499. <typeparam name="T">The type of values in the array.</typeparam>
  3500. <param name="array">The input <see cref="T:System.Array"/> instance.</param>
  3501. <returns>The total length of <paramref name="array"/> as a native integer.</returns>
  3502. <remarks>
  3503. This method is needed because this expression is not inlined correctly if the target array
  3504. is only visible as a non-generic <see cref="T:System.Array"/> instance, because the C# compiler will
  3505. not be able to emit the <see langword="ldlen"/> opcode instead of calling the right method.
  3506. </remarks>
  3507. </member>
  3508. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.GetArrayNativeLength(System.Array)">
  3509. <summary>
  3510. Gets the length of a given array as a native integer.
  3511. </summary>
  3512. <param name="array">The input <see cref="T:System.Array"/> instance.</param>
  3513. <returns>The total length of <paramref name="array"/> as a native integer.</returns>
  3514. </member>
  3515. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.GetArrayDataByteOffset``1">
  3516. <summary>
  3517. Gets the byte offset to the first <typeparamref name="T"/> element in a SZ array.
  3518. </summary>
  3519. <typeparam name="T">The type of values in the array.</typeparam>
  3520. <returns>The byte offset to the first <typeparamref name="T"/> element in a SZ array.</returns>
  3521. </member>
  3522. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.GetArray2DDataByteOffset``1">
  3523. <summary>
  3524. Gets the byte offset to the first <typeparamref name="T"/> element in a 2D array.
  3525. </summary>
  3526. <typeparam name="T">The type of values in the array.</typeparam>
  3527. <returns>The byte offset to the first <typeparamref name="T"/> element in a 2D array.</returns>
  3528. </member>
  3529. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.GetArray3DDataByteOffset``1">
  3530. <summary>
  3531. Gets the byte offset to the first <typeparamref name="T"/> element in a 3D array.
  3532. </summary>
  3533. <typeparam name="T">The type of values in the array.</typeparam>
  3534. <returns>The byte offset to the first <typeparamref name="T"/> element in a 3D array.</returns>
  3535. </member>
  3536. <member name="T:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1">
  3537. <summary>
  3538. A private generic class to preload type info for arbitrary runtime types.
  3539. </summary>
  3540. <typeparam name="T">The type to load info for.</typeparam>
  3541. </member>
  3542. <member name="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.ArrayDataByteOffset">
  3543. <summary>
  3544. The byte offset to the first <typeparamref name="T"/> element in a SZ array.
  3545. </summary>
  3546. </member>
  3547. <member name="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.Array2DDataByteOffset">
  3548. <summary>
  3549. The byte offset to the first <typeparamref name="T"/> element in a 2D array.
  3550. </summary>
  3551. </member>
  3552. <member name="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.Array3DDataByteOffset">
  3553. <summary>
  3554. The byte offset to the first <typeparamref name="T"/> element in a 3D array.
  3555. </summary>
  3556. </member>
  3557. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.MeasureArrayDataByteOffset">
  3558. <summary>
  3559. Computes the value for <see cref="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.ArrayDataByteOffset"/>.
  3560. </summary>
  3561. <returns>The value of <see cref="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.ArrayDataByteOffset"/> for the current runtime.</returns>
  3562. </member>
  3563. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.MeasureArray2DDataByteOffset">
  3564. <summary>
  3565. Computes the value for <see cref="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.Array2DDataByteOffset"/>.
  3566. </summary>
  3567. <returns>The value of <see cref="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.Array2DDataByteOffset"/> for the current runtime.</returns>
  3568. </member>
  3569. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.MeasureArray3DDataByteOffset">
  3570. <summary>
  3571. Computes the value for <see cref="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.Array3DDataByteOffset"/>.
  3572. </summary>
  3573. <returns>The value of <see cref="F:CommunityToolkit.HighPerformance.Helpers.Internals.RuntimeHelpers.TypeInfo`1.Array3DDataByteOffset"/> for the current runtime.</returns>
  3574. </member>
  3575. <member name="T:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper">
  3576. <summary>
  3577. Helpers to process sequences of values by reference.
  3578. </summary>
  3579. <summary>
  3580. Helpers to process sequences of values by reference.
  3581. </summary>
  3582. </member>
  3583. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.Count``1(``0@,System.IntPtr,``0)">
  3584. <summary>
  3585. Counts the number of occurrences of a given value into a target search space.
  3586. </summary>
  3587. <param name="r0">A <typeparamref name="T"/> reference to the start of the search space.</param>
  3588. <param name="length">The number of items in the search space.</param>
  3589. <param name="value">The <typeparamref name="T"/> value to look for.</param>
  3590. <typeparam name="T">The type of value to look for.</typeparam>
  3591. <returns>The number of occurrences of <paramref name="value"/> in the search space</returns>
  3592. </member>
  3593. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.CountSequential``1(``0@,System.IntPtr,``0)">
  3594. <summary>
  3595. Implements <see cref="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.Count``1(``0@,System.IntPtr,``0)"/> with a sequential search.
  3596. </summary>
  3597. </member>
  3598. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.CountSimd``1(``0@,System.IntPtr,``0)">
  3599. <summary>
  3600. Implements <see cref="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.Count``1(``0@,System.IntPtr,``0)"/> with a vectorized search.
  3601. </summary>
  3602. </member>
  3603. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.GetUpperBound``1">
  3604. <summary>
  3605. Gets the upper bound for partial sums with a given <typeparamref name="T"/> parameter.
  3606. </summary>
  3607. <typeparam name="T">The type argument currently in use.</typeparam>
  3608. <returns>The native <see cref="T:System.Int32"/> value representing the upper bound.</returns>
  3609. </member>
  3610. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.CastToNativeInt``1(``0)">
  3611. <summary>
  3612. Casts a value of a given type to a native <see cref="T:System.Int32"/>.
  3613. </summary>
  3614. <typeparam name="T">The input type to cast.</typeparam>
  3615. <param name="value">The input <typeparamref name="T"/> value to cast to native <see cref="T:System.Int32"/>.</param>
  3616. <returns>The native <see cref="T:System.Int32"/> cast of <paramref name="value"/>.</returns>
  3617. </member>
  3618. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.GetDjb2HashCode``1(``0@,System.IntPtr)">
  3619. <summary>
  3620. Calculates the djb2 hash for the target sequence of items of a given type.
  3621. </summary>
  3622. <typeparam name="T">The type of items to hash.</typeparam>
  3623. <param name="r0">The reference to the target memory area to hash.</param>
  3624. <param name="length">The number of items to hash.</param>
  3625. <returns>The Djb2 value for the input sequence of items.</returns>
  3626. </member>
  3627. <member name="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.GetDjb2LikeByteHash(System.Byte@,System.IntPtr)">
  3628. <summary>
  3629. Gets a content hash from a given memory area.
  3630. </summary>
  3631. <param name="r0">A <see cref="T:System.Byte"/> reference to the start of the memory area.</param>
  3632. <param name="length">The size in bytes of the memory area.</param>
  3633. <returns>The hash code for the contents of the source memory area.</returns>
  3634. <remarks>
  3635. While this method is similar to <see cref="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.GetDjb2HashCode``1(``0@,System.IntPtr)"/> and can in some cases
  3636. produce the same output for a given memory area, it is not guaranteed to always be that way.
  3637. This is because this method can use SIMD instructions if possible, which can cause a computed
  3638. hash to differ for the same data, if processed on different machines with different CPU features.
  3639. The advantage of this method is that when SIMD instructions are available, it performs much
  3640. faster than <see cref="M:CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper.GetDjb2HashCode``1(``0@,System.IntPtr)"/>, as it can parallelize much of the workload.
  3641. </remarks>
  3642. </member>
  3643. <member name="T:CommunityToolkit.HighPerformance.Helpers.ObjectMarshal">
  3644. <summary>
  3645. Helpers for working with <see cref="T:System.Object"/> instances.
  3646. </summary>
  3647. </member>
  3648. <member name="M:CommunityToolkit.HighPerformance.Helpers.ObjectMarshal.DangerousGetObjectDataByteOffset``1(System.Object,``0@)">
  3649. <summary>
  3650. Calculates the byte offset to a specific field within a given <see cref="T:System.Object"/>.
  3651. </summary>
  3652. <typeparam name="T">The type of field being referenced.</typeparam>
  3653. <param name="obj">The input <see cref="T:System.Object"/> hosting the target field.</param>
  3654. <param name="data">A reference to a target field of type <typeparamref name="T"/> within <paramref name="obj"/>.</param>
  3655. <returns>
  3656. The <see cref="T:System.IntPtr"/> value representing the offset to the target field from the start of the object data
  3657. for the parameter <paramref name="obj"/>. The offset is in relation to the first usable byte after the method table.
  3658. </returns>
  3659. <remarks>The input parameters are not validated, and it's responsibility of the caller to ensure that
  3660. the <paramref name="data"/> reference is actually pointing to a memory location within <paramref name="obj"/>.
  3661. </remarks>
  3662. </member>
  3663. <member name="M:CommunityToolkit.HighPerformance.Helpers.ObjectMarshal.DangerousGetObjectDataReferenceAt``1(System.Object,System.IntPtr)">
  3664. <summary>
  3665. Gets a <typeparamref name="T"/> reference to data within a given <see cref="T:System.Object"/> at a specified offset.
  3666. </summary>
  3667. <typeparam name="T">The type of reference to retrieve.</typeparam>
  3668. <param name="obj">The input <see cref="T:System.Object"/> hosting the target field.</param>
  3669. <param name="offset">The input byte offset for the <typeparamref name="T"/> reference to retrieve.</param>
  3670. <returns>A <typeparamref name="T"/> reference at a specified offset within <paramref name="obj"/>.</returns>
  3671. <remarks>
  3672. None of the input arguments is validated, and it is responsibility of the caller to ensure they are valid.
  3673. In particular, using an invalid offset might cause the retrieved reference to be misaligned with the
  3674. desired data, which would break the type system. Or, if the offset causes the retrieved reference to point
  3675. to a memory location outside of the input <see cref="T:System.Object"/> instance, that might lead to runtime crashes.
  3676. </remarks>
  3677. </member>
  3678. <member name="M:CommunityToolkit.HighPerformance.Helpers.ObjectMarshal.TryUnbox``1(System.Object,``0@)">
  3679. <summary>
  3680. Tries to get a boxed <typeparamref name="T"/> value from an input <see cref="T:System.Object"/> instance.
  3681. </summary>
  3682. <typeparam name="T">The type of value to try to unbox.</typeparam>
  3683. <param name="obj">The input <see cref="T:System.Object"/> instance to check.</param>
  3684. <param name="value">The resulting <typeparamref name="T"/> value, if <paramref name="obj"/> was in fact a boxed <typeparamref name="T"/> value.</param>
  3685. <returns><see langword="true"/> if a <typeparamref name="T"/> value was retrieved correctly, <see langword="false"/> otherwise.</returns>
  3686. <remarks>
  3687. This extension behaves just like the following method:
  3688. <code>
  3689. public static bool TryUnbox&lt;T>(object obj, out T value)
  3690. {
  3691. if (obj is T)
  3692. {
  3693. value = (T)obj;
  3694. return true;
  3695. }
  3696. value = default;
  3697. return false;
  3698. }
  3699. </code>
  3700. But in a more efficient way, and with the ability to also assign the unboxed value
  3701. directly on an existing T variable, which is not possible with the code above.
  3702. </remarks>
  3703. </member>
  3704. <member name="M:CommunityToolkit.HighPerformance.Helpers.ObjectMarshal.DangerousUnbox``1(System.Object)">
  3705. <summary>
  3706. Unboxes a <typeparamref name="T"/> value from an input <see cref="T:System.Object"/> instance.
  3707. </summary>
  3708. <typeparam name="T">The type of value to unbox.</typeparam>
  3709. <param name="obj">The input <see cref="T:System.Object"/> instance, representing a boxed <typeparamref name="T"/> value.</param>
  3710. <returns>The <typeparamref name="T"/> value boxed in <paramref name="obj"/>.</returns>
  3711. <exception cref="T:System.InvalidCastException">Thrown when <paramref name="obj"/> is not of type <typeparamref name="T"/>.</exception>
  3712. </member>
  3713. <member name="T:CommunityToolkit.HighPerformance.Helpers.ParallelHelper">
  3714. <summary>
  3715. Helpers to work with parallel code in a highly optimized manner.
  3716. </summary>
  3717. <summary>
  3718. Helpers to work with parallel code in a highly optimized manner.
  3719. </summary>
  3720. <summary>
  3721. Helpers to work with parallel code in a highly optimized manner.
  3722. </summary>
  3723. <summary>
  3724. Helpers to work with parallel code in a highly optimized manner.
  3725. </summary>
  3726. <summary>
  3727. Helpers to work with parallel code in a highly optimized manner.
  3728. </summary>
  3729. <summary>
  3730. Helpers to work with parallel code in a highly optimized manner.
  3731. </summary>
  3732. <summary>
  3733. Helpers to work with parallel code in a highly optimized manner.
  3734. </summary>
  3735. </member>
  3736. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For``1(System.Range)">
  3737. <summary>
  3738. Executes a specified action in an optimized parallel loop.
  3739. </summary>
  3740. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction"/>) to invoke for each iteration index.</typeparam>
  3741. <param name="range">The iteration range.</param>
  3742. <remarks>None of the bounds of <paramref name="range"/> can start from an end.</remarks>
  3743. </member>
  3744. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For``1(System.Range,System.Int32)">
  3745. <summary>
  3746. Executes a specified action in an optimized parallel loop.
  3747. </summary>
  3748. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction"/>) to invoke for each iteration index.</typeparam>
  3749. <param name="range">The iteration range.</param>
  3750. <param name="minimumActionsPerThread">
  3751. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3752. should be parallelized, or to a greater number if each individual invocation is fast
  3753. enough that it is more efficient to set a lower bound per each running thread.
  3754. </param>
  3755. <remarks>None of the bounds of <paramref name="range"/> can start from an end.</remarks>
  3756. </member>
  3757. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For``1(System.Range,``0@)">
  3758. <summary>
  3759. Executes a specified action in an optimized parallel loop.
  3760. </summary>
  3761. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction"/>) to invoke for each iteration index.</typeparam>
  3762. <param name="range">The iteration range.</param>
  3763. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3764. <remarks>None of the bounds of <paramref name="range"/> can start from an end.</remarks>
  3765. </member>
  3766. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For``1(System.Range,``0@,System.Int32)">
  3767. <summary>
  3768. Executes a specified action in an optimized parallel loop.
  3769. </summary>
  3770. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction"/>) to invoke for each iteration index.</typeparam>
  3771. <param name="range">The iteration range.</param>
  3772. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3773. <param name="minimumActionsPerThread">
  3774. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3775. should be parallelized, or to a greater number if each individual invocation is fast
  3776. enough that it is more efficient to set a lower bound per each running thread.
  3777. </param>
  3778. <remarks>None of the bounds of <paramref name="range"/> can start from an end.</remarks>
  3779. </member>
  3780. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For``1(System.Int32,System.Int32)">
  3781. <summary>
  3782. Executes a specified action in an optimized parallel loop.
  3783. </summary>
  3784. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction"/>) to invoke for each iteration index.</typeparam>
  3785. <param name="start">The starting iteration index.</param>
  3786. <param name="end">The final iteration index (exclusive).</param>
  3787. </member>
  3788. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For``1(System.Int32,System.Int32,System.Int32)">
  3789. <summary>
  3790. Executes a specified action in an optimized parallel loop.
  3791. </summary>
  3792. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction"/>) to invoke for each iteration index.</typeparam>
  3793. <param name="start">The starting iteration index.</param>
  3794. <param name="end">The final iteration index (exclusive).</param>
  3795. <param name="minimumActionsPerThread">
  3796. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3797. should be parallelized, or to a greater number if each individual invocation is fast
  3798. enough that it is more efficient to set a lower bound per each running thread.
  3799. </param>
  3800. </member>
  3801. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For``1(System.Int32,System.Int32,``0@)">
  3802. <summary>
  3803. Executes a specified action in an optimized parallel loop.
  3804. </summary>
  3805. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction"/>) to invoke for each iteration index.</typeparam>
  3806. <param name="start">The starting iteration index.</param>
  3807. <param name="end">The final iteration index (exclusive).</param>
  3808. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3809. </member>
  3810. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For``1(System.Int32,System.Int32,``0@,System.Int32)">
  3811. <summary>
  3812. Executes a specified action in an optimized parallel loop.
  3813. </summary>
  3814. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction"/>) to invoke for each iteration index.</typeparam>
  3815. <param name="start">The starting iteration index.</param>
  3816. <param name="end">The final iteration index (exclusive).</param>
  3817. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3818. <param name="minimumActionsPerThread">
  3819. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3820. should be parallelized, or to a greater number if each individual invocation is fast
  3821. enough that it is more efficient to set a lower bound per each running thread.
  3822. </param>
  3823. </member>
  3824. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ActionInvoker`1.Invoke(System.Int32)">
  3825. <summary>
  3826. Processes the batch of actions at a specified index
  3827. </summary>
  3828. <param name="i">The index of the batch to process</param>
  3829. </member>
  3830. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Range,System.Range)">
  3831. <summary>
  3832. Executes a specified action in an optimized parallel loop.
  3833. </summary>
  3834. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3835. <param name="i">The <see cref="T:System.Range"/> value indicating the iteration range for the outer loop.</param>
  3836. <param name="j">The <see cref="T:System.Range"/> value indicating the iteration range for the inner loop.</param>
  3837. </member>
  3838. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Range,System.Range,System.Int32)">
  3839. <summary>
  3840. Executes a specified action in an optimized parallel loop.
  3841. </summary>
  3842. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3843. <param name="i">The <see cref="T:System.Range"/> value indicating the iteration range for the outer loop.</param>
  3844. <param name="j">The <see cref="T:System.Range"/> value indicating the iteration range for the inner loop.</param>
  3845. <param name="minimumActionsPerThread">
  3846. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3847. should be parallelized, or to a greater number if each individual invocation is fast
  3848. enough that it is more efficient to set a lower bound per each running thread.
  3849. </param>
  3850. </member>
  3851. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Range,System.Range,``0@)">
  3852. <summary>
  3853. Executes a specified action in an optimized parallel loop.
  3854. </summary>
  3855. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3856. <param name="i">The <see cref="T:System.Range"/> value indicating the iteration range for the outer loop.</param>
  3857. <param name="j">The <see cref="T:System.Range"/> value indicating the iteration range for the inner loop.</param>
  3858. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3859. </member>
  3860. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Range,System.Range,``0@,System.Int32)">
  3861. <summary>
  3862. Executes a specified action in an optimized parallel loop.
  3863. </summary>
  3864. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3865. <param name="i">The <see cref="T:System.Range"/> value indicating the iteration range for the outer loop.</param>
  3866. <param name="j">The <see cref="T:System.Range"/> value indicating the iteration range for the inner loop.</param>
  3867. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3868. <param name="minimumActionsPerThread">
  3869. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3870. should be parallelized, or to a greater number if each individual invocation is fast
  3871. enough that it is more efficient to set a lower bound per each running thread.
  3872. </param>
  3873. </member>
  3874. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Drawing.Rectangle)">
  3875. <summary>
  3876. Executes a specified action in an optimized parallel loop.
  3877. </summary>
  3878. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3879. <param name="area">The <see cref="T:System.Drawing.Rectangle"/> value indicating the 2D iteration area to use.</param>
  3880. </member>
  3881. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Drawing.Rectangle,System.Int32)">
  3882. <summary>
  3883. Executes a specified action in an optimized parallel loop.
  3884. </summary>
  3885. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3886. <param name="area">The <see cref="T:System.Drawing.Rectangle"/> value indicating the 2D iteration area to use.</param>
  3887. <param name="minimumActionsPerThread">
  3888. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3889. should be parallelized, or to a greater number if each individual invocation is fast
  3890. enough that it is more efficient to set a lower bound per each running thread.
  3891. </param>
  3892. </member>
  3893. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Drawing.Rectangle,``0@)">
  3894. <summary>
  3895. Executes a specified action in an optimized parallel loop.
  3896. </summary>
  3897. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3898. <param name="area">The <see cref="T:System.Drawing.Rectangle"/> value indicating the 2D iteration area to use.</param>
  3899. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3900. </member>
  3901. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Drawing.Rectangle,``0@,System.Int32)">
  3902. <summary>
  3903. Executes a specified action in an optimized parallel loop.
  3904. </summary>
  3905. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3906. <param name="area">The <see cref="T:System.Drawing.Rectangle"/> value indicating the 2D iteration area to use.</param>
  3907. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3908. <param name="minimumActionsPerThread">
  3909. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3910. should be parallelized, or to a greater number if each individual invocation is fast
  3911. enough that it is more efficient to set a lower bound per each running thread.
  3912. </param>
  3913. </member>
  3914. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Int32,System.Int32,System.Int32,System.Int32)">
  3915. <summary>
  3916. Executes a specified action in an optimized parallel loop.
  3917. </summary>
  3918. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3919. <param name="top">The starting iteration value for the outer loop.</param>
  3920. <param name="bottom">The final iteration value for the outer loop (exclusive).</param>
  3921. <param name="left">The starting iteration value for the inner loop.</param>
  3922. <param name="right">The final iteration value for the inner loop (exclusive).</param>
  3923. </member>
  3924. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
  3925. <summary>
  3926. Executes a specified action in an optimized parallel loop.
  3927. </summary>
  3928. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3929. <param name="top">The starting iteration value for the outer loop.</param>
  3930. <param name="bottom">The final iteration value for the outer loop (exclusive).</param>
  3931. <param name="left">The starting iteration value for the inner loop.</param>
  3932. <param name="right">The final iteration value for the inner loop (exclusive).</param>
  3933. <param name="minimumActionsPerThread">
  3934. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3935. should be parallelized, or to a greater number if each individual invocation is fast
  3936. enough that it is more efficient to set a lower bound per each running thread.
  3937. </param>
  3938. </member>
  3939. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Int32,System.Int32,System.Int32,System.Int32,``0@)">
  3940. <summary>
  3941. Executes a specified action in an optimized parallel loop.
  3942. </summary>
  3943. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3944. <param name="top">The starting iteration value for the outer loop.</param>
  3945. <param name="bottom">The final iteration value for the outer loop (exclusive).</param>
  3946. <param name="left">The starting iteration value for the inner loop.</param>
  3947. <param name="right">The final iteration value for the inner loop (exclusive).</param>
  3948. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3949. </member>
  3950. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.For2D``1(System.Int32,System.Int32,System.Int32,System.Int32,``0@,System.Int32)">
  3951. <summary>
  3952. Executes a specified action in an optimized parallel loop.
  3953. </summary>
  3954. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IAction2D"/>) to invoke for each pair of iteration indices.</typeparam>
  3955. <param name="top">The starting iteration value for the outer loop.</param>
  3956. <param name="bottom">The final iteration value for the outer loop (exclusive).</param>
  3957. <param name="left">The starting iteration value for the inner loop.</param>
  3958. <param name="right">The final iteration value for the inner loop (exclusive).</param>
  3959. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  3960. <param name="minimumActionsPerThread">
  3961. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3962. should be parallelized, or to a greater number if each individual invocation is fast
  3963. enough that it is more efficient to set a lower bound per each running thread.
  3964. </param>
  3965. </member>
  3966. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.Action2DInvoker`1.Invoke(System.Int32)">
  3967. <summary>
  3968. Processes the batch of actions at a specified index
  3969. </summary>
  3970. <param name="i">The index of the batch to process</param>
  3971. </member>
  3972. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(System.ReadOnlyMemory{``0})">
  3973. <summary>
  3974. Executes a specified action in an optimized parallel loop over the input data.
  3975. </summary>
  3976. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  3977. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  3978. <param name="memory">The input <see cref="T:System.ReadOnlyMemory`1"/> representing the data to process.</param>
  3979. </member>
  3980. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(System.ReadOnlyMemory{``0},System.Int32)">
  3981. <summary>
  3982. Executes a specified action in an optimized parallel loop over the input data.
  3983. </summary>
  3984. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  3985. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  3986. <param name="memory">The input <see cref="T:System.ReadOnlyMemory`1"/> representing the data to process.</param>
  3987. <param name="minimumActionsPerThread">
  3988. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  3989. should be parallelized, or to a greater number if each individual invocation is fast
  3990. enough that it is more efficient to set a lower bound per each running thread.
  3991. </param>
  3992. </member>
  3993. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(System.ReadOnlyMemory{``0},``1@)">
  3994. <summary>
  3995. Executes a specified action in an optimized parallel loop over the input data.
  3996. </summary>
  3997. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  3998. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  3999. <param name="memory">The input <see cref="T:System.ReadOnlyMemory`1"/> representing the data to process.</param>
  4000. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  4001. </member>
  4002. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(System.ReadOnlyMemory{``0},``1@,System.Int32)">
  4003. <summary>
  4004. Executes a specified action in an optimized parallel loop over the input data.
  4005. </summary>
  4006. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4007. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4008. <param name="memory">The input <see cref="T:System.ReadOnlyMemory`1"/> representing the data to process.</param>
  4009. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  4010. <param name="minimumActionsPerThread">
  4011. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  4012. should be parallelized, or to a greater number if each individual invocation is fast
  4013. enough that it is more efficient to set a lower bound per each running thread.
  4014. </param>
  4015. </member>
  4016. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.InActionInvoker`2.Invoke(System.Int32)">
  4017. <summary>
  4018. Processes the batch of actions at a specified index
  4019. </summary>
  4020. <param name="i">The index of the batch to process</param>
  4021. </member>
  4022. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(CommunityToolkit.HighPerformance.ReadOnlyMemory2D{``0})">
  4023. <summary>
  4024. Executes a specified action in an optimized parallel loop over the input data.
  4025. </summary>
  4026. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4027. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4028. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> representing the data to process.</param>
  4029. </member>
  4030. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(CommunityToolkit.HighPerformance.ReadOnlyMemory2D{``0},System.Int32)">
  4031. <summary>
  4032. Executes a specified action in an optimized parallel loop over the input data.
  4033. </summary>
  4034. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4035. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4036. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> representing the data to process.</param>
  4037. <param name="minimumActionsPerThread">
  4038. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  4039. should be parallelized, or to a greater number if each individual invocation is fast
  4040. enough that it is more efficient to set a lower bound per each running thread.
  4041. </param>
  4042. </member>
  4043. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(CommunityToolkit.HighPerformance.ReadOnlyMemory2D{``0},``1@)">
  4044. <summary>
  4045. Executes a specified action in an optimized parallel loop over the input data.
  4046. </summary>
  4047. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4048. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4049. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> representing the data to process.</param>
  4050. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  4051. </member>
  4052. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(CommunityToolkit.HighPerformance.ReadOnlyMemory2D{``0},``1@,System.Int32)">
  4053. <summary>
  4054. Executes a specified action in an optimized parallel loop over the input data.
  4055. </summary>
  4056. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4057. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4058. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> representing the data to process.</param>
  4059. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  4060. <param name="minimumActionsPerThread">
  4061. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  4062. should be parallelized, or to a greater number if each individual invocation is fast
  4063. enough that it is more efficient to set a lower bound per each running thread.
  4064. </param>
  4065. </member>
  4066. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.InActionInvokerWithReadOnlyMemory2D`2.Invoke(System.Int32)">
  4067. <summary>
  4068. Processes the batch of actions at a specified index
  4069. </summary>
  4070. <param name="i">The index of the batch to process</param>
  4071. </member>
  4072. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(System.Memory{``0})">
  4073. <summary>
  4074. Executes a specified action in an optimized parallel loop over the input data.
  4075. </summary>
  4076. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4077. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IRefAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4078. <param name="memory">The input <see cref="T:System.Memory`1"/> representing the data to process.</param>
  4079. </member>
  4080. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(System.Memory{``0},System.Int32)">
  4081. <summary>
  4082. Executes a specified action in an optimized parallel loop over the input data.
  4083. </summary>
  4084. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4085. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4086. <param name="memory">The input <see cref="T:System.Memory`1"/> representing the data to process.</param>
  4087. <param name="minimumActionsPerThread">
  4088. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  4089. should be parallelized, or to a greater number if each individual invocation is fast
  4090. enough that it is more efficient to set a lower bound per each running thread.
  4091. </param>
  4092. </member>
  4093. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(System.Memory{``0},``1@)">
  4094. <summary>
  4095. Executes a specified action in an optimized parallel loop over the input data.
  4096. </summary>
  4097. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4098. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4099. <param name="memory">The input <see cref="T:System.Memory`1"/> representing the data to process.</param>
  4100. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  4101. </member>
  4102. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(System.Memory{``0},``1@,System.Int32)">
  4103. <summary>
  4104. Executes a specified action in an optimized parallel loop over the input data.
  4105. </summary>
  4106. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4107. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4108. <param name="memory">The input <see cref="T:System.Memory`1"/> representing the data to process.</param>
  4109. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  4110. <param name="minimumActionsPerThread">
  4111. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  4112. should be parallelized, or to a greater number if each individual invocation is fast
  4113. enough that it is more efficient to set a lower bound per each running thread.
  4114. </param>
  4115. </member>
  4116. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.RefActionInvoker`2.Invoke(System.Int32)">
  4117. <summary>
  4118. Processes the batch of actions at a specified index
  4119. </summary>
  4120. <param name="i">The index of the batch to process</param>
  4121. </member>
  4122. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(CommunityToolkit.HighPerformance.Memory2D{``0})">
  4123. <summary>
  4124. Executes a specified action in an optimized parallel loop over the input data.
  4125. </summary>
  4126. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4127. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IRefAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4128. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> representing the data to process.</param>
  4129. </member>
  4130. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(CommunityToolkit.HighPerformance.Memory2D{``0},System.Int32)">
  4131. <summary>
  4132. Executes a specified action in an optimized parallel loop over the input data.
  4133. </summary>
  4134. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4135. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IRefAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4136. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> representing the data to process.</param>
  4137. <param name="minimumActionsPerThread">
  4138. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  4139. should be parallelized, or to a greater number if each individual invocation is fast
  4140. enough that it is more efficient to set a lower bound per each running thread.
  4141. </param>
  4142. </member>
  4143. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(CommunityToolkit.HighPerformance.Memory2D{``0},``1@)">
  4144. <summary>
  4145. Executes a specified action in an optimized parallel loop over the input data.
  4146. </summary>
  4147. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4148. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IRefAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4149. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> representing the data to process.</param>
  4150. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  4151. </member>
  4152. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ForEach``2(CommunityToolkit.HighPerformance.Memory2D{``0},``1@,System.Int32)">
  4153. <summary>
  4154. Executes a specified action in an optimized parallel loop over the input data.
  4155. </summary>
  4156. <typeparam name="TItem">The type of items to iterate over.</typeparam>
  4157. <typeparam name="TAction">The type of action (implementing <see cref="T:CommunityToolkit.HighPerformance.Helpers.IRefAction`1"/> of <typeparamref name="TItem"/>) to invoke over each item.</typeparam>
  4158. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> representing the data to process.</param>
  4159. <param name="action">The <typeparamref name="TAction"/> instance representing the action to invoke.</param>
  4160. <param name="minimumActionsPerThread">
  4161. The minimum number of actions to run per individual thread. Set to 1 if all invocations
  4162. should be parallelized, or to a greater number if each individual invocation is fast
  4163. enough that it is more efficient to set a lower bound per each running thread.
  4164. </param>
  4165. </member>
  4166. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.RefActionInvokerWithReadOnlyMemory2D`2.Invoke(System.Int32)">
  4167. <summary>
  4168. Processes the batch of actions at a specified index
  4169. </summary>
  4170. <param name="i">The index of the batch to process</param>
  4171. </member>
  4172. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ThrowArgumentOutOfRangeExceptionForInvalidMinimumActionsPerThread">
  4173. <summary>
  4174. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when an invalid parameter is specified for the minimum actions per thread.
  4175. </summary>
  4176. </member>
  4177. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ThrowArgumentOutOfRangeExceptionForStartGreaterThanEnd">
  4178. <summary>
  4179. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when an invalid start parameter is specified for 1D loops.
  4180. </summary>
  4181. </member>
  4182. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ThrowArgumentExceptionForRangeIndexFromEnd(System.String)">
  4183. <summary>
  4184. Throws an <see cref="T:System.ArgumentException"/> when a range has an index starting from an end.
  4185. </summary>
  4186. </member>
  4187. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ThrowArgumentOutOfRangeExceptionForTopGreaterThanBottom">
  4188. <summary>
  4189. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when an invalid top parameter is specified for 2D loops.
  4190. </summary>
  4191. </member>
  4192. <member name="M:CommunityToolkit.HighPerformance.Helpers.ParallelHelper.ThrowArgumentOutOfRangeExceptionForLeftGreaterThanRight">
  4193. <summary>
  4194. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when an invalid left parameter is specified for 2D loops.
  4195. </summary>
  4196. </member>
  4197. <member name="T:CommunityToolkit.HighPerformance.Helpers.IAction">
  4198. <summary>
  4199. A contract for actions being executed with an input index.
  4200. </summary>
  4201. <remarks>If the <see cref="M:CommunityToolkit.HighPerformance.Helpers.IAction.Invoke(System.Int32)"/> method is small enough, it is highly recommended to mark it with <see cref="F:System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining"/>.</remarks>
  4202. </member>
  4203. <member name="M:CommunityToolkit.HighPerformance.Helpers.IAction.Invoke(System.Int32)">
  4204. <summary>
  4205. Executes the action associated with a specific index.
  4206. </summary>
  4207. <param name="i">The current index for the action to execute.</param>
  4208. </member>
  4209. <member name="T:CommunityToolkit.HighPerformance.Helpers.IAction2D">
  4210. <summary>
  4211. A contract for actions being executed with two input indices.
  4212. </summary>
  4213. <remarks>If the <see cref="M:CommunityToolkit.HighPerformance.Helpers.IAction2D.Invoke(System.Int32,System.Int32)"/> method is small enough, it is highly recommended to mark it with <see cref="F:System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining"/>.</remarks>
  4214. </member>
  4215. <member name="M:CommunityToolkit.HighPerformance.Helpers.IAction2D.Invoke(System.Int32,System.Int32)">
  4216. <summary>
  4217. Executes the action associated with two specified indices.
  4218. </summary>
  4219. <param name="i">The first index for the action to execute.</param>
  4220. <param name="j">The second index for the action to execute.</param>
  4221. </member>
  4222. <member name="T:CommunityToolkit.HighPerformance.Helpers.IInAction`1">
  4223. <summary>
  4224. A contract for actions being executed on items of a specific type, with readonly access.
  4225. </summary>
  4226. <typeparam name="T">The type of items to process.</typeparam>
  4227. <remarks>If the <see cref="M:CommunityToolkit.HighPerformance.Helpers.IInAction`1.Invoke(`0@)"/> method is small enough, it is highly recommended to mark it with <see cref="F:System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining"/>.</remarks>
  4228. </member>
  4229. <member name="M:CommunityToolkit.HighPerformance.Helpers.IInAction`1.Invoke(`0@)">
  4230. <summary>
  4231. Executes the action on a specified <typeparamref name="T"/> item.
  4232. </summary>
  4233. <param name="item">The current item to process.</param>
  4234. </member>
  4235. <member name="T:CommunityToolkit.HighPerformance.Helpers.IRefAction`1">
  4236. <summary>
  4237. A contract for actions being executed on items of a specific type, with side effect.
  4238. </summary>
  4239. <typeparam name="T">The type of items to process.</typeparam>
  4240. <remarks>If the <see cref="M:CommunityToolkit.HighPerformance.Helpers.IRefAction`1.Invoke(`0@)"/> method is small enough, it is highly recommended to mark it with <see cref="F:System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining"/>.</remarks>
  4241. </member>
  4242. <member name="M:CommunityToolkit.HighPerformance.Helpers.IRefAction`1.Invoke(`0@)">
  4243. <summary>
  4244. Executes the action on a specified <typeparamref name="T"/> item.
  4245. </summary>
  4246. <param name="item">The current item to process.</param>
  4247. </member>
  4248. <member name="T:CommunityToolkit.HighPerformance.Memory.Internals.OverflowHelper">
  4249. <summary>
  4250. A helper to validate arithmetic operations for <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> and <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>.
  4251. </summary>
  4252. </member>
  4253. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.OverflowHelper.EnsureIsInNativeIntRange(System.Int32,System.Int32,System.Int32)">
  4254. <summary>
  4255. Ensures that the input parameters will not exceed the maximum native int value when indexing.
  4256. </summary>
  4257. <param name="height">The height of the 2D memory area to map.</param>
  4258. <param name="width">The width of the 2D memory area to map.</param>
  4259. <param name="pitch">The pitch of the 2D memory area to map (the distance between each row).</param>
  4260. <exception cref="T:System.OverflowException">Throw when the inputs don't fit in the expected range.</exception>
  4261. <remarks>The input parameters are assumed to always be positive.</remarks>
  4262. </member>
  4263. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.OverflowHelper.ComputeInt32Area(System.Int32,System.Int32,System.Int32)">
  4264. <summary>
  4265. Ensures that the input parameters will not exceed <see cref="F:System.Int32.MaxValue"/> when indexing.
  4266. </summary>
  4267. <param name="height">The height of the 2D memory area to map.</param>
  4268. <param name="width">The width of the 2D memory area to map.</param>
  4269. <param name="pitch">The pitch of the 2D memory area to map (the distance between each row).</param>
  4270. <returns>The area resulting from the given parameters.</returns>
  4271. <exception cref="T:System.OverflowException">Throw when the inputs don't fit in the expected range.</exception>
  4272. <remarks>The input parameters are assumed to always be positive.</remarks>
  4273. </member>
  4274. <member name="T:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper">
  4275. <summary>
  4276. A helper class to throw exceptions for memory types.
  4277. </summary>
  4278. </member>
  4279. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentExceptionForManagedType">
  4280. <summary>
  4281. Throws an <see cref="T:System.ArgumentException"/> when using the <see langword="void"/>* constructor with a managed type.
  4282. </summary>
  4283. </member>
  4284. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentExceptionForDestinationTooShort">
  4285. <summary>
  4286. Throws an <see cref="T:System.ArgumentException"/> when the target span is too short.
  4287. </summary>
  4288. </member>
  4289. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentExceptionForDestinationWithNotSameShape">
  4290. <summary>
  4291. Throws an <see cref="T:System.ArgumentException"/> when the target span does not have the same shape as the source.
  4292. </summary>
  4293. </member>
  4294. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArrayTypeMismatchException">
  4295. <summary>
  4296. Throws an <see cref="T:System.ArrayTypeMismatchException"/> when using an array of an invalid type.
  4297. </summary>
  4298. </member>
  4299. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentExceptionForUnsupportedType">
  4300. <summary>
  4301. Throws an <see cref="T:System.ArgumentException"/> when using an array of an invalid type.
  4302. </summary>
  4303. </member>
  4304. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowIndexOutOfRangeException">
  4305. <summary>
  4306. Throws an <see cref="T:System.IndexOutOfRangeException"/> when the a given coordinate is invalid.
  4307. </summary>
  4308. <remarks>
  4309. Throwing <see cref="T:System.IndexOutOfRangeException"/> is technically discouraged in the docs, but
  4310. we're doing that here for consistency with the official <see cref="T:System.Span`1"/> type(s) from the BCL.
  4311. </remarks>
  4312. </member>
  4313. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentException">
  4314. <summary>
  4315. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when more than one parameter are invalid.
  4316. </summary>
  4317. </member>
  4318. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentOutOfRangeExceptionForDepth">
  4319. <summary>
  4320. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "depth" parameter is invalid.
  4321. </summary>
  4322. </member>
  4323. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentOutOfRangeExceptionForRow">
  4324. <summary>
  4325. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "row" parameter is invalid.
  4326. </summary>
  4327. </member>
  4328. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentOutOfRangeExceptionForColumn">
  4329. <summary>
  4330. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "column" parameter is invalid.
  4331. </summary>
  4332. </member>
  4333. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentOutOfRangeExceptionForOffset">
  4334. <summary>
  4335. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "offset" parameter is invalid.
  4336. </summary>
  4337. </member>
  4338. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentOutOfRangeExceptionForHeight">
  4339. <summary>
  4340. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "height" parameter is invalid.
  4341. </summary>
  4342. </member>
  4343. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentOutOfRangeExceptionForWidth">
  4344. <summary>
  4345. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "width" parameter is invalid.
  4346. </summary>
  4347. </member>
  4348. <member name="M:CommunityToolkit.HighPerformance.Memory.Internals.ThrowHelper.ThrowArgumentOutOfRangeExceptionForPitch">
  4349. <summary>
  4350. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the "pitch" parameter is invalid.
  4351. </summary>
  4352. </member>
  4353. <member name="T:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1">
  4354. <summary>
  4355. A debug proxy used to display items in a 2D layout.
  4356. </summary>
  4357. <typeparam name="T">The type of items to display.</typeparam>
  4358. </member>
  4359. <member name="M:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1.#ctor(CommunityToolkit.HighPerformance.Memory2D{`0})">
  4360. <summary>
  4361. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1"/> class with the specified parameters.
  4362. </summary>
  4363. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance with the items to display.</param>
  4364. </member>
  4365. <member name="M:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1.#ctor(CommunityToolkit.HighPerformance.ReadOnlyMemory2D{`0})">
  4366. <summary>
  4367. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1"/> class with the specified parameters.
  4368. </summary>
  4369. <param name="memory">The input <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance with the items to display.</param>
  4370. </member>
  4371. <member name="M:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1.#ctor(CommunityToolkit.HighPerformance.Span2D{`0})">
  4372. <summary>
  4373. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1"/> class with the specified parameters.
  4374. </summary>
  4375. <param name="span">The input <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance with the items to display.</param>
  4376. </member>
  4377. <member name="M:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1.#ctor(CommunityToolkit.HighPerformance.ReadOnlySpan2D{`0})">
  4378. <summary>
  4379. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1"/> class with the specified parameters.
  4380. </summary>
  4381. <param name="span">The input <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance with the items to display.</param>
  4382. </member>
  4383. <member name="P:CommunityToolkit.HighPerformance.Memory.Views.MemoryDebugView2D`1.Items">
  4384. <summary>
  4385. Gets the items to display for the current instance
  4386. </summary>
  4387. </member>
  4388. <member name="T:CommunityToolkit.HighPerformance.Memory2D`1">
  4389. <summary>
  4390. <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> represents a 2D region of arbitrary memory. It is to <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>
  4391. what <see cref="T:System.Memory`1"/> is to <see cref="T:System.Span`1"/>. For further details on how the internal layout
  4392. is structured, see the docs for <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>. The <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> type can wrap arrays
  4393. of any rank, provided that a valid series of parameters for the target memory area(s) are specified.
  4394. </summary>
  4395. <typeparam name="T">The type of items in the current <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.</typeparam>
  4396. </member>
  4397. <member name="F:CommunityToolkit.HighPerformance.Memory2D`1.instance">
  4398. <summary>
  4399. The target <see cref="T:System.Object"/> instance, if present.
  4400. </summary>
  4401. </member>
  4402. <member name="F:CommunityToolkit.HighPerformance.Memory2D`1.offset">
  4403. <summary>
  4404. The initial offset within <see cref="F:CommunityToolkit.HighPerformance.Memory2D`1.instance"/>.
  4405. </summary>
  4406. </member>
  4407. <member name="F:CommunityToolkit.HighPerformance.Memory2D`1.height">
  4408. <summary>
  4409. The height of the specified 2D region.
  4410. </summary>
  4411. </member>
  4412. <member name="F:CommunityToolkit.HighPerformance.Memory2D`1.width">
  4413. <summary>
  4414. The width of the specified 2D region.
  4415. </summary>
  4416. </member>
  4417. <member name="F:CommunityToolkit.HighPerformance.Memory2D`1.pitch">
  4418. <summary>
  4419. The pitch of the specified 2D region.
  4420. </summary>
  4421. </member>
  4422. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(`0[],System.Int32,System.Int32)">
  4423. <summary>
  4424. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct.
  4425. </summary>
  4426. <param name="array">The target array to wrap.</param>
  4427. <param name="height">The height of the resulting 2D area.</param>
  4428. <param name="width">The width of each row in the resulting 2D area.</param>
  4429. <exception cref="T:System.ArrayTypeMismatchException">
  4430. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  4431. </exception>
  4432. <exception cref="T:System.ArgumentException">
  4433. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  4434. </exception>
  4435. <remarks>The total area must match the length of <paramref name="array"/>.</remarks>
  4436. </member>
  4437. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(`0[],System.Int32,System.Int32,System.Int32,System.Int32)">
  4438. <summary>
  4439. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct.
  4440. </summary>
  4441. <param name="array">The target array to wrap.</param>
  4442. <param name="offset">The initial offset within <paramref name="array"/>.</param>
  4443. <param name="height">The height of the resulting 2D area.</param>
  4444. <param name="width">The width of each row in the resulting 2D area.</param>
  4445. <param name="pitch">The pitch in the resulting 2D area.</param>
  4446. <exception cref="T:System.ArrayTypeMismatchException">
  4447. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  4448. </exception>
  4449. <exception cref="T:System.ArgumentOutOfRangeException">
  4450. Thrown when one of the input parameters is out of range.
  4451. </exception>
  4452. <exception cref="T:System.ArgumentException">
  4453. Thrown when the requested area is outside of bounds for <paramref name="array"/>.
  4454. </exception>
  4455. </member>
  4456. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(`0[0:,0:])">
  4457. <summary>
  4458. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct wrapping a 2D array.
  4459. </summary>
  4460. <param name="array">The given 2D array to wrap.</param>
  4461. <exception cref="T:System.ArrayTypeMismatchException">
  4462. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  4463. </exception>
  4464. </member>
  4465. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(`0[0:,0:],System.Int32,System.Int32,System.Int32,System.Int32)">
  4466. <summary>
  4467. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct wrapping a 2D array.
  4468. </summary>
  4469. <param name="array">The given 2D array to wrap.</param>
  4470. <param name="row">The target row to map within <paramref name="array"/>.</param>
  4471. <param name="column">The target column to map within <paramref name="array"/>.</param>
  4472. <param name="height">The height to map within <paramref name="array"/>.</param>
  4473. <param name="width">The width to map within <paramref name="array"/>.</param>
  4474. <exception cref="T:System.ArrayTypeMismatchException">
  4475. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  4476. </exception>
  4477. <exception cref="T:System.ArgumentOutOfRangeException">
  4478. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  4479. are negative or not within the bounds that are valid for <paramref name="array"/>.
  4480. </exception>
  4481. </member>
  4482. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(`0[0:,0:,0:],System.Int32)">
  4483. <summary>
  4484. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct wrapping a layer in a 3D array.
  4485. </summary>
  4486. <param name="array">The given 3D array to wrap.</param>
  4487. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  4488. <exception cref="T:System.ArrayTypeMismatchException">
  4489. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  4490. </exception>
  4491. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when a parameter is invalid.</exception>
  4492. </member>
  4493. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(`0[0:,0:,0:],System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
  4494. <summary>
  4495. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct wrapping a layer in a 3D array.
  4496. </summary>
  4497. <param name="array">The given 3D array to wrap.</param>
  4498. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  4499. <param name="row">The target row to map within <paramref name="array"/>.</param>
  4500. <param name="column">The target column to map within <paramref name="array"/>.</param>
  4501. <param name="height">The height to map within <paramref name="array"/>.</param>
  4502. <param name="width">The width to map within <paramref name="array"/>.</param>
  4503. <exception cref="T:System.ArrayTypeMismatchException">
  4504. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  4505. </exception>
  4506. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when a parameter is invalid.</exception>
  4507. </member>
  4508. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(System.Buffers.MemoryManager{`0},System.Int32,System.Int32)">
  4509. <summary>
  4510. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct.
  4511. </summary>
  4512. <param name="memoryManager">The target <see cref="T:System.Buffers.MemoryManager`1"/> to wrap.</param>
  4513. <param name="height">The height of the resulting 2D area.</param>
  4514. <param name="width">The width of each row in the resulting 2D area.</param>
  4515. <exception cref="T:System.ArgumentException">
  4516. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  4517. </exception>
  4518. <remarks>The total area must match the length of <paramref name="memoryManager"/>.</remarks>
  4519. </member>
  4520. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(System.Buffers.MemoryManager{`0},System.Int32,System.Int32,System.Int32,System.Int32)">
  4521. <summary>
  4522. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct.
  4523. </summary>
  4524. <param name="memoryManager">The target <see cref="T:System.Buffers.MemoryManager`1"/> to wrap.</param>
  4525. <param name="offset">The initial offset within <paramref name="memoryManager"/>.</param>
  4526. <param name="height">The height of the resulting 2D area.</param>
  4527. <param name="width">The width of each row in the resulting 2D area.</param>
  4528. <param name="pitch">The pitch in the resulting 2D area.</param>
  4529. <exception cref="T:System.ArgumentOutOfRangeException">
  4530. Thrown when one of the input parameters is out of range.
  4531. </exception>
  4532. <exception cref="T:System.ArgumentException">
  4533. Thrown when the requested area is outside of bounds for <paramref name="memoryManager"/>.
  4534. </exception>
  4535. </member>
  4536. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(System.Memory{`0},System.Int32,System.Int32)">
  4537. <summary>
  4538. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct.
  4539. </summary>
  4540. <param name="memory">The target <see cref="T:System.Memory`1"/> to wrap.</param>
  4541. <param name="height">The height of the resulting 2D area.</param>
  4542. <param name="width">The width of each row in the resulting 2D area.</param>
  4543. <exception cref="T:System.ArgumentException">
  4544. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  4545. </exception>
  4546. <remarks>The total area must match the length of <paramref name="memory"/>.</remarks>
  4547. </member>
  4548. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(System.Memory{`0},System.Int32,System.Int32,System.Int32,System.Int32)">
  4549. <summary>
  4550. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct.
  4551. </summary>
  4552. <param name="memory">The target <see cref="T:System.Memory`1"/> to wrap.</param>
  4553. <param name="offset">The initial offset within <paramref name="memory"/>.</param>
  4554. <param name="height">The height of the resulting 2D area.</param>
  4555. <param name="width">The width of each row in the resulting 2D area.</param>
  4556. <param name="pitch">The pitch in the resulting 2D area.</param>
  4557. <exception cref="T:System.ArgumentOutOfRangeException">
  4558. Thrown when one of the input parameters is out of range.
  4559. </exception>
  4560. <exception cref="T:System.ArgumentException">
  4561. Thrown when the requested area is outside of bounds for <paramref name="memory"/>.
  4562. </exception>
  4563. </member>
  4564. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.#ctor(System.Object,System.IntPtr,System.Int32,System.Int32,System.Int32)">
  4565. <summary>
  4566. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> struct with the specified parameters.
  4567. </summary>
  4568. <param name="instance">The target <see cref="T:System.Object"/> instance.</param>
  4569. <param name="offset">The initial offset within <see cref="F:CommunityToolkit.HighPerformance.Memory2D`1.instance"/>.</param>
  4570. <param name="height">The height of the 2D memory area to map.</param>
  4571. <param name="width">The width of the 2D memory area to map.</param>
  4572. <param name="pitch">The pitch of the 2D memory area to map.</param>
  4573. </member>
  4574. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.DangerousCreate(System.Object,`0@,System.Int32,System.Int32,System.Int32)">
  4575. <summary>
  4576. Creates a new <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance from an arbitrary object.
  4577. </summary>
  4578. <param name="instance">The <see cref="T:System.Object"/> instance holding the data to map.</param>
  4579. <param name="value">The target reference to point to (it must be within <paramref name="instance"/>).</param>
  4580. <param name="height">The height of the 2D memory area to map.</param>
  4581. <param name="width">The width of the 2D memory area to map.</param>
  4582. <param name="pitch">The pitch of the 2D memory area to map.</param>
  4583. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance with the specified parameters.</returns>
  4584. <remarks>The <paramref name="value"/> parameter is not validated, and it's responsibility of the caller to ensure it's valid.</remarks>
  4585. <exception cref="T:System.ArgumentOutOfRangeException">
  4586. Thrown when one of the input parameters is out of range.
  4587. </exception>
  4588. </member>
  4589. <member name="P:CommunityToolkit.HighPerformance.Memory2D`1.Empty">
  4590. <summary>
  4591. Gets an empty <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.
  4592. </summary>
  4593. </member>
  4594. <member name="P:CommunityToolkit.HighPerformance.Memory2D`1.IsEmpty">
  4595. <summary>
  4596. Gets a value indicating whether the current <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance is empty.
  4597. </summary>
  4598. </member>
  4599. <member name="P:CommunityToolkit.HighPerformance.Memory2D`1.Length">
  4600. <summary>
  4601. Gets the length of the current <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.
  4602. </summary>
  4603. </member>
  4604. <member name="P:CommunityToolkit.HighPerformance.Memory2D`1.Height">
  4605. <summary>
  4606. Gets the height of the underlying 2D memory area.
  4607. </summary>
  4608. </member>
  4609. <member name="P:CommunityToolkit.HighPerformance.Memory2D`1.Width">
  4610. <summary>
  4611. Gets the width of the underlying 2D memory area.
  4612. </summary>
  4613. </member>
  4614. <member name="P:CommunityToolkit.HighPerformance.Memory2D`1.Span">
  4615. <summary>
  4616. Gets a <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance from the current memory.
  4617. </summary>
  4618. </member>
  4619. <member name="P:CommunityToolkit.HighPerformance.Memory2D`1.Item(System.Range,System.Range)">
  4620. <summary>
  4621. Slices the current instance with the specified parameters.
  4622. </summary>
  4623. <param name="rows">The target range of rows to select.</param>
  4624. <param name="columns">The target range of columns to select.</param>
  4625. <exception cref="T:System.ArgumentException">
  4626. Thrown when either <paramref name="rows"/> or <paramref name="columns"/> are invalid.
  4627. </exception>
  4628. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance representing a slice of the current one.</returns>
  4629. </member>
  4630. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.Slice(System.Int32,System.Int32,System.Int32,System.Int32)">
  4631. <summary>
  4632. Slices the current instance with the specified parameters.
  4633. </summary>
  4634. <param name="row">The target row to map within the current instance.</param>
  4635. <param name="column">The target column to map within the current instance.</param>
  4636. <param name="height">The height to map within the current instance.</param>
  4637. <param name="width">The width to map within the current instance.</param>
  4638. <exception cref="T:System.ArgumentException">
  4639. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  4640. are negative or not within the bounds that are valid for the current instance.
  4641. </exception>
  4642. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance representing a slice of the current one.</returns>
  4643. </member>
  4644. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.CopyTo(System.Memory{`0})">
  4645. <summary>
  4646. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> into a destination <see cref="T:System.Memory`1"/> instance.
  4647. </summary>
  4648. <param name="destination">The destination <see cref="T:System.Memory`1"/> instance.</param>
  4649. <exception cref="T:System.ArgumentException">
  4650. Thrown when <paramref name="destination" /> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.
  4651. </exception>
  4652. </member>
  4653. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.TryCopyTo(System.Memory{`0})">
  4654. <summary>
  4655. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance to a destination <see cref="T:System.Memory`1"/>.
  4656. </summary>
  4657. <param name="destination">The target <see cref="T:System.Memory`1"/> of the copy operation.</param>
  4658. <returns>Whether or not the operation was successful.</returns>
  4659. </member>
  4660. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.CopyTo(CommunityToolkit.HighPerformance.Memory2D{`0})">
  4661. <summary>
  4662. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> into a destination <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.
  4663. For this API to succeed, the target <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> has to have the same shape as the current one.
  4664. </summary>
  4665. <param name="destination">The destination <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.</param>
  4666. <exception cref="T:System.ArgumentException">
  4667. Thrown when <paramref name="destination" /> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.
  4668. </exception>
  4669. </member>
  4670. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.TryCopyTo(CommunityToolkit.HighPerformance.Memory2D{`0})">
  4671. <summary>
  4672. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance to a destination <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/>.
  4673. For this API to succeed, the target <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> has to have the same shape as the current one.
  4674. </summary>
  4675. <param name="destination">The target <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> of the copy operation.</param>
  4676. <returns>Whether or not the operation was successful.</returns>
  4677. </member>
  4678. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.Pin">
  4679. <summary>
  4680. Creates a handle for the memory.
  4681. The GC will not move the memory until the returned <see cref="T:System.Buffers.MemoryHandle"/>
  4682. is disposed, enabling taking and using the memory's address.
  4683. </summary>
  4684. <exception cref="T:System.ArgumentException">
  4685. An instance with nonprimitive (non-blittable) members cannot be pinned.
  4686. </exception>
  4687. <returns>A <see cref="T:System.Buffers.MemoryHandle"/> instance wrapping the pinned handle.</returns>
  4688. </member>
  4689. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.TryGetMemory(System.Memory{`0}@)">
  4690. <summary>
  4691. Tries to get a <see cref="T:System.Memory`1"/> instance, if the underlying buffer is contiguous and small enough.
  4692. </summary>
  4693. <param name="memory">The resulting <see cref="T:System.Memory`1"/>, in case of success.</param>
  4694. <returns>Whether or not <paramref name="memory"/> was correctly assigned.</returns>
  4695. </member>
  4696. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.ToArray">
  4697. <summary>
  4698. Copies the contents of the current <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance into a new 2D array.
  4699. </summary>
  4700. <returns>A 2D array containing the data in the current <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.</returns>
  4701. </member>
  4702. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.Equals(System.Object)">
  4703. <inheritdoc/>
  4704. </member>
  4705. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.Equals(CommunityToolkit.HighPerformance.Memory2D{`0})">
  4706. <inheritdoc/>
  4707. </member>
  4708. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.GetHashCode">
  4709. <inheritdoc/>
  4710. </member>
  4711. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.ToString">
  4712. <inheritdoc/>
  4713. </member>
  4714. <member name="M:CommunityToolkit.HighPerformance.Memory2D`1.op_Implicit(`0[0:,0:])~CommunityToolkit.HighPerformance.Memory2D{`0}">
  4715. <summary>
  4716. Defines an implicit conversion of an array to a <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/>
  4717. </summary>
  4718. </member>
  4719. <member name="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1">
  4720. <summary>
  4721. A readonly version of <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/>.
  4722. </summary>
  4723. <typeparam name="T">The type of items in the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance.</typeparam>
  4724. </member>
  4725. <member name="F:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.instance">
  4726. <summary>
  4727. The target <see cref="T:System.Object"/> instance, if present.
  4728. </summary>
  4729. </member>
  4730. <member name="F:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.offset">
  4731. <summary>
  4732. The initial offset within <see cref="F:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.instance"/>.
  4733. </summary>
  4734. </member>
  4735. <member name="F:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.height">
  4736. <summary>
  4737. The height of the specified 2D region.
  4738. </summary>
  4739. </member>
  4740. <member name="F:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.width">
  4741. <summary>
  4742. The width of the specified 2D region.
  4743. </summary>
  4744. </member>
  4745. <member name="F:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.pitch">
  4746. <summary>
  4747. The pitch of the specified 2D region.
  4748. </summary>
  4749. </member>
  4750. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(System.String,System.Int32,System.Int32)">
  4751. <summary>
  4752. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct.
  4753. </summary>
  4754. <param name="text">The target <see cref="T:System.String"/> to wrap.</param>
  4755. <param name="height">The height of the resulting 2D area.</param>
  4756. <param name="width">The width of each row in the resulting 2D area.</param>
  4757. <exception cref="T:System.ArgumentException">
  4758. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  4759. </exception>
  4760. <remarks>The total area must match the length of <paramref name="text"/>.</remarks>
  4761. </member>
  4762. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(System.String,System.Int32,System.Int32,System.Int32,System.Int32)">
  4763. <summary>
  4764. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct.
  4765. </summary>
  4766. <param name="text">The target <see cref="T:System.String"/> to wrap.</param>
  4767. <param name="offset">The initial offset within <paramref name="text"/>.</param>
  4768. <param name="height">The height of the resulting 2D area.</param>
  4769. <param name="width">The width of each row in the resulting 2D area.</param>
  4770. <param name="pitch">The pitch in the resulting 2D area.</param>
  4771. <exception cref="T:System.ArgumentOutOfRangeException">
  4772. Thrown when one of the input parameters is out of range.
  4773. </exception>
  4774. <exception cref="T:System.ArgumentException">
  4775. Thrown when the requested area is outside of bounds for <paramref name="text"/>.
  4776. </exception>
  4777. </member>
  4778. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(`0[],System.Int32,System.Int32)">
  4779. <summary>
  4780. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct.
  4781. </summary>
  4782. <param name="array">The target array to wrap.</param>
  4783. <param name="height">The height of the resulting 2D area.</param>
  4784. <param name="width">The width of each row in the resulting 2D area.</param>
  4785. <exception cref="T:System.ArgumentException">
  4786. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  4787. </exception>
  4788. <remarks>The total area must match the length of <paramref name="array"/>.</remarks>
  4789. </member>
  4790. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(`0[],System.Int32,System.Int32,System.Int32,System.Int32)">
  4791. <summary>
  4792. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct.
  4793. </summary>
  4794. <param name="array">The target array to wrap.</param>
  4795. <param name="offset">The initial offset within <paramref name="array"/>.</param>
  4796. <param name="height">The height of the resulting 2D area.</param>
  4797. <param name="width">The width of each row in the resulting 2D area.</param>
  4798. <param name="pitch">The pitch in the resulting 2D area.</param>
  4799. <exception cref="T:System.ArgumentOutOfRangeException">
  4800. Thrown when one of the input parameters is out of range.
  4801. </exception>
  4802. <exception cref="T:System.ArgumentException">
  4803. Thrown when the requested area is outside of bounds for <paramref name="array"/>.
  4804. </exception>
  4805. </member>
  4806. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(`0[0:,0:])">
  4807. <summary>
  4808. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct wrapping a 2D array.
  4809. </summary>
  4810. <param name="array">The given 2D array to wrap.</param>
  4811. </member>
  4812. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(`0[0:,0:],System.Int32,System.Int32,System.Int32,System.Int32)">
  4813. <summary>
  4814. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct wrapping a 2D array.
  4815. </summary>
  4816. <param name="array">The given 2D array to wrap.</param>
  4817. <param name="row">The target row to map within <paramref name="array"/>.</param>
  4818. <param name="column">The target column to map within <paramref name="array"/>.</param>
  4819. <param name="height">The height to map within <paramref name="array"/>.</param>
  4820. <param name="width">The width to map within <paramref name="array"/>.</param>
  4821. <exception cref="T:System.ArgumentOutOfRangeException">
  4822. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  4823. are negative or not within the bounds that are valid for <paramref name="array"/>.
  4824. </exception>
  4825. </member>
  4826. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(`0[0:,0:,0:],System.Int32)">
  4827. <summary>
  4828. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct wrapping a layer in a 3D array.
  4829. </summary>
  4830. <param name="array">The given 3D array to wrap.</param>
  4831. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  4832. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when a parameter is invalid.</exception>
  4833. </member>
  4834. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(`0[0:,0:,0:],System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
  4835. <summary>
  4836. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct wrapping a layer in a 3D array.
  4837. </summary>
  4838. <param name="array">The given 3D array to wrap.</param>
  4839. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  4840. <param name="row">The target row to map within <paramref name="array"/>.</param>
  4841. <param name="column">The target column to map within <paramref name="array"/>.</param>
  4842. <param name="height">The height to map within <paramref name="array"/>.</param>
  4843. <param name="width">The width to map within <paramref name="array"/>.</param>
  4844. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when a parameter is invalid.</exception>
  4845. </member>
  4846. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(System.Buffers.MemoryManager{`0},System.Int32,System.Int32)">
  4847. <summary>
  4848. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct.
  4849. </summary>
  4850. <param name="memoryManager">The target <see cref="T:System.Buffers.MemoryManager`1"/> to wrap.</param>
  4851. <param name="height">The height of the resulting 2D area.</param>
  4852. <param name="width">The width of each row in the resulting 2D area.</param>
  4853. <exception cref="T:System.ArgumentException">
  4854. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  4855. </exception>
  4856. <remarks>The total area must match the length of <paramref name="memoryManager"/>.</remarks>
  4857. </member>
  4858. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(System.Buffers.MemoryManager{`0},System.Int32,System.Int32,System.Int32,System.Int32)">
  4859. <summary>
  4860. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct.
  4861. </summary>
  4862. <param name="memoryManager">The target <see cref="T:System.Buffers.MemoryManager`1"/> to wrap.</param>
  4863. <param name="offset">The initial offset within <paramref name="memoryManager"/>.</param>
  4864. <param name="height">The height of the resulting 2D area.</param>
  4865. <param name="width">The width of each row in the resulting 2D area.</param>
  4866. <param name="pitch">The pitch in the resulting 2D area.</param>
  4867. <exception cref="T:System.ArgumentOutOfRangeException">
  4868. Thrown when one of the input parameters is out of range.
  4869. </exception>
  4870. <exception cref="T:System.ArgumentException">
  4871. Thrown when the requested area is outside of bounds for <paramref name="memoryManager"/>.
  4872. </exception>
  4873. </member>
  4874. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(System.ReadOnlyMemory{`0},System.Int32,System.Int32)">
  4875. <summary>
  4876. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct.
  4877. </summary>
  4878. <param name="memory">The target <see cref="T:System.Memory`1"/> to wrap.</param>
  4879. <param name="height">The height of the resulting 2D area.</param>
  4880. <param name="width">The width of each row in the resulting 2D area.</param>
  4881. <exception cref="T:System.ArgumentException">
  4882. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  4883. </exception>
  4884. <remarks>The total area must match the length of <paramref name="memory"/>.</remarks>
  4885. </member>
  4886. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(System.ReadOnlyMemory{`0},System.Int32,System.Int32,System.Int32,System.Int32)">
  4887. <summary>
  4888. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct.
  4889. </summary>
  4890. <param name="memory">The target <see cref="T:System.ReadOnlyMemory`1"/> to wrap.</param>
  4891. <param name="offset">The initial offset within <paramref name="memory"/>.</param>
  4892. <param name="height">The height of the resulting 2D area.</param>
  4893. <param name="width">The width of each row in the resulting 2D area.</param>
  4894. <param name="pitch">The pitch in the resulting 2D area.</param>
  4895. <exception cref="T:System.ArgumentOutOfRangeException">
  4896. Thrown when one of the input parameters is out of range.
  4897. </exception>
  4898. <exception cref="T:System.ArgumentException">
  4899. Thrown when the requested area is outside of bounds for <paramref name="memory"/>.
  4900. </exception>
  4901. </member>
  4902. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.#ctor(System.Object,System.IntPtr,System.Int32,System.Int32,System.Int32)">
  4903. <summary>
  4904. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> struct with the specified parameters.
  4905. </summary>
  4906. <param name="instance">The target <see cref="T:System.Object"/> instance.</param>
  4907. <param name="offset">The initial offset within <see cref="F:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.instance"/>.</param>
  4908. <param name="height">The height of the 2D memory area to map.</param>
  4909. <param name="width">The width of the 2D memory area to map.</param>
  4910. <param name="pitch">The pitch of the 2D memory area to map.</param>
  4911. </member>
  4912. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.DangerousCreate(System.Object,`0@,System.Int32,System.Int32,System.Int32)">
  4913. <summary>
  4914. Creates a new <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance from an arbitrary object.
  4915. </summary>
  4916. <param name="instance">The <see cref="T:System.Object"/> instance holding the data to map.</param>
  4917. <param name="value">The target reference to point to (it must be within <paramref name="instance"/>).</param>
  4918. <param name="height">The height of the 2D memory area to map.</param>
  4919. <param name="width">The width of the 2D memory area to map.</param>
  4920. <param name="pitch">The pitch of the 2D memory area to map.</param>
  4921. <returns>A <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance with the specified parameters.</returns>
  4922. <remarks>The <paramref name="value"/> parameter is not validated, and it's responsibility of the caller to ensure it's valid.</remarks>
  4923. <exception cref="T:System.ArgumentOutOfRangeException">
  4924. Thrown when one of the input parameters is out of range.
  4925. </exception>
  4926. </member>
  4927. <member name="P:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Empty">
  4928. <summary>
  4929. Gets an empty <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance.
  4930. </summary>
  4931. </member>
  4932. <member name="P:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.IsEmpty">
  4933. <summary>
  4934. Gets a value indicating whether the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance is empty.
  4935. </summary>
  4936. </member>
  4937. <member name="P:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Length">
  4938. <summary>
  4939. Gets the length of the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance.
  4940. </summary>
  4941. </member>
  4942. <member name="P:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Height">
  4943. <summary>
  4944. Gets the height of the underlying 2D memory area.
  4945. </summary>
  4946. </member>
  4947. <member name="P:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Width">
  4948. <summary>
  4949. Gets the width of the underlying 2D memory area.
  4950. </summary>
  4951. </member>
  4952. <member name="P:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Span">
  4953. <summary>
  4954. Gets a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance from the current memory.
  4955. </summary>
  4956. </member>
  4957. <member name="P:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Item(System.Range,System.Range)">
  4958. <summary>
  4959. Slices the current instance with the specified parameters.
  4960. </summary>
  4961. <param name="rows">The target range of rows to select.</param>
  4962. <param name="columns">The target range of columns to select.</param>
  4963. <exception cref="T:System.ArgumentException">
  4964. Thrown when either <paramref name="rows"/> or <paramref name="columns"/> are invalid.
  4965. </exception>
  4966. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance representing a slice of the current one.</returns>
  4967. </member>
  4968. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Slice(System.Int32,System.Int32,System.Int32,System.Int32)">
  4969. <summary>
  4970. Slices the current instance with the specified parameters.
  4971. </summary>
  4972. <param name="row">The target row to map within the current instance.</param>
  4973. <param name="column">The target column to map within the current instance.</param>
  4974. <param name="height">The height to map within the current instance.</param>
  4975. <param name="width">The width to map within the current instance.</param>
  4976. <exception cref="T:System.ArgumentException">
  4977. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  4978. are negative or not within the bounds that are valid for the current instance.
  4979. </exception>
  4980. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance representing a slice of the current one.</returns>
  4981. </member>
  4982. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.CopyTo(System.Memory{`0})">
  4983. <summary>
  4984. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> into a destination <see cref="T:System.Memory`1"/> instance.
  4985. </summary>
  4986. <param name="destination">The destination <see cref="T:System.Memory`1"/> instance.</param>
  4987. <exception cref="T:System.ArgumentException">
  4988. Thrown when <paramref name="destination" /> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance.
  4989. </exception>
  4990. </member>
  4991. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.TryCopyTo(System.Memory{`0})">
  4992. <summary>
  4993. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance to a destination <see cref="T:System.Memory`1"/>.
  4994. </summary>
  4995. <param name="destination">The target <see cref="T:System.Memory`1"/> of the copy operation.</param>
  4996. <returns>Whether or not the operation was successful.</returns>
  4997. </member>
  4998. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.CopyTo(CommunityToolkit.HighPerformance.Memory2D{`0})">
  4999. <summary>
  5000. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> into a destination <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.
  5001. For this API to succeed, the target <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> has to have the same shape as the current one.
  5002. </summary>
  5003. <param name="destination">The destination <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> instance.</param>
  5004. <exception cref="T:System.ArgumentException">
  5005. Thrown when <paramref name="destination" /> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance.
  5006. </exception>
  5007. </member>
  5008. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.TryCopyTo(CommunityToolkit.HighPerformance.Memory2D{`0})">
  5009. <summary>
  5010. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance to a destination <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/>.
  5011. For this API to succeed, the target <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> has to have the same shape as the current one.
  5012. </summary>
  5013. <param name="destination">The target <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> of the copy operation.</param>
  5014. <returns>Whether or not the operation was successful.</returns>
  5015. </member>
  5016. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Pin">
  5017. <summary>
  5018. Creates a handle for the memory.
  5019. The GC will not move the memory until the returned <see cref="T:System.Buffers.MemoryHandle"/>
  5020. is disposed, enabling taking and using the memory's address.
  5021. </summary>
  5022. <exception cref="T:System.ArgumentException">
  5023. An instance with nonprimitive (non-blittable) members cannot be pinned.
  5024. </exception>
  5025. <returns>A <see cref="T:System.Buffers.MemoryHandle"/> instance wrapping the pinned handle.</returns>
  5026. </member>
  5027. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.TryGetMemory(System.ReadOnlyMemory{`0}@)">
  5028. <summary>
  5029. Tries to get a <see cref="T:System.ReadOnlyMemory`1"/> instance, if the underlying buffer is contiguous and small enough.
  5030. </summary>
  5031. <param name="memory">The resulting <see cref="T:System.ReadOnlyMemory`1"/>, in case of success.</param>
  5032. <returns>Whether or not <paramref name="memory"/> was correctly assigned.</returns>
  5033. </member>
  5034. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.ToArray">
  5035. <summary>
  5036. Copies the contents of the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance into a new 2D array.
  5037. </summary>
  5038. <returns>A 2D array containing the data in the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/> instance.</returns>
  5039. </member>
  5040. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Equals(System.Object)">
  5041. <inheritdoc/>
  5042. </member>
  5043. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.Equals(CommunityToolkit.HighPerformance.ReadOnlyMemory2D{`0})">
  5044. <inheritdoc/>
  5045. </member>
  5046. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.GetHashCode">
  5047. <inheritdoc/>
  5048. </member>
  5049. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.ToString">
  5050. <inheritdoc/>
  5051. </member>
  5052. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.op_Implicit(`0[0:,0:])~CommunityToolkit.HighPerformance.ReadOnlyMemory2D{`0}">
  5053. <summary>
  5054. Defines an implicit conversion of an array to a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/>
  5055. </summary>
  5056. </member>
  5057. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1.op_Implicit(CommunityToolkit.HighPerformance.Memory2D{`0})~CommunityToolkit.HighPerformance.ReadOnlyMemory2D{`0}">
  5058. <summary>
  5059. Defines an implicit conversion of a <see cref="T:CommunityToolkit.HighPerformance.Memory2D`1"/> to a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyMemory2D`1"/>
  5060. </summary>
  5061. </member>
  5062. <member name="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1">
  5063. <summary>
  5064. A readonly version of <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>.
  5065. </summary>
  5066. <typeparam name="T">The type of items in the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.</typeparam>
  5067. <inheritdoc cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/>
  5068. </member>
  5069. <member name="F:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.span">
  5070. <summary>
  5071. The <see cref="T:System.ReadOnlySpan`1"/> instance pointing to the first item in the target memory area.
  5072. </summary>
  5073. </member>
  5074. <member name="F:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.width">
  5075. <summary>
  5076. The width of the specified 2D region.
  5077. </summary>
  5078. </member>
  5079. <member name="F:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.stride">
  5080. <summary>
  5081. The stride of the specified 2D region.
  5082. </summary>
  5083. </member>
  5084. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(`0@,System.Int32,System.Int32,System.Int32)">
  5085. <summary>
  5086. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct with the specified parameters.
  5087. </summary>
  5088. <param name="value">The reference to the first <typeparamref name="T"/> item to map.</param>
  5089. <param name="height">The height of the 2D memory area to map.</param>
  5090. <param name="width">The width of the 2D memory area to map.</param>
  5091. <param name="pitch">The pitch of the 2D memory area to map (the distance between each row).</param>
  5092. </member>
  5093. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(System.Void*,System.Int32,System.Int32,System.Int32)">
  5094. <summary>
  5095. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct with the specified parameters.
  5096. </summary>
  5097. <param name="pointer">The pointer to the first <typeparamref name="T"/> item to map.</param>
  5098. <param name="height">The height of the 2D memory area to map.</param>
  5099. <param name="width">The width of the 2D memory area to map.</param>
  5100. <param name="pitch">The pitch of the 2D memory area to map (the distance between each row).</param>
  5101. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when one of the parameters are negative.</exception>
  5102. </member>
  5103. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(`0[],System.Int32,System.Int32)">
  5104. <summary>
  5105. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct.
  5106. </summary>
  5107. <param name="array">The target array to wrap.</param>
  5108. <param name="height">The height of the resulting 2D area.</param>
  5109. <param name="width">The width of each row in the resulting 2D area.</param>
  5110. <exception cref="T:System.ArgumentException">
  5111. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  5112. </exception>
  5113. <remarks>The total area must match the length of <paramref name="array"/>.</remarks>
  5114. </member>
  5115. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(`0[],System.Int32,System.Int32,System.Int32,System.Int32)">
  5116. <summary>
  5117. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct.
  5118. </summary>
  5119. <param name="array">The target array to wrap.</param>
  5120. <param name="offset">The initial offset within <paramref name="array"/>.</param>
  5121. <param name="height">The height of the resulting 2D area.</param>
  5122. <param name="width">The width of each row in the resulting 2D area.</param>
  5123. <param name="pitch">The pitch in the resulting 2D area.</param>
  5124. <exception cref="T:System.ArgumentOutOfRangeException">
  5125. Thrown when one of the input parameters is out of range.
  5126. </exception>
  5127. <exception cref="T:System.ArgumentException">
  5128. Thrown when the requested area is outside of bounds for <paramref name="array"/>.
  5129. </exception>
  5130. </member>
  5131. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(`0[0:,0:])">
  5132. <summary>
  5133. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct wrapping a 2D array.
  5134. </summary>
  5135. <param name="array">The given 2D array to wrap.</param>
  5136. </member>
  5137. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(`0[0:,0:],System.Int32,System.Int32,System.Int32,System.Int32)">
  5138. <summary>
  5139. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct wrapping a 2D array.
  5140. </summary>
  5141. <param name="array">The given 2D array to wrap.</param>
  5142. <param name="row">The target row to map within <paramref name="array"/>.</param>
  5143. <param name="column">The target column to map within <paramref name="array"/>.</param>
  5144. <param name="height">The height to map within <paramref name="array"/>.</param>
  5145. <param name="width">The width to map within <paramref name="array"/>.</param>
  5146. <exception cref="T:System.ArgumentOutOfRangeException">
  5147. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  5148. are negative or not within the bounds that are valid for <paramref name="array"/>.
  5149. </exception>
  5150. </member>
  5151. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(`0[0:,0:,0:],System.Int32)">
  5152. <summary>
  5153. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct wrapping a layer in a 3D array.
  5154. </summary>
  5155. <param name="array">The given 3D array to wrap.</param>
  5156. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  5157. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when a parameter is invalid.</exception>
  5158. </member>
  5159. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(`0[0:,0:,0:],System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
  5160. <summary>
  5161. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct wrapping a layer in a 3D array.
  5162. </summary>
  5163. <param name="array">The given 3D array to wrap.</param>
  5164. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  5165. <param name="row">The target row to map within <paramref name="array"/>.</param>
  5166. <param name="column">The target column to map within <paramref name="array"/>.</param>
  5167. <param name="height">The height to map within <paramref name="array"/>.</param>
  5168. <param name="width">The width to map within <paramref name="array"/>.</param>
  5169. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when a parameter is invalid.</exception>
  5170. </member>
  5171. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(System.ReadOnlySpan{`0},System.Int32,System.Int32)">
  5172. <summary>
  5173. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct.
  5174. </summary>
  5175. <param name="span">The target <see cref="T:System.ReadOnlySpan`1"/> to wrap.</param>
  5176. <param name="height">The height of the resulting 2D area.</param>
  5177. <param name="width">The width of each row in the resulting 2D area.</param>
  5178. <exception cref="T:System.ArgumentException">
  5179. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  5180. </exception>
  5181. <remarks>The total area must match the length of <paramref name="span"/>.</remarks>
  5182. </member>
  5183. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.#ctor(System.ReadOnlySpan{`0},System.Int32,System.Int32,System.Int32,System.Int32)">
  5184. <summary>
  5185. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct.
  5186. </summary>
  5187. <param name="span">The target <see cref="T:System.ReadOnlySpan`1"/> to wrap.</param>
  5188. <param name="offset">The initial offset within <paramref name="span"/>.</param>
  5189. <param name="height">The height of the resulting 2D area.</param>
  5190. <param name="width">The width of each row in the resulting 2D area.</param>
  5191. <param name="pitch">The pitch in the resulting 2D area.</param>
  5192. <exception cref="T:System.ArgumentOutOfRangeException">
  5193. Thrown when one of the input parameters is out of range.
  5194. </exception>
  5195. <exception cref="T:System.ArgumentException">
  5196. Thrown when the requested area is outside of bounds for <paramref name="span"/>.
  5197. </exception>
  5198. </member>
  5199. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.DangerousCreate(`0@,System.Int32,System.Int32,System.Int32)">
  5200. <summary>
  5201. Creates a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> struct with the specified parameters.
  5202. </summary>
  5203. <param name="value">The reference to the first <typeparamref name="T"/> item to map.</param>
  5204. <param name="height">The height of the 2D memory area to map.</param>
  5205. <param name="width">The width of the 2D memory area to map.</param>
  5206. <param name="pitch">The pitch of the 2D memory area to map (the distance between each row).</param>
  5207. <returns>A <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance with the specified parameters.</returns>
  5208. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when one of the parameters are negative.</exception>
  5209. </member>
  5210. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Empty">
  5211. <summary>
  5212. Gets an empty <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.
  5213. </summary>
  5214. </member>
  5215. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.IsEmpty">
  5216. <summary>
  5217. Gets a value indicating whether the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance is empty.
  5218. </summary>
  5219. </member>
  5220. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Length">
  5221. <summary>
  5222. Gets the length of the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.
  5223. </summary>
  5224. </member>
  5225. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Height">
  5226. <summary>
  5227. Gets the height of the underlying 2D memory area.
  5228. </summary>
  5229. </member>
  5230. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Width">
  5231. <summary>
  5232. Gets the width of the underlying 2D memory area.
  5233. </summary>
  5234. </member>
  5235. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Item(System.Int32,System.Int32)">
  5236. <summary>
  5237. Gets the element at the specified zero-based indices.
  5238. </summary>
  5239. <param name="row">The target row to get the element from.</param>
  5240. <param name="column">The target column to get the element from.</param>
  5241. <returns>A reference to the element at the specified indices.</returns>
  5242. <exception cref="T:System.IndexOutOfRangeException">
  5243. Thrown when either <paramref name="row"/> or <paramref name="column"/> are invalid.
  5244. </exception>
  5245. </member>
  5246. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Item(System.Index,System.Index)">
  5247. <summary>
  5248. Gets the element at the specified zero-based indices.
  5249. </summary>
  5250. <param name="row">The target row to get the element from.</param>
  5251. <param name="column">The target column to get the element from.</param>
  5252. <returns>A reference to the element at the specified indices.</returns>
  5253. <exception cref="T:System.IndexOutOfRangeException">
  5254. Thrown when either <paramref name="row"/> or <paramref name="column"/> are invalid.
  5255. </exception>
  5256. </member>
  5257. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Item(System.Range,System.Range)">
  5258. <summary>
  5259. Slices the current instance with the specified parameters.
  5260. </summary>
  5261. <param name="rows">The target range of rows to select.</param>
  5262. <param name="columns">The target range of columns to select.</param>
  5263. <exception cref="T:System.ArgumentException">
  5264. Thrown when either <paramref name="rows"/> or <paramref name="columns"/> are invalid.
  5265. </exception>
  5266. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance representing a slice of the current one.</returns>
  5267. </member>
  5268. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.CopyTo(System.Span{`0})">
  5269. <summary>
  5270. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> into a destination <see cref="T:System.Span`1"/> instance.
  5271. </summary>
  5272. <param name="destination">The destination <see cref="T:System.Span`1"/> instance.</param>
  5273. <exception cref="T:System.ArgumentException">
  5274. Thrown when <paramref name="destination" /> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.
  5275. </exception>
  5276. </member>
  5277. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.CopyTo(CommunityToolkit.HighPerformance.Span2D{`0})">
  5278. <summary>
  5279. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> into a destination <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5280. For this API to succeed, the target <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> has to have the same shape as the current one.
  5281. </summary>
  5282. <param name="destination">The destination <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</param>
  5283. <exception cref="T:System.ArgumentException">
  5284. Thrown when <paramref name="destination" /> does not have the same shape as the source <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.
  5285. </exception>
  5286. </member>
  5287. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.TryCopyTo(System.Span{`0})">
  5288. <summary>
  5289. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance to a destination <see cref="T:System.Span`1"/>.
  5290. </summary>
  5291. <param name="destination">The target <see cref="T:System.Span`1"/> of the copy operation.</param>
  5292. <returns>Whether or not the operation was successful.</returns>
  5293. </member>
  5294. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.TryCopyTo(CommunityToolkit.HighPerformance.Span2D{`0})">
  5295. <summary>
  5296. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance to a destination <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>.
  5297. </summary>
  5298. <param name="destination">The target <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> of the copy operation.</param>
  5299. <returns>Whether or not the operation was successful.</returns>
  5300. </member>
  5301. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.GetPinnableReference">
  5302. <summary>
  5303. Returns a reference to the 0th element of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance. If the current
  5304. instance is empty, returns a <see langword="null"/> reference. It can be used for pinning
  5305. and is required to support the use of span within a fixed statement.
  5306. </summary>
  5307. <returns>A reference to the 0th element, or a <see langword="null"/> reference.</returns>
  5308. </member>
  5309. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.DangerousGetReference">
  5310. <summary>
  5311. Returns a reference to the first element within the current instance, with no bounds check.
  5312. </summary>
  5313. <returns>A reference to the first element within the current instance.</returns>
  5314. </member>
  5315. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.DangerousGetReferenceAt(System.Int32,System.Int32)">
  5316. <summary>
  5317. Returns a reference to a specified element within the current instance, with no bounds check.
  5318. </summary>
  5319. <param name="i">The target row to get the element from.</param>
  5320. <param name="j">The target column to get the element from.</param>
  5321. <returns>A reference to the element at the specified indices.</returns>
  5322. </member>
  5323. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Slice(System.Int32,System.Int32,System.Int32,System.Int32)">
  5324. <summary>
  5325. Slices the current instance with the specified parameters.
  5326. </summary>
  5327. <param name="row">The target row to map within the current instance.</param>
  5328. <param name="column">The target column to map within the current instance.</param>
  5329. <param name="height">The height to map within the current instance.</param>
  5330. <param name="width">The width to map within the current instance.</param>
  5331. <exception cref="T:System.ArgumentException">
  5332. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  5333. are negative or not within the bounds that are valid for the current instance.
  5334. </exception>
  5335. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance representing a slice of the current one.</returns>
  5336. </member>
  5337. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.GetRowSpan(System.Int32)">
  5338. <summary>
  5339. Gets a <see cref="T:System.ReadOnlySpan`1"/> for a specified row.
  5340. </summary>
  5341. <param name="row">The index of the target row to retrieve.</param>
  5342. <exception cref="T:System.ArgumentOutOfRangeException">Throw when <paramref name="row"/> is out of range.</exception>
  5343. <returns>The resulting row <see cref="T:System.ReadOnlySpan`1"/>.</returns>
  5344. </member>
  5345. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.TryGetSpan(System.ReadOnlySpan{`0}@)">
  5346. <summary>
  5347. Tries to get a <see cref="T:System.ReadOnlySpan`1"/> instance, if the underlying buffer is contiguous and small enough.
  5348. </summary>
  5349. <param name="span">The resulting <see cref="T:System.ReadOnlySpan`1"/>, in case of success.</param>
  5350. <returns>Whether or not <paramref name="span"/> was correctly assigned.</returns>
  5351. </member>
  5352. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.ToArray">
  5353. <summary>
  5354. Copies the contents of the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance into a new 2D array.
  5355. </summary>
  5356. <returns>A 2D array containing the data in the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</returns>
  5357. </member>
  5358. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Equals(System.Object)">
  5359. <inheritdoc cref="M:System.ReadOnlySpan`1.Equals(System.Object)"/>
  5360. </member>
  5361. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.GetHashCode">
  5362. <inheritdoc cref="M:System.ReadOnlySpan`1.GetHashCode"/>
  5363. </member>
  5364. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.ToString">
  5365. <inheritdoc/>
  5366. </member>
  5367. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.op_Equality(CommunityToolkit.HighPerformance.ReadOnlySpan2D{`0},CommunityToolkit.HighPerformance.ReadOnlySpan2D{`0})">
  5368. <summary>
  5369. Checks whether two <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instances are equal.
  5370. </summary>
  5371. <param name="left">The first <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance to compare.</param>
  5372. <param name="right">The second <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance to compare.</param>
  5373. <returns>Whether or not <paramref name="left"/> and <paramref name="right"/> are equal.</returns>
  5374. </member>
  5375. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.op_Inequality(CommunityToolkit.HighPerformance.ReadOnlySpan2D{`0},CommunityToolkit.HighPerformance.ReadOnlySpan2D{`0})">
  5376. <summary>
  5377. Checks whether two <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instances are not equal.
  5378. </summary>
  5379. <param name="left">The first <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance to compare.</param>
  5380. <param name="right">The second <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance to compare.</param>
  5381. <returns>Whether or not <paramref name="left"/> and <paramref name="right"/> are not equal.</returns>
  5382. </member>
  5383. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.op_Implicit(`0[0:,0:])~CommunityToolkit.HighPerformance.ReadOnlySpan2D{`0}">
  5384. <summary>
  5385. Implicily converts a given 2D array into a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.
  5386. </summary>
  5387. <param name="array">The input 2D array to convert.</param>
  5388. </member>
  5389. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.op_Implicit(CommunityToolkit.HighPerformance.Span2D{`0})~CommunityToolkit.HighPerformance.ReadOnlySpan2D{`0}">
  5390. <summary>
  5391. Implicily converts a given <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> into a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.
  5392. </summary>
  5393. <param name="span">The input <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> to convert.</param>
  5394. </member>
  5395. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.GetRow(System.Int32)">
  5396. <summary>
  5397. Gets an enumerable that traverses items in a specified row.
  5398. </summary>
  5399. <param name="row">The target row to enumerate within the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.</param>
  5400. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> with target items to enumerate.</returns>
  5401. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  5402. </member>
  5403. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.GetColumn(System.Int32)">
  5404. <summary>
  5405. Gets an enumerable that traverses items in a specified column.
  5406. </summary>
  5407. <param name="column">The target column to enumerate within the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.</param>
  5408. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> with target items to enumerate.</returns>
  5409. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.ReadOnlyRefEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  5410. </member>
  5411. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.GetEnumerator">
  5412. <summary>
  5413. Returns an enumerator for the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.
  5414. </summary>
  5415. <returns>
  5416. An enumerator that can be used to traverse the items in the current <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance
  5417. </returns>
  5418. </member>
  5419. <member name="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator">
  5420. <summary>
  5421. Provides an enumerator for the elements of a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance.
  5422. </summary>
  5423. </member>
  5424. <member name="F:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator.span">
  5425. <summary>
  5426. The <see cref="T:System.ReadOnlySpan`1"/> instance pointing to the first item in the target memory area.
  5427. </summary>
  5428. <remarks>Just like in <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/>, the length is the height of the 2D region.</remarks>
  5429. </member>
  5430. <member name="F:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator.width">
  5431. <summary>
  5432. The width of the specified 2D region.
  5433. </summary>
  5434. </member>
  5435. <member name="F:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator.stride">
  5436. <summary>
  5437. The stride of the specified 2D region.
  5438. </summary>
  5439. </member>
  5440. <member name="F:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator.x">
  5441. <summary>
  5442. The current horizontal offset.
  5443. </summary>
  5444. </member>
  5445. <member name="F:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator.y">
  5446. <summary>
  5447. The current vertical offset.
  5448. </summary>
  5449. </member>
  5450. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator.#ctor(CommunityToolkit.HighPerformance.ReadOnlySpan2D{`0})">
  5451. <summary>
  5452. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator"/> struct.
  5453. </summary>
  5454. <param name="span">The target <see cref="T:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1"/> instance to enumerate.</param>
  5455. </member>
  5456. <member name="M:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator.MoveNext">
  5457. <summary>
  5458. Implements the duck-typed <see cref="M:System.Collections.IEnumerator.MoveNext"/> method.
  5459. </summary>
  5460. <returns><see langword="true"/> whether a new element is available, <see langword="false"/> otherwise</returns>
  5461. </member>
  5462. <member name="P:CommunityToolkit.HighPerformance.ReadOnlySpan2D`1.Enumerator.Current">
  5463. <summary>
  5464. Gets the duck-typed <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property.
  5465. </summary>
  5466. </member>
  5467. <member name="T:CommunityToolkit.HighPerformance.Span2D`1">
  5468. <summary>
  5469. <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> represents a 2D region of arbitrary memory. Like the <see cref="T:System.Span`1"/> type,
  5470. it can point to either managed or native memory, or to memory allocated on the stack. It is type- and memory-safe.
  5471. One key difference with <see cref="T:System.Span`1"/> and arrays is that the underlying buffer for a <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>
  5472. instance might not be contiguous in memory: this is supported to enable mapping arbitrary 2D regions even if they
  5473. require padding between boundaries of sequential rows. All this logic is handled internally by the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>
  5474. type and it is transparent to the user, but note that working over discontiguous buffers has a performance impact.
  5475. </summary>
  5476. <typeparam name="T">The type of items in the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</typeparam>
  5477. <inheritdoc cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>
  5478. </member>
  5479. <member name="F:CommunityToolkit.HighPerformance.Span2D`1.span">
  5480. <summary>
  5481. The <see cref="T:System.Span`1"/> instance pointing to the first item in the target memory area.
  5482. </summary>
  5483. <remarks>
  5484. The <see cref="P:System.Span`1.Length"/> field maps to the height of the 2D region.
  5485. This is done to save 4 bytes in the layout of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> type.
  5486. </remarks>
  5487. </member>
  5488. <member name="F:CommunityToolkit.HighPerformance.Span2D`1.width">
  5489. <summary>
  5490. The width of the specified 2D region.
  5491. </summary>
  5492. </member>
  5493. <member name="F:CommunityToolkit.HighPerformance.Span2D`1.Stride">
  5494. <summary>
  5495. The stride of the specified 2D region.
  5496. </summary>
  5497. <remarks>
  5498. This combines both the width and pitch in a single value so that the indexing
  5499. logic can be simplified (no need to recompute the sum every time) and be faster.
  5500. </remarks>
  5501. </member>
  5502. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(`0@,System.Int32,System.Int32,System.Int32)">
  5503. <summary>
  5504. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct with the specified parameters.
  5505. </summary>
  5506. <param name="value">The reference to the first <typeparamref name="T"/> item to map.</param>
  5507. <param name="height">The height of the 2D memory area to map.</param>
  5508. <param name="width">The width of the 2D memory area to map.</param>
  5509. <param name="pitch">The pitch of the 2D memory area to map (the distance between each row).</param>
  5510. </member>
  5511. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(System.Void*,System.Int32,System.Int32,System.Int32)">
  5512. <summary>
  5513. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct with the specified parameters.
  5514. </summary>
  5515. <param name="pointer">The pointer to the first <typeparamref name="T"/> item to map.</param>
  5516. <param name="height">The height of the 2D memory area to map.</param>
  5517. <param name="width">The width of the 2D memory area to map.</param>
  5518. <param name="pitch">The pitch of the 2D memory area to map (the distance between each row).</param>
  5519. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when one of the parameters are negative.</exception>
  5520. </member>
  5521. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(`0[],System.Int32,System.Int32)">
  5522. <summary>
  5523. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct.
  5524. </summary>
  5525. <param name="array">The target array to wrap.</param>
  5526. <param name="height">The height of the resulting 2D area.</param>
  5527. <param name="width">The width of each row in the resulting 2D area.</param>
  5528. <exception cref="T:System.ArrayTypeMismatchException">
  5529. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  5530. </exception>
  5531. <exception cref="T:System.ArgumentException">
  5532. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  5533. </exception>
  5534. <remarks>The total area must match the length of <paramref name="array"/>.</remarks>
  5535. </member>
  5536. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(`0[],System.Int32,System.Int32,System.Int32,System.Int32)">
  5537. <summary>
  5538. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct.
  5539. </summary>
  5540. <param name="array">The target array to wrap.</param>
  5541. <param name="offset">The initial offset within <paramref name="array"/>.</param>
  5542. <param name="height">The height of the resulting 2D area.</param>
  5543. <param name="width">The width of each row in the resulting 2D area.</param>
  5544. <param name="pitch">The pitch in the resulting 2D area.</param>
  5545. <exception cref="T:System.ArrayTypeMismatchException">
  5546. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  5547. </exception>
  5548. <exception cref="T:System.ArgumentOutOfRangeException">
  5549. Thrown when one of the input parameters is out of range.
  5550. </exception>
  5551. <exception cref="T:System.ArgumentException">
  5552. Thrown when the requested area is outside of bounds for <paramref name="array"/>.
  5553. </exception>
  5554. </member>
  5555. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(`0[0:,0:])">
  5556. <summary>
  5557. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct wrapping a 2D array.
  5558. </summary>
  5559. <param name="array">The given 2D array to wrap.</param>
  5560. <exception cref="T:System.ArrayTypeMismatchException">
  5561. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  5562. </exception>
  5563. </member>
  5564. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(`0[0:,0:],System.Int32,System.Int32,System.Int32,System.Int32)">
  5565. <summary>
  5566. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct wrapping a 2D array.
  5567. </summary>
  5568. <param name="array">The given 2D array to wrap.</param>
  5569. <param name="row">The target row to map within <paramref name="array"/>.</param>
  5570. <param name="column">The target column to map within <paramref name="array"/>.</param>
  5571. <param name="height">The height to map within <paramref name="array"/>.</param>
  5572. <param name="width">The width to map within <paramref name="array"/>.</param>
  5573. <exception cref="T:System.ArrayTypeMismatchException">
  5574. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  5575. </exception>
  5576. <exception cref="T:System.ArgumentOutOfRangeException">
  5577. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  5578. are negative or not within the bounds that are valid for <paramref name="array"/>.
  5579. </exception>
  5580. </member>
  5581. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(`0[0:,0:,0:],System.Int32)">
  5582. <summary>
  5583. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct wrapping a layer in a 3D array.
  5584. </summary>
  5585. <param name="array">The given 3D array to wrap.</param>
  5586. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  5587. <exception cref="T:System.ArrayTypeMismatchException">
  5588. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  5589. </exception>
  5590. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when a parameter is invalid.</exception>
  5591. </member>
  5592. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(`0[0:,0:,0:],System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
  5593. <summary>
  5594. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct wrapping a layer in a 3D array.
  5595. </summary>
  5596. <param name="array">The given 3D array to wrap.</param>
  5597. <param name="depth">The target layer to map within <paramref name="array"/>.</param>
  5598. <param name="row">The target row to map within <paramref name="array"/>.</param>
  5599. <param name="column">The target column to map within <paramref name="array"/>.</param>
  5600. <param name="height">The height to map within <paramref name="array"/>.</param>
  5601. <param name="width">The width to map within <paramref name="array"/>.</param>
  5602. <exception cref="T:System.ArrayTypeMismatchException">
  5603. Thrown when <paramref name="array"/> doesn't match <typeparamref name="T"/>.
  5604. </exception>
  5605. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when a parameter is invalid.</exception>
  5606. </member>
  5607. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(System.Span{`0},System.Int32,System.Int32)">
  5608. <summary>
  5609. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct.
  5610. </summary>
  5611. <param name="span">The target <see cref="T:System.Span`1"/> to wrap.</param>
  5612. <param name="height">The height of the resulting 2D area.</param>
  5613. <param name="width">The width of each row in the resulting 2D area.</param>
  5614. <exception cref="T:System.ArgumentException">
  5615. Thrown when either <paramref name="height"/> or <paramref name="width"/> are invalid.
  5616. </exception>
  5617. <remarks>The total area must match the length of <paramref name="span"/>.</remarks>
  5618. </member>
  5619. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.#ctor(System.Span{`0},System.Int32,System.Int32,System.Int32,System.Int32)">
  5620. <summary>
  5621. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct.
  5622. </summary>
  5623. <param name="span">The target <see cref="T:System.Span`1"/> to wrap.</param>
  5624. <param name="offset">The initial offset within <paramref name="span"/>.</param>
  5625. <param name="height">The height of the resulting 2D area.</param>
  5626. <param name="width">The width of each row in the resulting 2D area.</param>
  5627. <param name="pitch">The pitch in the resulting 2D area.</param>
  5628. <exception cref="T:System.ArgumentOutOfRangeException">
  5629. Thrown when one of the input parameters is out of range.
  5630. </exception>
  5631. <exception cref="T:System.ArgumentException">
  5632. Thrown when the requested area is outside of bounds for <paramref name="span"/>.
  5633. </exception>
  5634. </member>
  5635. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.DangerousCreate(`0@,System.Int32,System.Int32,System.Int32)">
  5636. <summary>
  5637. Creates a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> struct with the specified parameters.
  5638. </summary>
  5639. <param name="value">The reference to the first <typeparamref name="T"/> item to map.</param>
  5640. <param name="height">The height of the 2D memory area to map.</param>
  5641. <param name="width">The width of the 2D memory area to map.</param>
  5642. <param name="pitch">The pitch of the 2D memory area to map (the distance between each row).</param>
  5643. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance with the specified parameters.</returns>
  5644. <exception cref="T:System.ArgumentOutOfRangeException">Thrown when one of the parameters are negative.</exception>
  5645. </member>
  5646. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.Empty">
  5647. <summary>
  5648. Gets an empty <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5649. </summary>
  5650. </member>
  5651. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.IsEmpty">
  5652. <summary>
  5653. Gets a value indicating whether the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance is empty.
  5654. </summary>
  5655. </member>
  5656. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.Length">
  5657. <summary>
  5658. Gets the length of the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5659. </summary>
  5660. </member>
  5661. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.Height">
  5662. <summary>
  5663. Gets the height of the underlying 2D memory area.
  5664. </summary>
  5665. </member>
  5666. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.Width">
  5667. <summary>
  5668. Gets the width of the underlying 2D memory area.
  5669. </summary>
  5670. </member>
  5671. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.Item(System.Int32,System.Int32)">
  5672. <summary>
  5673. Gets the element at the specified zero-based indices.
  5674. </summary>
  5675. <param name="row">The target row to get the element from.</param>
  5676. <param name="column">The target column to get the element from.</param>
  5677. <returns>A reference to the element at the specified indices.</returns>
  5678. <exception cref="T:System.IndexOutOfRangeException">
  5679. Thrown when either <paramref name="row"/> or <paramref name="column"/> are invalid.
  5680. </exception>
  5681. </member>
  5682. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.Item(System.Index,System.Index)">
  5683. <summary>
  5684. Gets the element at the specified zero-based indices.
  5685. </summary>
  5686. <param name="row">The target row to get the element from.</param>
  5687. <param name="column">The target column to get the element from.</param>
  5688. <returns>A reference to the element at the specified indices.</returns>
  5689. <exception cref="T:System.IndexOutOfRangeException">
  5690. Thrown when either <paramref name="row"/> or <paramref name="column"/> are invalid.
  5691. </exception>
  5692. </member>
  5693. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.Item(System.Range,System.Range)">
  5694. <summary>
  5695. Slices the current instance with the specified parameters.
  5696. </summary>
  5697. <param name="rows">The target range of rows to select.</param>
  5698. <param name="columns">The target range of columns to select.</param>
  5699. <exception cref="T:System.ArgumentException">
  5700. Thrown when either <paramref name="rows"/> or <paramref name="columns"/> are invalid.
  5701. </exception>
  5702. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance representing a slice of the current one.</returns>
  5703. </member>
  5704. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.Clear">
  5705. <summary>
  5706. Clears the contents of the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5707. </summary>
  5708. </member>
  5709. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.CopyTo(System.Span{`0})">
  5710. <summary>
  5711. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> into a destination <see cref="T:System.Span`1"/> instance.
  5712. </summary>
  5713. <param name="destination">The destination <see cref="T:System.Span`1"/> instance.</param>
  5714. <exception cref="T:System.ArgumentException">
  5715. Thrown when <paramref name="destination" /> is shorter than the source <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5716. </exception>
  5717. </member>
  5718. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.CopyTo(CommunityToolkit.HighPerformance.Span2D{`0})">
  5719. <summary>
  5720. Copies the contents of this <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> into a destination <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5721. For this API to succeed, the target <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> has to have the same shape as the current one.
  5722. </summary>
  5723. <param name="destination">The destination <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</param>
  5724. <exception cref="T:System.ArgumentException">
  5725. Thrown when <paramref name="destination" /> does not have the same shape as the source <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5726. </exception>
  5727. </member>
  5728. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.TryCopyTo(System.Span{`0})">
  5729. <summary>
  5730. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance to a destination <see cref="T:System.Span`1"/>.
  5731. </summary>
  5732. <param name="destination">The target <see cref="T:System.Span`1"/> of the copy operation.</param>
  5733. <returns>Whether or not the operation was successful.</returns>
  5734. </member>
  5735. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.TryCopyTo(CommunityToolkit.HighPerformance.Span2D{`0})">
  5736. <summary>
  5737. Attempts to copy the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance to a destination <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>.
  5738. </summary>
  5739. <param name="destination">The target <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> of the copy operation.</param>
  5740. <returns>Whether or not the operation was successful.</returns>
  5741. </member>
  5742. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.Fill(`0)">
  5743. <summary>
  5744. Fills the elements of this span with a specified value.
  5745. </summary>
  5746. <param name="value">The value to assign to each element of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</param>
  5747. </member>
  5748. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.GetPinnableReference">
  5749. <summary>
  5750. Returns a reference to the 0th element of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance. If the current
  5751. instance is empty, returns a <see langword="null"/> reference. It can be used for pinning
  5752. and is required to support the use of span within a fixed statement.
  5753. </summary>
  5754. <returns>A reference to the 0th element, or a <see langword="null"/> reference.</returns>
  5755. </member>
  5756. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.DangerousGetReference">
  5757. <summary>
  5758. Returns a reference to the first element within the current instance, with no bounds check.
  5759. </summary>
  5760. <returns>A reference to the first element within the current instance.</returns>
  5761. </member>
  5762. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.DangerousGetReferenceAt(System.Int32,System.Int32)">
  5763. <summary>
  5764. Returns a reference to a specified element within the current instance, with no bounds check.
  5765. </summary>
  5766. <param name="i">The target row to get the element from.</param>
  5767. <param name="j">The target column to get the element from.</param>
  5768. <returns>A reference to the element at the specified indices.</returns>
  5769. </member>
  5770. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.Slice(System.Int32,System.Int32,System.Int32,System.Int32)">
  5771. <summary>
  5772. Slices the current instance with the specified parameters.
  5773. </summary>
  5774. <param name="row">The target row to map within the current instance.</param>
  5775. <param name="column">The target column to map within the current instance.</param>
  5776. <param name="height">The height to map within the current instance.</param>
  5777. <param name="width">The width to map within the current instance.</param>
  5778. <exception cref="T:System.ArgumentException">
  5779. Thrown when either <paramref name="height"/>, <paramref name="width"/> or <paramref name="height"/>
  5780. are negative or not within the bounds that are valid for the current instance.
  5781. </exception>
  5782. <returns>A new <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance representing a slice of the current one.</returns>
  5783. </member>
  5784. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.GetRowSpan(System.Int32)">
  5785. <summary>
  5786. Gets a <see cref="T:System.Span`1"/> for a specified row.
  5787. </summary>
  5788. <param name="row">The index of the target row to retrieve.</param>
  5789. <exception cref="T:System.ArgumentOutOfRangeException">Throw when <paramref name="row"/> is out of range.</exception>
  5790. <returns>The resulting row <see cref="T:System.Span`1"/>.</returns>
  5791. </member>
  5792. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.TryGetSpan(System.Span{`0}@)">
  5793. <summary>
  5794. Tries to get a <see cref="T:System.Span`1"/> instance, if the underlying buffer is contiguous and small enough.
  5795. </summary>
  5796. <param name="span">The resulting <see cref="T:System.Span`1"/>, in case of success.</param>
  5797. <returns>Whether or not <paramref name="span"/> was correctly assigned.</returns>
  5798. </member>
  5799. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.ToArray">
  5800. <summary>
  5801. Copies the contents of the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance into a new 2D array.
  5802. </summary>
  5803. <returns>A 2D array containing the data in the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</returns>
  5804. </member>
  5805. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.Equals(System.Object)">
  5806. <inheritdoc cref="M:System.Span`1.Equals(System.Object)"/>
  5807. </member>
  5808. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.GetHashCode">
  5809. <inheritdoc cref="M:System.Span`1.GetHashCode"/>
  5810. </member>
  5811. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.ToString">
  5812. <inheritdoc/>
  5813. </member>
  5814. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.op_Equality(CommunityToolkit.HighPerformance.Span2D{`0},CommunityToolkit.HighPerformance.Span2D{`0})">
  5815. <summary>
  5816. Checks whether two <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instances are equal.
  5817. </summary>
  5818. <param name="left">The first <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance to compare.</param>
  5819. <param name="right">The second <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance to compare.</param>
  5820. <returns>Whether or not <paramref name="left"/> and <paramref name="right"/> are equal.</returns>
  5821. </member>
  5822. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.op_Inequality(CommunityToolkit.HighPerformance.Span2D{`0},CommunityToolkit.HighPerformance.Span2D{`0})">
  5823. <summary>
  5824. Checks whether two <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instances are not equal.
  5825. </summary>
  5826. <param name="left">The first <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance to compare.</param>
  5827. <param name="right">The second <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance to compare.</param>
  5828. <returns>Whether or not <paramref name="left"/> and <paramref name="right"/> are not equal.</returns>
  5829. </member>
  5830. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.op_Implicit(`0[0:,0:])~CommunityToolkit.HighPerformance.Span2D{`0}">
  5831. <summary>
  5832. Implicily converts a given 2D array into a <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5833. </summary>
  5834. <param name="array">The input 2D array to convert.</param>
  5835. </member>
  5836. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.GetRow(System.Int32)">
  5837. <summary>
  5838. Gets an enumerable that traverses items in a specified row.
  5839. </summary>
  5840. <param name="row">The target row to enumerate within the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</param>
  5841. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> with target items to enumerate.</returns>
  5842. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  5843. </member>
  5844. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.GetColumn(System.Int32)">
  5845. <summary>
  5846. Gets an enumerable that traverses items in a specified column.
  5847. </summary>
  5848. <param name="column">The target column to enumerate within the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.</param>
  5849. <returns>A <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> with target items to enumerate.</returns>
  5850. <remarks>The returned <see cref="T:CommunityToolkit.HighPerformance.Enumerables.RefEnumerable`1"/> value shouldn't be used directly: use this extension in a <see langword="foreach"/> loop.</remarks>
  5851. </member>
  5852. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.GetEnumerator">
  5853. <summary>
  5854. Returns an enumerator for the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5855. </summary>
  5856. <returns>
  5857. An enumerator that can be used to traverse the items in the current <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance
  5858. </returns>
  5859. </member>
  5860. <member name="T:CommunityToolkit.HighPerformance.Span2D`1.Enumerator">
  5861. <summary>
  5862. Provides an enumerator for the elements of a <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance.
  5863. </summary>
  5864. </member>
  5865. <member name="F:CommunityToolkit.HighPerformance.Span2D`1.Enumerator.span">
  5866. <summary>
  5867. The <see cref="T:System.Span`1"/> instance pointing to the first item in the target memory area.
  5868. </summary>
  5869. <remarks>Just like in <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/>, the length is the height of the 2D region.</remarks>
  5870. </member>
  5871. <member name="F:CommunityToolkit.HighPerformance.Span2D`1.Enumerator.width">
  5872. <summary>
  5873. The width of the specified 2D region.
  5874. </summary>
  5875. </member>
  5876. <member name="F:CommunityToolkit.HighPerformance.Span2D`1.Enumerator.stride">
  5877. <summary>
  5878. The stride of the specified 2D region.
  5879. </summary>
  5880. </member>
  5881. <member name="F:CommunityToolkit.HighPerformance.Span2D`1.Enumerator.x">
  5882. <summary>
  5883. The current horizontal offset.
  5884. </summary>
  5885. </member>
  5886. <member name="F:CommunityToolkit.HighPerformance.Span2D`1.Enumerator.y">
  5887. <summary>
  5888. The current vertical offset.
  5889. </summary>
  5890. </member>
  5891. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.Enumerator.#ctor(CommunityToolkit.HighPerformance.Span2D{`0})">
  5892. <summary>
  5893. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Span2D`1.Enumerator"/> struct.
  5894. </summary>
  5895. <param name="span">The target <see cref="T:CommunityToolkit.HighPerformance.Span2D`1"/> instance to enumerate.</param>
  5896. </member>
  5897. <member name="M:CommunityToolkit.HighPerformance.Span2D`1.Enumerator.MoveNext">
  5898. <summary>
  5899. Implements the duck-typed <see cref="M:System.Collections.IEnumerator.MoveNext"/> method.
  5900. </summary>
  5901. <returns><see langword="true"/> whether a new element is available, <see langword="false"/> otherwise</returns>
  5902. </member>
  5903. <member name="P:CommunityToolkit.HighPerformance.Span2D`1.Enumerator.Current">
  5904. <summary>
  5905. Gets the duck-typed <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property.
  5906. </summary>
  5907. </member>
  5908. <member name="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1">
  5909. <summary>
  5910. A <see langword="struct"/> that can store an optional readonly reference to a value of a specified type.
  5911. </summary>
  5912. <typeparam name="T">The type of value to reference.</typeparam>
  5913. </member>
  5914. <member name="F:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.span">
  5915. <summary>
  5916. The 1-length <see cref="T:System.ReadOnlySpan`1"/> instance used to track the target <typeparamref name="T"/> value.
  5917. </summary>
  5918. </member>
  5919. <member name="M:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.#ctor(`0@)">
  5920. <summary>
  5921. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> struct.
  5922. </summary>
  5923. <param name="value">The readonly reference to the target <typeparamref name="T"/> value.</param>
  5924. </member>
  5925. <member name="M:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.#ctor(System.ReadOnlySpan{`0})">
  5926. <summary>
  5927. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> struct.
  5928. </summary>
  5929. <param name="span">The <see cref="T:System.ReadOnlySpan`1"/> instance to track the target <typeparamref name="T"/> reference.</param>
  5930. </member>
  5931. <member name="P:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.Null">
  5932. <summary>
  5933. Gets a <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> instance representing a <see langword="null"/> reference.
  5934. </summary>
  5935. </member>
  5936. <member name="P:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.HasValue">
  5937. <summary>
  5938. Gets a value indicating whether or not the current <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> instance wraps a valid reference that can be accessed.
  5939. </summary>
  5940. </member>
  5941. <member name="P:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.Value">
  5942. <summary>
  5943. Gets the <typeparamref name="T"/> reference represented by the current <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> instance.
  5944. </summary>
  5945. <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.HasValue"/> is <see langword="false"/>.</exception>
  5946. </member>
  5947. <member name="M:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.op_Implicit(CommunityToolkit.HighPerformance.Ref{`0})~CommunityToolkit.HighPerformance.NullableReadOnlyRef{`0}">
  5948. <summary>
  5949. Implicitly converts a <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance into a <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> one.
  5950. </summary>
  5951. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance.</param>
  5952. </member>
  5953. <member name="M:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.op_Implicit(CommunityToolkit.HighPerformance.ReadOnlyRef{`0})~CommunityToolkit.HighPerformance.NullableReadOnlyRef{`0}">
  5954. <summary>
  5955. Implicitly converts a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyRef`1"/> instance into a <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> one.
  5956. </summary>
  5957. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyRef`1"/> instance.</param>
  5958. </member>
  5959. <member name="M:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.op_Implicit(CommunityToolkit.HighPerformance.NullableRef{`0})~CommunityToolkit.HighPerformance.NullableReadOnlyRef{`0}">
  5960. <summary>
  5961. Implicitly converts a <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> instance into a <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> one.
  5962. </summary>
  5963. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance.</param>
  5964. </member>
  5965. <member name="M:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.op_Explicit(CommunityToolkit.HighPerformance.NullableReadOnlyRef{`0})~`0">
  5966. <summary>
  5967. Explicitly gets the <typeparamref name="T"/> value from a given <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> instance.
  5968. </summary>
  5969. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1"/> instance.</param>
  5970. <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.HasValue"/> is <see langword="false"/>.</exception>
  5971. </member>
  5972. <member name="M:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.ThrowInvalidOperationException">
  5973. <summary>
  5974. Throws a <see cref="T:System.InvalidOperationException"/> when trying to access <see cref="P:CommunityToolkit.HighPerformance.NullableReadOnlyRef`1.Value"/> for a default instance.
  5975. </summary>
  5976. </member>
  5977. <member name="T:CommunityToolkit.HighPerformance.NullableRef`1">
  5978. <summary>
  5979. A <see langword="struct"/> that can store an optional reference to a value of a specified type.
  5980. </summary>
  5981. <typeparam name="T">The type of value to reference.</typeparam>
  5982. </member>
  5983. <member name="F:CommunityToolkit.HighPerformance.NullableRef`1.Span">
  5984. <summary>
  5985. The 1-length <see cref="T:System.Span`1"/> instance used to track the target <typeparamref name="T"/> value.
  5986. </summary>
  5987. </member>
  5988. <member name="M:CommunityToolkit.HighPerformance.NullableRef`1.#ctor(`0@)">
  5989. <summary>
  5990. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> struct.
  5991. </summary>
  5992. <param name="value">The reference to the target <typeparamref name="T"/> value.</param>
  5993. </member>
  5994. <member name="M:CommunityToolkit.HighPerformance.NullableRef`1.#ctor(System.Span{`0})">
  5995. <summary>
  5996. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> struct.
  5997. </summary>
  5998. <param name="span">The <see cref="T:System.Span`1"/> instance to track the target <typeparamref name="T"/> reference.</param>
  5999. </member>
  6000. <member name="P:CommunityToolkit.HighPerformance.NullableRef`1.Null">
  6001. <summary>
  6002. Gets a <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> instance representing a <see langword="null"/> reference.
  6003. </summary>
  6004. </member>
  6005. <member name="P:CommunityToolkit.HighPerformance.NullableRef`1.HasValue">
  6006. <summary>
  6007. Gets a value indicating whether or not the current <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> instance wraps a valid reference that can be accessed.
  6008. </summary>
  6009. </member>
  6010. <member name="P:CommunityToolkit.HighPerformance.NullableRef`1.Value">
  6011. <summary>
  6012. Gets the <typeparamref name="T"/> reference represented by the current <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> instance.
  6013. </summary>
  6014. <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:CommunityToolkit.HighPerformance.NullableRef`1.HasValue"/> is <see langword="false"/>.</exception>
  6015. </member>
  6016. <member name="M:CommunityToolkit.HighPerformance.NullableRef`1.op_Implicit(CommunityToolkit.HighPerformance.Ref{`0})~CommunityToolkit.HighPerformance.NullableRef{`0}">
  6017. <summary>
  6018. Implicitly converts a <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance into a <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> one.
  6019. </summary>
  6020. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance.</param>
  6021. </member>
  6022. <member name="M:CommunityToolkit.HighPerformance.NullableRef`1.op_Explicit(CommunityToolkit.HighPerformance.NullableRef{`0})~`0">
  6023. <summary>
  6024. Explicitly gets the <typeparamref name="T"/> value from a given <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> instance.
  6025. </summary>
  6026. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.NullableRef`1"/> instance.</param>
  6027. <exception cref="T:System.InvalidOperationException">Thrown if <see cref="P:CommunityToolkit.HighPerformance.NullableRef`1.HasValue"/> is <see langword="false"/>.</exception>
  6028. </member>
  6029. <member name="M:CommunityToolkit.HighPerformance.NullableRef`1.ThrowInvalidOperationException">
  6030. <summary>
  6031. Throws a <see cref="T:System.InvalidOperationException"/> when trying to access <see cref="P:CommunityToolkit.HighPerformance.NullableRef`1.Value"/> for a default instance.
  6032. </summary>
  6033. </member>
  6034. <member name="T:CommunityToolkit.HighPerformance.ReadOnlyRef`1">
  6035. <summary>
  6036. A <see langword="struct"/> that can store a readonly reference to a value of a specified type.
  6037. </summary>
  6038. <typeparam name="T">The type of value to reference.</typeparam>
  6039. </member>
  6040. <member name="F:CommunityToolkit.HighPerformance.ReadOnlyRef`1.Span">
  6041. <summary>
  6042. The 1-length <see cref="T:System.ReadOnlySpan`1"/> instance used to track the target <typeparamref name="T"/> value.
  6043. </summary>
  6044. </member>
  6045. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyRef`1.#ctor(`0@)">
  6046. <summary>
  6047. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyRef`1"/> struct.
  6048. </summary>
  6049. <param name="value">The readonly reference to the target <typeparamref name="T"/> value.</param>
  6050. </member>
  6051. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyRef`1.#ctor(System.Void*)">
  6052. <summary>
  6053. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyRef`1"/> struct.
  6054. </summary>
  6055. <param name="pointer">The pointer to the target value.</param>
  6056. </member>
  6057. <member name="P:CommunityToolkit.HighPerformance.ReadOnlyRef`1.Value">
  6058. <summary>
  6059. Gets the readonly <typeparamref name="T"/> reference represented by the current <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance.
  6060. </summary>
  6061. </member>
  6062. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyRef`1.op_Implicit(CommunityToolkit.HighPerformance.Ref{`0})~CommunityToolkit.HighPerformance.ReadOnlyRef{`0}">
  6063. <summary>
  6064. Implicitly converts a <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance into a <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyRef`1"/> one.
  6065. </summary>
  6066. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance.</param>
  6067. </member>
  6068. <member name="M:CommunityToolkit.HighPerformance.ReadOnlyRef`1.op_Implicit(CommunityToolkit.HighPerformance.ReadOnlyRef{`0})~`0">
  6069. <summary>
  6070. Implicitly gets the <typeparamref name="T"/> value from a given <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyRef`1"/> instance.
  6071. </summary>
  6072. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.ReadOnlyRef`1"/> instance.</param>
  6073. </member>
  6074. <member name="T:CommunityToolkit.HighPerformance.Ref`1">
  6075. <summary>
  6076. A <see langword="struct"/> that can store a reference to a value of a specified type.
  6077. </summary>
  6078. <typeparam name="T">The type of value to reference.</typeparam>
  6079. </member>
  6080. <member name="F:CommunityToolkit.HighPerformance.Ref`1.Span">
  6081. <summary>
  6082. The 1-length <see cref="T:System.Span`1"/> instance used to track the target <typeparamref name="T"/> value.
  6083. </summary>
  6084. </member>
  6085. <member name="M:CommunityToolkit.HighPerformance.Ref`1.#ctor(`0@)">
  6086. <summary>
  6087. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> struct.
  6088. </summary>
  6089. <param name="value">The reference to the target <typeparamref name="T"/> value.</param>
  6090. </member>
  6091. <member name="M:CommunityToolkit.HighPerformance.Ref`1.#ctor(System.Void*)">
  6092. <summary>
  6093. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> struct.
  6094. </summary>
  6095. <param name="pointer">The pointer to the target value.</param>
  6096. </member>
  6097. <member name="P:CommunityToolkit.HighPerformance.Ref`1.Value">
  6098. <summary>
  6099. Gets the <typeparamref name="T"/> reference represented by the current <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance.
  6100. </summary>
  6101. </member>
  6102. <member name="M:CommunityToolkit.HighPerformance.Ref`1.op_Implicit(CommunityToolkit.HighPerformance.Ref{`0})~`0">
  6103. <summary>
  6104. Implicitly gets the <typeparamref name="T"/> value from a given <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance.
  6105. </summary>
  6106. <param name="reference">The input <see cref="T:CommunityToolkit.HighPerformance.Ref`1"/> instance.</param>
  6107. </member>
  6108. <member name="T:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1">
  6109. <summary>
  6110. A <see cref="T:System.IO.Stream"/> implementation wrapping an <see cref="T:System.Buffers.IBufferWriter`1"/> instance.
  6111. </summary>
  6112. <typeparam name="TWriter">The type of buffer writer to use.</typeparam>
  6113. <inheritdoc cref="T:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1"/>
  6114. </member>
  6115. <member name="F:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.bufferWriter">
  6116. <summary>
  6117. The target <typeparamref name="TWriter"/> instance to use.
  6118. </summary>
  6119. </member>
  6120. <member name="F:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.disposed">
  6121. <summary>
  6122. Indicates whether or not the current instance has been disposed
  6123. </summary>
  6124. </member>
  6125. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.#ctor(`0)">
  6126. <summary>
  6127. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1"/> class.
  6128. </summary>
  6129. <param name="bufferWriter">The target <see cref="T:System.Buffers.IBufferWriter`1"/> instance to use.</param>
  6130. </member>
  6131. <member name="P:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.CanRead">
  6132. <inheritdoc/>
  6133. </member>
  6134. <member name="P:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.CanSeek">
  6135. <inheritdoc/>
  6136. </member>
  6137. <member name="P:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.CanWrite">
  6138. <inheritdoc/>
  6139. </member>
  6140. <member name="P:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Length">
  6141. <inheritdoc/>
  6142. </member>
  6143. <member name="P:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Position">
  6144. <inheritdoc/>
  6145. </member>
  6146. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.CopyToAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
  6147. <inheritdoc/>
  6148. </member>
  6149. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Flush">
  6150. <inheritdoc/>
  6151. </member>
  6152. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.FlushAsync(System.Threading.CancellationToken)">
  6153. <inheritdoc/>
  6154. </member>
  6155. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
  6156. <inheritdoc/>
  6157. </member>
  6158. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
  6159. <inheritdoc/>
  6160. </member>
  6161. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Seek(System.Int64,System.IO.SeekOrigin)">
  6162. <inheritdoc/>
  6163. </member>
  6164. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.SetLength(System.Int64)">
  6165. <inheritdoc/>
  6166. </member>
  6167. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Read(System.Byte[],System.Int32,System.Int32)">
  6168. <inheritdoc/>
  6169. </member>
  6170. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.ReadByte">
  6171. <inheritdoc/>
  6172. </member>
  6173. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Write(System.Byte[],System.Int32,System.Int32)">
  6174. <inheritdoc/>
  6175. </member>
  6176. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.WriteByte(System.Byte)">
  6177. <inheritdoc/>
  6178. </member>
  6179. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Dispose(System.Boolean)">
  6180. <inheritdoc/>
  6181. </member>
  6182. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.CopyTo(System.IO.Stream,System.Int32)">
  6183. <inheritdoc/>
  6184. </member>
  6185. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.ReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
  6186. <inheritdoc/>
  6187. </member>
  6188. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.WriteAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
  6189. <inheritdoc/>
  6190. </member>
  6191. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Read(System.Span{System.Byte})">
  6192. <inheritdoc/>
  6193. </member>
  6194. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterStream`1.Write(System.ReadOnlySpan{System.Byte})">
  6195. <inheritdoc/>
  6196. </member>
  6197. <member name="T:CommunityToolkit.HighPerformance.Streams.IMemoryOwnerStream`1">
  6198. <summary>
  6199. A <see cref="T:System.IO.Stream"/> implementation wrapping an <see cref="T:System.Buffers.IMemoryOwner`1"/> of <see cref="T:System.Byte"/> instance.
  6200. </summary>
  6201. <typeparam name="TSource">The type of source to use for the underlying data.</typeparam>
  6202. </member>
  6203. <member name="F:CommunityToolkit.HighPerformance.Streams.IMemoryOwnerStream`1.disposable">
  6204. <summary>
  6205. The <see cref="T:System.IDisposable"/> instance currently in use.
  6206. </summary>
  6207. </member>
  6208. <member name="M:CommunityToolkit.HighPerformance.Streams.IMemoryOwnerStream`1.#ctor(`0,System.IDisposable)">
  6209. <summary>
  6210. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Streams.IMemoryOwnerStream`1"/> class.
  6211. </summary>
  6212. <param name="source">The input <typeparamref name="TSource"/> instance to use.</param>
  6213. <param name="disposable">The <see cref="T:System.IDisposable"/> instance currently in use.</param>
  6214. </member>
  6215. <member name="M:CommunityToolkit.HighPerformance.Streams.IMemoryOwnerStream`1.Dispose(System.Boolean)">
  6216. <inheritdoc/>
  6217. </member>
  6218. <member name="T:CommunityToolkit.HighPerformance.Streams.MemoryStream">
  6219. <summary>
  6220. A factory class to produce <see cref="T:CommunityToolkit.HighPerformance.Streams.MemoryStream`1"/> instances.
  6221. </summary>
  6222. <summary>
  6223. A factory class to produce <see cref="T:CommunityToolkit.HighPerformance.Streams.MemoryStream`1"/> instances.
  6224. </summary>
  6225. <summary>
  6226. A factory class to produce <see cref="T:CommunityToolkit.HighPerformance.Streams.MemoryStream`1"/> instances.
  6227. </summary>
  6228. </member>
  6229. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.Create(System.ReadOnlyMemory{System.Byte},System.Boolean)">
  6230. <summary>
  6231. Creates a new <see cref="T:System.IO.Stream"/> from the input <see cref="T:System.ReadOnlyMemory`1"/> of <see cref="T:System.Byte"/> instance.
  6232. </summary>
  6233. <param name="memory">The input <see cref="T:System.ReadOnlyMemory`1"/> instance.</param>
  6234. <param name="isReadOnly">Indicates whether or not <paramref name="memory"/> can be written to.</param>
  6235. <returns>A <see cref="T:System.IO.Stream"/> wrapping the underlying data for <paramref name="memory"/>.</returns>
  6236. <exception cref="T:System.ArgumentException">Thrown when <paramref name="memory"/> has an invalid data store.</exception>
  6237. </member>
  6238. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.Create(System.Buffers.IMemoryOwner{System.Byte})">
  6239. <summary>
  6240. Creates a new <see cref="T:System.IO.Stream"/> from the input <see cref="T:System.Buffers.IMemoryOwner`1"/> of <see cref="T:System.Byte"/> instance.
  6241. </summary>
  6242. <param name="memoryOwner">The input <see cref="T:System.Buffers.IMemoryOwner`1"/> instance.</param>
  6243. <returns>A <see cref="T:System.IO.Stream"/> wrapping the underlying data for <paramref name="memoryOwner"/>.</returns>
  6244. <exception cref="T:System.ArgumentException">Thrown when <paramref name="memoryOwner"/> has an invalid data store.</exception>
  6245. </member>
  6246. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowNotSupportedExceptionForInvalidMemory">
  6247. <summary>
  6248. Throws a <see cref="T:System.ArgumentException"/> when a given <see cref="T:System.Memory`1"/>
  6249. or <see cref="T:System.Buffers.IMemoryOwner`1"/> instance has an unsupported backing store.
  6250. </summary>
  6251. <returns>Nothing, this method always throws.</returns>
  6252. </member>
  6253. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.GetNotSupportedException">
  6254. <summary>
  6255. Gets a standard <see cref="T:System.NotSupportedException"/> instance for a stream.
  6256. </summary>
  6257. <returns>A <see cref="T:System.NotSupportedException"/> with the standard text.</returns>
  6258. </member>
  6259. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowNotSupportedException">
  6260. <summary>
  6261. Throws a <see cref="T:System.NotSupportedException"/> when trying to perform a not supported operation.
  6262. </summary>
  6263. </member>
  6264. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowArgumentExceptionForEndOfStreamOnWrite">
  6265. <summary>
  6266. Throws an <see cref="T:System.ArgumentException"/> when trying to write too many bytes to the target stream.
  6267. </summary>
  6268. </member>
  6269. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowArgumentExceptionForSeekOrigin">
  6270. <summary>
  6271. Throws an <see cref="T:System.ArgumentException"/> when using an invalid seek mode.
  6272. </summary>
  6273. <returns>Nothing, as this method throws unconditionally.</returns>
  6274. </member>
  6275. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowArgumentOutOfRangeExceptionForPosition">
  6276. <summary>
  6277. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when setting the <see cref="P:System.IO.Stream.Position"/> property.
  6278. </summary>
  6279. </member>
  6280. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowArgumentNullExceptionForBuffer">
  6281. <summary>
  6282. Throws an <see cref="T:System.ArgumentNullException"/> when an input buffer is <see langword="null"/>.
  6283. </summary>
  6284. </member>
  6285. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowArgumentOutOfRangeExceptionForOffset">
  6286. <summary>
  6287. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the input count is negative.
  6288. </summary>
  6289. </member>
  6290. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowArgumentOutOfRangeExceptionForCount">
  6291. <summary>
  6292. Throws an <see cref="T:System.ArgumentOutOfRangeException"/> when the input count is negative.
  6293. </summary>
  6294. </member>
  6295. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowArgumentExceptionForLength">
  6296. <summary>
  6297. Throws an <see cref="T:System.ArgumentException"/> when the sum of offset and count exceeds the length of the target buffer.
  6298. </summary>
  6299. </member>
  6300. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ThrowObjectDisposedException">
  6301. <summary>
  6302. Throws an <see cref="T:System.ObjectDisposedException"/> when using a disposed <see cref="T:System.IO.Stream"/> instance.
  6303. </summary>
  6304. </member>
  6305. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ValidatePosition(System.Int64,System.Int32)">
  6306. <summary>
  6307. Validates the <see cref="P:System.IO.Stream.Position"/> argument (it needs to be in the [0, length]) range.
  6308. </summary>
  6309. <param name="position">The new <see cref="P:System.IO.Stream.Position"/> value being set.</param>
  6310. <param name="length">The maximum length of the target <see cref="T:System.IO.Stream"/>.</param>
  6311. </member>
  6312. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ValidateBuffer(System.Byte[],System.Int32,System.Int32)">
  6313. <summary>
  6314. Validates the <see cref="M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32)"/> or <see cref="M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32)"/> arguments.
  6315. </summary>
  6316. <param name="buffer">The target array.</param>
  6317. <param name="offset">The offset within <paramref name="buffer"/>.</param>
  6318. <param name="count">The number of elements to process within <paramref name="buffer"/>.</param>
  6319. </member>
  6320. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ValidateCanWrite(System.Boolean)">
  6321. <summary>
  6322. Validates the <see cref="P:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.CanWrite"/> property.
  6323. </summary>
  6324. </member>
  6325. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream.ValidateDisposed(System.Boolean)">
  6326. <summary>
  6327. Validates that a given <see cref="T:System.IO.Stream"/> instance hasn't been disposed.
  6328. </summary>
  6329. </member>
  6330. <member name="T:CommunityToolkit.HighPerformance.Streams.MemoryStream`1">
  6331. <summary>
  6332. A <see cref="T:System.IO.Stream"/> implementation wrapping a <see cref="T:System.Memory`1"/> or <see cref="T:System.ReadOnlyMemory`1"/> instance.
  6333. </summary>
  6334. <typeparam name="TSource">The type of source to use for the underlying data.</typeparam>
  6335. <remarks>
  6336. This type is not marked as <see langword="sealed"/> so that it can be inherited by
  6337. <see cref="T:CommunityToolkit.HighPerformance.Streams.IMemoryOwnerStream`1"/>, which adds the <see cref="T:System.IDisposable"/> support for
  6338. the wrapped buffer. We're not worried about the performance penalty here caused by the JIT
  6339. not being able to resolve the <see langword="callvirt"/> instruction, as this type is
  6340. only exposed as a <see cref="T:System.IO.Stream"/> anyway, so the generated code would be the same.
  6341. </remarks>
  6342. <inheritdoc cref="T:CommunityToolkit.HighPerformance.Streams.MemoryStream`1"/>
  6343. </member>
  6344. <member name="F:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.isReadOnly">
  6345. <summary>
  6346. Indicates whether <see cref="F:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.source"/> can be written to.
  6347. </summary>
  6348. </member>
  6349. <member name="F:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.source">
  6350. <summary>
  6351. The <typeparamref name="TSource"/> instance currently in use.
  6352. </summary>
  6353. </member>
  6354. <member name="F:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.position">
  6355. <summary>
  6356. The current position within <see cref="F:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.source"/>.
  6357. </summary>
  6358. </member>
  6359. <member name="F:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.disposed">
  6360. <summary>
  6361. Indicates whether or not the current instance has been disposed
  6362. </summary>
  6363. </member>
  6364. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.#ctor(`0,System.Boolean)">
  6365. <summary>
  6366. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Streams.MemoryStream`1"/> class.
  6367. </summary>
  6368. <param name="source">The input <typeparamref name="TSource"/> instance to use.</param>
  6369. <param name="isReadOnly">Indicates whether <paramref name="source"/> can be written to.</param>
  6370. </member>
  6371. <member name="P:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.CanRead">
  6372. <inheritdoc/>
  6373. </member>
  6374. <member name="P:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.CanSeek">
  6375. <inheritdoc/>
  6376. </member>
  6377. <member name="P:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.CanWrite">
  6378. <inheritdoc/>
  6379. </member>
  6380. <member name="P:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Length">
  6381. <inheritdoc/>
  6382. </member>
  6383. <member name="P:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Position">
  6384. <inheritdoc/>
  6385. </member>
  6386. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.CopyToAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
  6387. <inheritdoc/>
  6388. </member>
  6389. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Flush">
  6390. <inheritdoc/>
  6391. </member>
  6392. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.FlushAsync(System.Threading.CancellationToken)">
  6393. <inheritdoc/>
  6394. </member>
  6395. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
  6396. <inheritdoc/>
  6397. </member>
  6398. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
  6399. <inheritdoc/>
  6400. </member>
  6401. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Seek(System.Int64,System.IO.SeekOrigin)">
  6402. <inheritdoc/>
  6403. </member>
  6404. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.SetLength(System.Int64)">
  6405. <inheritdoc/>
  6406. </member>
  6407. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Read(System.Byte[],System.Int32,System.Int32)">
  6408. <inheritdoc/>
  6409. </member>
  6410. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.ReadByte">
  6411. <inheritdoc/>
  6412. </member>
  6413. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Write(System.Byte[],System.Int32,System.Int32)">
  6414. <inheritdoc/>
  6415. </member>
  6416. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.WriteByte(System.Byte)">
  6417. <inheritdoc/>
  6418. </member>
  6419. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Dispose(System.Boolean)">
  6420. <inheritdoc/>
  6421. </member>
  6422. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.CopyTo(System.IO.Stream,System.Int32)">
  6423. <inheritdoc/>
  6424. </member>
  6425. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.ReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
  6426. <inheritdoc/>
  6427. </member>
  6428. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.WriteAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
  6429. <inheritdoc/>
  6430. </member>
  6431. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Read(System.Span{System.Byte})">
  6432. <inheritdoc/>
  6433. </member>
  6434. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryStream`1.Write(System.ReadOnlySpan{System.Byte})">
  6435. <inheritdoc/>
  6436. </member>
  6437. <member name="T:CommunityToolkit.HighPerformance.Streams.ArrayBufferWriterOwner">
  6438. <summary>
  6439. An <see cref="T:System.Buffers.IBufferWriter`1"/> implementation wrapping an <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> instance.
  6440. </summary>
  6441. </member>
  6442. <member name="F:CommunityToolkit.HighPerformance.Streams.ArrayBufferWriterOwner.writer">
  6443. <summary>
  6444. The wrapped <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> array.
  6445. </summary>
  6446. </member>
  6447. <member name="M:CommunityToolkit.HighPerformance.Streams.ArrayBufferWriterOwner.#ctor(CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter{System.Byte})">
  6448. <summary>
  6449. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Streams.ArrayBufferWriterOwner"/> struct.
  6450. </summary>
  6451. <param name="writer">The wrapped <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> instance.</param>
  6452. </member>
  6453. <member name="M:CommunityToolkit.HighPerformance.Streams.ArrayBufferWriterOwner.Advance(System.Int32)">
  6454. <inheritdoc/>
  6455. </member>
  6456. <member name="M:CommunityToolkit.HighPerformance.Streams.ArrayBufferWriterOwner.GetMemory(System.Int32)">
  6457. <inheritdoc/>
  6458. </member>
  6459. <member name="M:CommunityToolkit.HighPerformance.Streams.ArrayBufferWriterOwner.GetSpan(System.Int32)">
  6460. <inheritdoc/>
  6461. </member>
  6462. <member name="T:CommunityToolkit.HighPerformance.Streams.ArrayOwner">
  6463. <summary>
  6464. An <see cref="T:CommunityToolkit.HighPerformance.Streams.ISpanOwner"/> implementation wrapping an array.
  6465. </summary>
  6466. </member>
  6467. <member name="F:CommunityToolkit.HighPerformance.Streams.ArrayOwner.array">
  6468. <summary>
  6469. The wrapped <see cref="T:System.Byte"/> array.
  6470. </summary>
  6471. </member>
  6472. <member name="F:CommunityToolkit.HighPerformance.Streams.ArrayOwner.offset">
  6473. <summary>
  6474. The starting offset within <see cref="F:CommunityToolkit.HighPerformance.Streams.ArrayOwner.array"/>.
  6475. </summary>
  6476. </member>
  6477. <member name="F:CommunityToolkit.HighPerformance.Streams.ArrayOwner.length">
  6478. <summary>
  6479. The usable length within <see cref="F:CommunityToolkit.HighPerformance.Streams.ArrayOwner.array"/>.
  6480. </summary>
  6481. </member>
  6482. <member name="M:CommunityToolkit.HighPerformance.Streams.ArrayOwner.#ctor(System.Byte[],System.Int32,System.Int32)">
  6483. <summary>
  6484. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Streams.ArrayOwner"/> struct.
  6485. </summary>
  6486. <param name="array">The wrapped <see cref="T:System.Byte"/> array.</param>
  6487. <param name="offset">The starting offset within <paramref name="array"/>.</param>
  6488. <param name="length">The usable length within <paramref name="array"/>.</param>
  6489. </member>
  6490. <member name="P:CommunityToolkit.HighPerformance.Streams.ArrayOwner.Empty">
  6491. <summary>
  6492. Gets an empty <see cref="T:CommunityToolkit.HighPerformance.Streams.ArrayOwner"/> instance.
  6493. </summary>
  6494. </member>
  6495. <member name="P:CommunityToolkit.HighPerformance.Streams.ArrayOwner.Length">
  6496. <inheritdoc/>
  6497. </member>
  6498. <member name="P:CommunityToolkit.HighPerformance.Streams.ArrayOwner.Span">
  6499. <inheritdoc/>
  6500. </member>
  6501. <member name="T:CommunityToolkit.HighPerformance.Streams.IBufferWriterOwner">
  6502. <summary>
  6503. An <see cref="T:System.Buffers.IBufferWriter`1"/> implementation wrapping an <see cref="T:System.Buffers.IBufferWriter`1"/> instance.
  6504. </summary>
  6505. </member>
  6506. <member name="F:CommunityToolkit.HighPerformance.Streams.IBufferWriterOwner.writer">
  6507. <summary>
  6508. The wrapped <see cref="T:CommunityToolkit.HighPerformance.Buffers.ArrayPoolBufferWriter`1"/> array.
  6509. </summary>
  6510. </member>
  6511. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterOwner.#ctor(System.Buffers.IBufferWriter{System.Byte})">
  6512. <summary>
  6513. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Streams.IBufferWriterOwner"/> struct.
  6514. </summary>
  6515. <param name="writer">The wrapped <see cref="T:System.Buffers.IBufferWriter`1"/> instance.</param>
  6516. </member>
  6517. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterOwner.Advance(System.Int32)">
  6518. <inheritdoc/>
  6519. </member>
  6520. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterOwner.GetMemory(System.Int32)">
  6521. <inheritdoc/>
  6522. </member>
  6523. <member name="M:CommunityToolkit.HighPerformance.Streams.IBufferWriterOwner.GetSpan(System.Int32)">
  6524. <inheritdoc/>
  6525. </member>
  6526. <member name="T:CommunityToolkit.HighPerformance.Streams.ISpanOwner">
  6527. <summary>
  6528. An interface for types acting as sources for <see cref="T:System.Span`1"/> instances.
  6529. </summary>
  6530. </member>
  6531. <member name="P:CommunityToolkit.HighPerformance.Streams.ISpanOwner.Length">
  6532. <summary>
  6533. Gets the length of the underlying memory area.
  6534. </summary>
  6535. </member>
  6536. <member name="P:CommunityToolkit.HighPerformance.Streams.ISpanOwner.Span">
  6537. <summary>
  6538. Gets a <see cref="T:System.Span`1"/> instance wrapping the underlying memory area.
  6539. </summary>
  6540. </member>
  6541. <member name="T:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner">
  6542. <summary>
  6543. An <see cref="T:CommunityToolkit.HighPerformance.Streams.ISpanOwner"/> implementation wrapping a <see cref="T:System.Buffers.MemoryManager`1"/> of <see cref="T:System.Byte"/> instance.
  6544. </summary>
  6545. </member>
  6546. <member name="F:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner.memoryManager">
  6547. <summary>
  6548. The wrapped <see cref="T:System.Buffers.MemoryManager`1"/> instance.
  6549. </summary>
  6550. </member>
  6551. <member name="F:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner.offset">
  6552. <summary>
  6553. The starting offset within <see cref="F:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner.memoryManager"/>.
  6554. </summary>
  6555. </member>
  6556. <member name="F:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner.length">
  6557. <summary>
  6558. The usable length within <see cref="F:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner.memoryManager"/>.
  6559. </summary>
  6560. </member>
  6561. <member name="M:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner.#ctor(System.Buffers.MemoryManager{System.Byte},System.Int32,System.Int32)">
  6562. <summary>
  6563. Initializes a new instance of the <see cref="T:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner"/> struct.
  6564. </summary>
  6565. <param name="memoryManager">The wrapped <see cref="T:System.Buffers.MemoryManager`1"/> instance.</param>
  6566. <param name="offset">The starting offset within <paramref name="memoryManager"/>.</param>
  6567. <param name="length">The usable length within <paramref name="memoryManager"/>.</param>
  6568. </member>
  6569. <member name="P:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner.Length">
  6570. <inheritdoc/>
  6571. </member>
  6572. <member name="P:CommunityToolkit.HighPerformance.Streams.MemoryManagerOwner.Span">
  6573. <inheritdoc/>
  6574. </member>
  6575. </members>
  6576. </doc>