Files
boc/aamos-ledger-rust/target/debug/deps/libmetrics_util-62f7671fc9561155.rmeta
T

682 lines
265 KiB
Plaintext
Raw Normal View History

rust
o #rustc 1.96.0 (ac68faa20 2026-05-25)ÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0ÁmetricsÁç…ݽ¦ÞIéõ]®TòÞ-91645d6613fbf64dÁ rapidhashÁn0Nµ®×arã»pL +é?-30449d4d163bb011Á rustversionÁTgÌüÁé¨Cå@Ö'G-f0da710c68354185ÁÐû†lôˆ/Æí_Ï̱ -7d7f68df13b21e9eÁallocator_api2ÁÆÛŠfêxuìÌ@˜(}Ïu-7b02f80e4eb85c1bÁ
equivalentÁ˜úôa ,tùƳJ8®ød-293c030140ba1879ÁfoldhashÁ¨%¹9ü'?ž˜ë‰4Î-307afae06628b423ÁquantaÁbž®n__åýbn˜C%-9d4922eea7b84fb9Ácrossbeam_utilsÁ\€v€*˜‚³aÑl®Ø{Í-580ebf62485b3066Á once_cellÁ6ÿ]Ô¯q4c]kÂÓ‹-a47cd60ec4e2e104Áæ\‹±ÔcdùÀTƒ-f86f80b348d33b13Ácrossbeam_epochÁ!y1âºjvK õðS-90c3f33e672820a4ÁrandÁ8#Cf[Ãä!` O@.-5cebcdcbc836fca4Á rand_coreÁÌý¦î—W‹œ]TewÉ:-802030763b7da6caÁ getrandomÁ’ú§‰, iMjã¸íçG‡-3af6da94d21ddbadÁ®f©¾/ô)c§{õa“â‘-a3906971a93fd1b8Á rand_chachaÁ£Ì±«õ-÷}­Í1-181890ec389f91c4Á
ppv_lite86Á<<rîd”Û Jøƒ¨x7qï-b7bc7268307ccbaaÁzerocopyÁ{£F™8ù£´ÉÒ6ñ°i-37880aa70dfe9a6cÁ rand_xoshiroÁ
|b½ð8C5˹‰°åS-e2689500100a145dÁsketches_ddsketchÁâ^ iKÒE!T@Y‚’Ï-8afef7c89e101d11Á debuggingÁLƒ»Ú¬®testsÁ,Œ$
ù,§Ž$œŽå
BLOCK_SIZEÁTû16ÁÜòå§û32ÁÜ´åù,–ˆ$‹ˆ¦ùéù,ß7$Ô7ù,• ù°ù,*$*ßù,•& $Š& ÓfilterÁ4Å!
» layer-filterÁĦ!
ÓFilterÁ4ÿ!
»ƒÄÓ!
Ó FilterLayerÁ\‡"
»ƒ"ù  ÓrouterÁ4ï"
» layer-routerÁÄÐ"
ÓRouterÁ4©#
»ýÄý"
Ó
RouterBuilderÁl±#
»ý$& test_utilÁLòÀquantileÁæ »parse_quantilesÁ registryÁ
storageÁStorageÁœCounterÁGaugeÁ HistogramÁcounterÁgaugeÁ histogramÁœš¨´ÄÒÞ









 


 
 



recencyÁ5555555555 5
5 5 5
5555555555555555S¥Sæ S get_innerÁSget_generationÁSwith_incrementÁXX§5[¥[ incrementÁ] [absoluteÁ_ 5a¥aÆc a decrementÁe asetÁg 5i¥irecordÁk 5m¥m÷5p¥p÷5s¥s÷5v¤væ 5yœy¤yšy¨y´yÄyÒyÞ5GenerationalAtomicStorageÁ5 ƒatomicÁ5
œæ should_store_counterÁˆ¤ˆ should_store_gaugeÁ¤ should_store_histogramÁŽ¤Ž  should_storeÁ¤







RegistryHasherÁ
RegistryHashMapÁœœœ§
 shard_countÁŸ 
¡ê¢ ¢ ¢ 
¦œ¦¤¦æ © © © ¦clearÁ¦visit_countersÁ®¦ visit_gaugesÁ°¦visit_histogramsÁ²¦retain_countersÁ´´ ¦
retain_gaugesÁ·· ¦retain_histogramsÁºº 
½œ½¤½get_hash_and_shard_for_counterÁ½get_hash_and_shard_for_gaugeÁ½ get_hash_and_shard_for_histogramÁ
ÜäÃdelete_counterÁà delete_gaugeÁÃdelete_histogramÁà get_counterÁÉ Ã get_gaugeÁË Ã
get_histogramÁÍ 
ϜϤÏget_or_create_counterÁÒ Ò§Ò Ïget_or_create_gaugeÁÖ Ö§Ö Ïget_or_create_histogramÁÚ Ú§Ú Ïget_counter_handlesÁÞ Ïget_gauge_handlesÁà Ïget_histogram_handlesÁâ ÛäbucketÁåååååååååå å
å å å
åååå§åDEFERRED_BLOCK_BATCH_SIZEÁåBlockÁù¥ùwriteÁùreadÁùslotsÁý ùó 奿 next_lenÁ is_quiescedÁdataÁpushÁ別劥匥Œãå¥×奿 is_emptyÁ‡&û%  data_withÁß 
clear_withÁ  å¡¥¡>äääÞ¦§æ §sumÁ§ü§bucketsÁ§°§ record_manyÁ­'aÁ­¤ää reservoirÁ±±±±±±±±±± ±
± ± ±
±±±±fastrandÁà ± ReservoirÁżÅü±È
with_capacityÁȇ&ÈdrainÁ±DrainÁÌË(Ìâ(Ì
unsampled_lenÁÌÌidxÁ±ÒË(Ò sample_rateÁ±ÕË(ÕÕó ±Ù±ÛË(Ûã±AtomicSamplingReservoirÁÞprimaryÁÞ secondaryÁÞ use_primaryÁÞswapÁ±ãæ ãì&ã‡&ãconsumeÁçäsummaryÁéééééî×éðæ ð
with_defaultsÁððþðmergeÁõ ðminÁðmaxÁðì&ðüðestimated_sizeÁéü×éää°ä°žHashableÁŒŒhashableÁ†/†/keyÁšæ šË/šš
into_partsÁ  ¢NONEÁ¢COUNTERÁ¢GAUGEÁ¢ HISTOGRAMÁ¢ALLÁ¢»¢matchesÁ ª°ª± recoverableÁ°°°°°°°°°° °
° ° °
°¿£¿
into_innerÁ°Â£Âæ ÂbuildÁÂinstallÁ°Ç£Çfrom_arcÁ°Ê£Êdescribe_counterÁÊdescribe_gaugeÁÊdescribe_histogramÁÊregister_counterÁÊregister_gaugeÁÊregister_histogramÁ layersÁÓÓÓÓÓÓÓÓÓÓ Ó
ÓfanoutÁßßßßßßßßßß ß
ß ß ß
ßßßð
from_countersÁßòÆòÚßõ÷ß÷ from_gaugesÁßùÆùƒùßý÷ßÿfrom_histogramsÁ߰߃÷ßFanoutÁ recordersÁß ×ß
ò2Š3 3º3 Ò3 è3 ß ×ß  add_recorderÁ£¬2Ó Ó Ó
ÓprefixÁœœœœœœœœœœ œ
œ¨£¨
prefix_keyÁ¨prefix_key_nameÁœ¬£¬ò2¬Š3¬ 3¬º3¬Ò3¬è3œ´æ µ¤œ·£·°·layerÁÓÓÓÓLayerÁ¾£¾°¾ó9ÓÂ£Âæ ‡&ÅÓǣǹ2ÓÊ£Êò2ÊŠ3Ê 3ʺ3ÊÒ3Êè3QuantileÁÒ
ÒˆÒÖרƒÛ
AtomicStorageÁÝ
ß×5
GenerationÁá
áˆ5 5 åƒ5
5è×5êÖ5ì55ï5ñï
5 GenerationalÁó¥óinnerÁó55÷¥÷ƒ5ú¥ú×5GenerationalStorageÁý¤ý©=5¤×5RecencyÁƒœƒmaskÁƒ©=ƒ idle_timeoutÁ5ˆœˆ×
RegistryÁœ¤countersÁgaugesÁ
histogramsÁ
shard_maskÁÛ
œ¤×å AtomicBucketÁ¥tailÁ嚥š×¦´üboundsÁ¡(Ž(¦¢×¦¤ƒ±FAST_RNGÁ¦__rust_std_internal_init_fnÁ¦ ¨ ©__RUST_STD_INTERNAL_VALÁ¨ «¼AéSummaryÁ­sketchÁ鯃é
MergeErrorÁééé´ƒé×DefaultHashableÁ¸
¸¸ˆ¼¼×¿¿§ÁùÃÃÆÈÈËËÖÎÎï
 ÑÑ CompositeKeyÁÔ
ÔˆÔØƒÚ×ÜÖÞ§ßùâäï
æ 
MetricKindÁèšé
è¨ë
è´í
  ðƒ  ó× õÖ ÷§øù   û 
ýï
  ÿ MetricKindMaskÁ
ˆ  × 
Ö   §Œù  ƒ   ï
°RecoveryHandleÁ£handleÁ°£×°RecoverableRecorderÁœ£œ‹H°Ÿ£Ÿ×° WeakRecorderÁ¢£¢recorderÁ°¥£¥×ß
FanoutCounterÁ¨”?ß
ª×ß FanoutGaugeÁ¬¤?ß®×ßFanoutHistogramÁ°²?ß²×ß
FanoutBuilderÁ´ê6ß>œPrefixÁ¸£¸‘8¸©=œ¼£¼×œ PrefixLayerÁ¿
¿ˆœÂ×ÓStackÁģĩ=ÓÇ£Ç×








#
#
$
$
%
%
V
W
X
X
]
_
c
e
g
k






ˆ
ˆ
ˆ



Ž
Ž
Ž





­
®
®
®
°
°
°
²
²
²
´
´
´
·
·
·
º
º
º
À
À
Á
Á
Â
Â
Æ
Æ
Ç
Ç
È
È
É
É
Ë
Ë
Í
Í
Ò
Ò
Ò
Ö
Ö
Ö
Ú
Ú
Ú
Þ
à
â
ƒ
ƒ




Ž












¨
©
ª
«
¬
­
Ê
Ë
Ô
Ø
Ù
Ú
Ý
å
æ
ç
ç
ï
ï
ï
ó
ô
õ
õ
÷
ø
ù
ú
û
ý
ý
ý

ƒ
Ž


œ

¨
©
É
Ì
Í
Î
Ï
Ï
Ï
Ï
Ð
Ð
Ð
Ð
Ñ
Ñ
Ñ
Ñ
ó
ô
ú
û
ü

ˆ
ˆ
ˆ
Š

Œ















ª
ª
«
®
¯
°
±
±
±
±
²
²
²
²
³
³
³
³
º
Á
Ì
Í
Î
Ï
Ï
Ï
Ï
Ð
Ð
Ð
Ð
Ñ
Ñ
Ñ
Ñ
×
×
×
Ù
Ü
Ü
à
à
à
æ
é
é
é
ë
í
í
ð
ð
ò
ò
ù
ü
ü
ü



Š
Š
Š



œ
œ
œ
£
£
£
¥
°
µ
·
·
·
¾
¾
¾
Á
Á
Å
Ê
Ê
Í
Ð
Ð
Ó
Ó
Ù
Û
Û
Û
Ý
ß
ß
ã
ã
å
å
ç
ç
ñ
ô
ô
ô
ö
ø
ø
ü
ü
þ
þ






Š
Š
Œ
Œ








¡
¡
¡
§
§
§
«
«
«
¯
¯
¯
³
³
³
¾
¾
¾
Ã
Ã
Ã
É
É
É
Œ¾¿cÒÒÓª;ÔˆÕ l
A5"zØÎZÐìÎZµßÎZÎZ¿cÝÝÞö; &(3#
´[œÛááâ›<ãˆ5
H¾þ·‘Øð[Š ð[¿cð[ð[ºð[Ðìð[µßð[ð[íßð[ð[Øóó=õ©=5ö55§7°·p¥¿c]ì]ï]ó]éš©=ç óŒË.ò7p]騊©=ç}‘ĶÁÀ]é´Ž©=çáÓTuPOH]¿cýýä=ÿ©=5‡ÙŠÒƒ$!¤ýýä=ÿ©=5‡ÙŠÒƒ$!¤ã[¿cƒƒ¢>¹>5©=5Í>5»Œi¨˜gÓbã[¿cô>Ž”?
¤?
²?
Ä?
Û
h`×#5Îã[û_Ììùùó$ûˆ%åü•%åý¡%åÿó åç‹Í›Ûrȸ] ¿aŒ"¿a¿c¿a¿cú?–@å”’œUäl^G¸]³¹b¿c´žü¦ŸÇ@¦ ¡(¦¡Ž(¦–Ø‹õ#ÇFØûbùMÌÌ­*Îâ(±ÏÊ*±Ð±Ñç*±lhŠ„ËY¿áË(ÃMÌÌ­*Îâ(±ÏÊ*±Ð±Ñç*±lhŠ„ËY¿á8Œ"ÞcØ­­èA®÷Aé§ÓbßĦ¿c¥eŠ ±±’B lð7¯ÛäeØäe¿cäeÄcäe¾äeóú?–@å”’œUäl^GóÞÞÑ+ßð+±àÿ+±á,±â£,±õ¤`QH(fŒ¤¤KeyÁ¥Ð ª¦labelsÁª§§ªXšâ\ŽªÎš¿c¸¸¹ÈB»ˆ ¼ßËeše¦hئhÐì¦hµß¦h¦h¦híߦh¦hº¦hŒ¦hØÔÔÕœDÖˆ× ž}´’?v†¿c»i»iše»iÐì»iµß»i»iíß»i»iº»iÛèéêšëì¨íî´Q³Y„C ØÏjŠ Ïj¿cÏjÏjšeÏjÐìÏjµßÏjÏjíßÏjÏjºÏj¿cØFƒˆ  íwV³Ä[ÿkÐìÿkµßÿkÿkšeÿkÛÿkØÿkŠ ÿkºÿkíßÿkÿk–úÿkÿk¿cíG˜‹H° n~”yô££¿cœœ®Hž‹H°ŒQµÅ-×m¿c¢¢îH¤ŠI°ä›[×mðé×mÿœn¿c¨¨¯I©”?ß#¡.jdaìÞnéí]Þn¿c¬¬ÙI­¤?ßIÚ½%Î[D1ïªoé¥^ªo¿c°°J±²?ß«å¬ONU'óöoéÝ^öo¿cÜ6ê6߉ªYÿÂp³´´­Jµê6ßH ØJ²dJÏ¿cq¿c¸¸ÖJº‘8œ»©=œ, ŒZ¢
×mÿÀq¿c¿¿À‘KÁˆœ ç0¿ ᾎr×m¿cÄľKÆ©=ÓW(‰ŠÏ3“×mÿÔrÖÒßÝèáúóýˆƒùš¢î­±¼¸ÚÔó蟜¥¢ª¨®¬²°´¼¸Â¿ÇÄØÒåá÷󤯭´±Ã¸ØÔðèÚÒîáÆ¸áÔúèˆÛÒïáȸâÔûèÝyýäá³±ïèŽçá²±òèêá˸ÜÔõèìáѸæÔÿèñáθäÔýè[óò¨aóù¬ióÞ°mpsõýƒˆùŠùŒùÛÌ¡´ÕÌÙÌü±þ±¤¸¿¸ÞÔ÷èªÊ¢¬¸ÊÄ·¿¿cúØ
½ÐìFµß**Û Š º#íß#ì#ï
ó
éÌì' Œ"³ùMÃMÄc¾Œše–úÿ¾@64Á £z32Á@£z
BLOCK_SIZEÁù:·e

é:·e
¾î0î0
UnsafeCellÁð0»Ì-·}—KEüC£''Xoshiro256StarStarÁ'¾“½^'ZDŸ0ù:Õúe¨Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙƒ{ ƒ{‹|±Tù9fa¦®®£°©=¨it§ÅLS¶ƒ{á9¢faX¨‹|‹|ù:ðe
é:ðe
Ѓ{/5ù:¦®e  ©|£}/| :¿eù:íÔeù:‚!­e  «¥#| :!eM :À$eù:Ûôe¨‹|©¥å«¥ŸSô¼á Ô ÷þüšd»iÏjÐg½ÏjˆÐg|#Ë/'QŒô
  ƒüÓ
3£ÿk
%ŒÊ  Ùü¦6¤ÿk%Œœ  «üú4¥ÿkt‹%Œö  üÐ8¦ÿk%ŒÈ  ×ü¨2§ÿk%œ» ÒÓ(ÎZ3íf:úHúHßûHÁ‘4Ý­f‰úM÷ls¬• áâ%ð[0£z7>ü˜#
¸Õh¹)¦h4Õh;B¼± ÔÕ(»i3Ïj:ÐgAHÌ€
 %ÿk07>´„ ¿À%Žr0 9@
ä °ÓÀ¦  ª;DÇÒ œDdÎÔŸ­ETöè®ØFt‚¯®HœºœÒî.D¨ ŒÈB|£
¸ÈB¹üüüA> Helper types and functions used within the metrics ecosystem.Á
ä °ÓÀ¦  ª;Ò œDÔŸ­Eè®ØF¯®H
œÒî. ŒÈB ¸ÈB¹·º½dD“ÒÓÎZüî%üò;8 Creates a new [`Quantile`] from a floating-point value.Á²úüº/, All values are clamped between 0.0 and 1.0.ÁõífÎZ
þÜš üë
*' Gets the human-friendly display label.Á,¡ Ê ÊÎZ Ê § 
 Ô€ üÛ  Gets the raw quantile value.Á,‡ Ë ËÎZíf 
 ü
:üµ KH Parses a slice of floating-point values into a vector of [`Quantile`]s.Á|ˆ
Ì Ì
ífªBªBö­BbufÁ÷<®B÷<9)
-ÜnLÎZçEçEèEGlobalÁ ¿±‡§í# £

 quantilesÁL˜
×
<closure_kind>Á <closure_signature>Á <upvars>Á    ífÎZ¥EH;>„¤ü%" High-performance metrics storage.Á»Ì¤ÙäÓ5œŸBuildHasherDefaultÁ”IÊe
'repeatÁ4g K
( PoisonErrorÁ\zÑ@
*Ò4‡°?
+ RawEntryMutÁ\® 
-¨
.ÚfÓ¤
0 KeyHasherÁLØ
1ö;löÝ3ö;Þ3<…4<T á=d¬óÅ̺ä=œÕý˜¢><êƒî.D‚Œ
š\'<+
ÝÞK†J AtomicU64ÁL,æÂ CounterFnÁL7ìGaugeFnÁ<Bï HistogramFnÁ\Kóú?dn¥t•<”#hjSU:<ä^/¤Ëü}MJ Defines the underlying storage for metrics as well as how to create them.ÁœÎìüËñÍìœ Ý™›,™›2Íì¡›µ›üŠ ìð›Øð›è›)„œ”œÍì¡›µ›äÒᅵؿœ·œ(ÒœâœÍì¡›µ›üš$óØ)¡±$'üŠüæ The type used for counters.Á<ÜÒì° The type used for gauges.Á,×üš#üô! The type used for histograms.ÁLŸüæ,ìÄ Creates an empty counter.Á<éÍÎ Í¡› ε›ð› ñ
¡›µ›Ë/øü¸(ܘ Creates an empty gauge.Á,»ÏÐ Ï¡› е›¿œ Á
¡›µ›Ë/ÈüŠ0üæ Creates an empty histogram.ÁLÑÒ Ñ¡› Òµ› 
¡›µ›Ë/žü‰$œÍìã[ Ž´[ !"#$%#%$.0d´†J†JK‰Jµ 7ŠJphantomÁ7J¤7·0ØQdè¤]¤]V¦]Á‚]üß3ø¤”&¨“ö£†J†JK‰Jµ 7ŠJ”£7‹J¤7·0ØQdè¿f¨“ü¦)ÓÔ Ó´[ Ôã[´[ã[ ±
#ã[ ¸ü %,„ ÕÖ Õ´[ Öã[´[ã[ Š 
$ã[$  üØ -ר ×´[ Øã[´[ã[ å 
%ã[ ì 8ÄCX daF ü8?0 3 $ ' L˜¬¤  ûþåèÝàÁĻߜ–Ü
áâóýƒ AtomicUsizeÁ\§
„Ä57®
¼À58KÏ
†J5:¤
µ>5;£•
Ñ@5<DurationÁDø
­Ö5=<™ ð5?DerefMutÁD§ ö!5@š 5B’˜ ì5C¨ 5D­˜ ï5E´ 5FƘ ó5GClockÁ, 5IInstantÁ< Â5Jî.Œ5KØFtÉ 5Mö;lè Ý5O3ö;Þ5O3ô>D÷ 5P< 5Q4­ET è5R®Œ“
çêÙÜ
ÐÓÃÆµ¸œí
¤ ¤Œ   {~mp`cRUEH7:4 ), Ž ¤Ã ü¶/ öøÎпÁ®°¼÷ ¥TTÍì¸] ü ]UVWXü¾# Á 5¸]]SS
U¸]©=,Å ìß ü²( % Gets a reference to the inner value.ÁLæ Ù Ù] Ù¸]S ð S
V¸] üÃ* üž  Gets the current generation.ÁtÊ Ú Ú]ð[S Ù S
W¸] ü€O ü°K H Acquires a reference to the inner value, and increments the generation.Át‡ Ü
¸] 
¸]$ü½"-$Ä"­ ­¿a¸]Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¥¸] É"
¸]$Ê"»,Ð"üÃ)&¥ó® Ï)Ì¿$Ò)¿aüí)&¥ó® ù)Ü¿$ü)¿a̘*¥ó® *¿aŽ"Ž”¸*$»*® ®¿a¥Œ À*Œ
ޏ]$Å*üƒ.$¥ó® ˆ.¿a‘Àcü®.B±.¯°± ¯¿a ° c cˆ¢cµ
 `£cû‘ `àB¤GS
±Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¥ŸÈŸÈ ÈErrorÁ O˜éBL µ.
¸]$¶.± ¼.¼É;¥ó® Î;¹b”¤Œ<üç;  Creates a new, empty bucket.Á“<¹b
¸=üÜ</, Checks whether or not this bucket is empty.ÁD—=² ²¹b  =
¸]$¡=äŽAüã@&# Pushes an element into the bucket.Á$•A³ ³¹b¸]¥ šA
¸]$›A»,¡AüÕZ8üðV74 Collects all of the elements written to the bucket.Á¬Wúü´WXU This operation can be slow as it involves allocating enough space to hold all of theÁü‘Xif elements within the bucket. Consider [`data_with`](AtomicBucket::data_with) to incrementally iterateÁüÿX*' the internal blocks within the bucket.Á®Yúü¶YXU Elements are in partial reverse order: blocks are iterated in reverse order, but theÁü“Z=: elements within them will appear in their original order.Á$ÜZ´ ´¹bªBªBö­Bû‘÷<®B÷<9)
-ÜnL¸]¨“ áZظ],‡[
¸]$âZ<Ð[”“˜¬“˜É“˜˜˜¸] ñÕ¥ Øäü”^Fü”\TQ Iterates all of the elements written to the bucket, invoking `f` for each block.Áí\úüõ\XŽâüÒ]=ðâL›^ ¹bò²¥šš ¨^ª³ ¥^µ“"ò² µñÕ\Î^µò²¾è˜"¥
¸]ò²$©^± ³^]_œÇh´•f Clears the bucket.Á°fúü¸f[X Deallocation of the internal blocks happens only when all readers have finished, and soÁü˜gKH will not necessarily occur during or immediately preceding this method.ÁègúTðg # NoteÁüÿgC@ This method will not affect reads that are already in progress.Á,Îh¸ ¸¹b¥ Ôh
¸]$ÕhLõh”“œ¬“œÉ“œœœ¸]¥æ¥ü×pGüŽiIF Clears the bucket, invoking `f` for every block that will be cleared.ÁÜiúüäi[ÍèüÄjK²é”kúüœk_\ This method is useful for accumulating values and then observing them, in a way that allowsÁü€lEB the caller to avoid visiting the same values again the next time.ÁÊlúüÒlYV This method allows a pattern of observing values before they're cleared, with a clearÁü°m^[ demarcation. A similar pattern used in the wild would be to have some data structure, likeÁü“n]Z a vector, which is continuously filled, and then eventually swapped out with a new, emptyÁüõnXU vector, allowing the caller to read all of the old values while new values are beingÁüÒo! written, over and over again.ÁøoúT€p’êüpC¦êTÞpº º¹bò²¥žž ìpª³ ép¹“"ò² ¹ñÕ\’q¹ò²¾ô˜"¥
¸]ò²$íp± ÷p]_<ò€”“Ÿ¬“ŸÉ“ŸŸŸ¸]ò²¥¥ªBªBö­Bû‘÷<®B÷<9)
-ÜnLÒÊû%ÌÐÊ,8ܪÏý¿a¨“<÷ƒ”“ ¬“ É“   ¸]ò²ñõüõü•‡#¥¢¢ó® š‡¹b£´£¤¿‡<‡¹b¡¡
£¸]¤FKÔe=l‚L†ät‡ûb¨©ª«¬­üõ/ôœ Creates a new `Histogram`.Á¿úüÇ)& If `bounds` is empty, returns `None`.Áü» »ä’Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡z
 Records a single sample.Á4 ¿ ¿ûbíf¥§ §
¬ sampleÁ4¨ ühìë
 Records multiple samples.Á\”À Àûbû_¥§Ë(®¤¯¯® §§ÛÅ ¤ÇLû_äÓû_ÈL Ë(ífû_Ë(ò
­Ë(û_samplesÁ<² ce®Ô™CŒ¶ü! An atomic sampling reservoir.ÁÃÅÌÞ¦zT8î0±³
AtomicBoolÁTn¬]±ö—LzæÂ±·ɨ\…„ı¸G<©ÁÀ±ºGÂÀ±ºË½À±»Ë¾À±»Ì¿À±¼ÌÀÀ±¼¤µ>±½OsRngÁ,û±¿¸„±¿RngÁ ø±À SeedableRngÁ\‡±ÁÅz”§'±Â'„2vü'%ü'7cfTWDGü'9<îðÆÈ$Žprü™ düÝ"±£z£z
ÃupperÁ,é,”Ô“Ĭ“ÄÉ“ÄÄÃÄ ƒ{£z £z„Á±ÅÅÝ)Ƽ±Çü±Ê"¿˃¹@Ê"¿˃¹@ÆÇÄØ±ÅÅžBoxÁ¡ˆˆ¢ˆl }.xÏ
¤¨“”ö±ÅÅ«ÏtÒˆÉÊËü¢)±£zÒˆÈÈ
ÉcapacityÁD³Ôµ $¸ ±Á ÁÒˆíf¥È ½ È
Ê»ä¿  ±Â ÂÒˆÌÌ­*Îâ(±ÏÊ*±Ð±Ñç*±lhŠ„ËY¿áÂÈ È È
Ë ¤ùüÀ85 A draining iterator over the samples in a reservoir.Á,„Ë(ÍÍÞclhŠ„ËY¿áÎÏÐÑÝŠÄ”L”±ÌÌ Ë(Òˆ¤²±ÌÌ£zTÌ̱ÌÌ£zTÜܱÌÌ£z”ëË(ÓÓÞcÔðüÆ ü„IF Returns the sample rate of the reservoir that produced this iterator.ÁÒúüÚtq The sample rate is the ratio of the number of samples pushed into the reservoir to the number of samples held inÁüÓnk the reservoir. When the reservoir has not been filled, the sample rate is 1.0. When more samples have beenÁüÆol pushed into the reservoir than its overall capacity, the sample rate is `size / count`, where `size` is theÁüºXU reservoir's capacity and `count` is the number of samples pushed into the reservoir.ÁúüŸtq For example, if the reservoir holds 1,000 samples, and 100,000 values were pushed into the reservoir, the sampleÁü˜)& rate would be 0.01 (100,000 / 1,000).Á\Íà ÃÞcífÒ ÙÒ
ÔË(üË(ÖÖÞcרúMûMØÕÕífü½(Ä ÄÞcÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÞcúMÕ ÅÕ
ØË(üÈ$8ÅŽdÚÄMÚ´óöÆ Æ½d£zÙ úÙ
Ú8ܱË(ÜÜÞcÝ"Ý”ÓÇ ÇÞc¥Û ÛÛ
ÝË(ü’!"ü¡!ÃúüÇxu [Reservoir sampling][rs] is a technique used to produce a statistically representative sample of a data stream, in aÁüÀ}z fixed space, without knowing the length of the stream in advance. `AtomicSamplingReservoir` is a thread-safe version of aÁü¾HE sampling reservoir, based on Vitter's ["Algorithm R"][vitter_paper].Áúü‹ol Utilizes an A/B-based storage mechanism to avoid contention between producers and the consumer, and a fast,Áüûc` thread-local PRNG ([Xoshiro256**][xoshiro256starstar]) to limit the per-call sampling overhead.Áßúüã:7 [rs]: https://en.wikipedia.org/wiki/Reservoir_samplingÁüž @= [vitter_paper]: https://www.cs.umd.edu/~samir/498/vitter.pdfÁüß 2/ [xoshiro256starstar]: https://prng.di.unimi.itÁ¼!÷fõ¤`QH(fßàáâ”»!<»!±ÞÞÒˆ¤Ó!LÓ!±ÞÞÒˆ¼í!\í!±ÞÞ¤]¤]V¦]Á‚]üß3ø¤”&|Š"$Š"±ÞÞµ>µ>¤·>©=£>¸>•ð£>¹>û%£>Ë»™z™g—¥äž"÷fäåæçü“#üÁ"MJ Creates a new `AtomicSamplingReservoir` that stores up to `size` samples.Áš#£z÷fãã
ä$ž#ôÉ%ü—%-* Returns `true` if the reservoir is empty.ÁDÐ%È È÷fã Ù%ã
å$Ú%ôõ'üÉ''$ Pushes a sample into the reservoir.Á$ü'É É÷fíf¥ã (ã
æ$‚(»,ˆ(ü©+IüÞ)PM Consumes all samples in the reservoir, passing them to the provided closure.Á³*úü»*if The underlying storage is swapped before the closure is called, and the previous storage is consumed.Á<°+Ë Ë÷f¥ãèè »+ãÍ줨 ¸+Ê“"¤¨ÌÌ­*Îâ(±ÏÊ*±Ð±Ñç*±lhŠ„ËY¿áÊ„á+ʤ¨ñ¨˜"¥
礨$¼+
 `£cû‘ `àB¤GS
ΦÛî î
ï$‚± ˆ¥eñòóôõ÷øùúûüþCôÖ Creates a new [`Summary`].Áùúü`] `alpha` represents the desired relative error for this summary. If `alpha` was 0.0001, thatÁüæYV would represent a desired relative error of 0.01%. For example, if the true value atÁüÄ`] quantile q0 was 1, the estimated value at that quantile would be a value within 0.01% of theÁü©52 true value, or a value between 0.9999 and 1.0001.Áãúüëc` `max_buckets` controls how many subbuckets are created, which directly influences memory usage.ÁüÓ^[ Each bucket "costs" eight bytes, so a summary with 2048 buckets would consume a maximum ofÁü¶_\ around 16 KiB. Depending on how many samples have been added to the summary, the number ofÁüš^[ subbuckets allocated may be far below `max_buckets`, and the summary will allocate more asÁüý30 needed to fulfill the relative error guarantee.Áµúü½_\ `min_value` controls the smallest value that will be recognized distinctly from zero. SaidÁü¡XU another way, any value between `-min_value` and `min_value` will be counted as zero.Áífíf¥eðð
ñalphaÁ,‰ max_bucketsÁ\• min_valueÁL§ü÷$!üÉ 2/ Creates a new [`Summary`] with default values.Á€!úüˆ!JG `alpha` is 0.0001, `max_buckets` is 32,768, and `min_value` is 1.0e-9.Á×!úüß!`] This will yield a summary that is roughly equivalent in memory usage to an HDRHistogram withÁüÄ"NK 3 significant digits, and will support values down to a single nanosecond.Á—#úüŸ#_\ In practice, when using only positive values, maximum memory usage can be expected to hoverÁüƒ$_\ around 200KiB, while usage of negative values can lead to an average maximum size of aroundÁ\ç$ 400KiB.Álþ$¥eðð
òüé&!üÓ%! Adds a sample to the summary.Áù%úü&c` If the absolute value of `value` is smaller than given `min_value`, it will be added as a zero.Áð&Ï Ï¥eíf¥ð ô&ð
ó$ù&»,ÿ&üÍ*-üø'30 Gets the estimated value at the given quantile.Á°(úü¸(]Z If the sketch is empty, or if the quantile is less than 0.0 or greater than 1.0, then theÁÔš) result will be `None`.Á¹)úüÁ)_\ If the 0.0 or 1.0 quantile is requested, this function will return self.min() or self.max()Áü¥*# instead of the estimated value.ÁDÔ*РХeífÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙífð Ý*ð
ô$Þ*¼ ä*üù-Bü¹,(% Merge another Summary into this one.Áæ,údî, # ErrorsÁÿ,úü‡-YV This function will return an error if the other Summary was not created with the sameÁ|å- parameters.Á,€.ÑÒ Ñ¥e Ò¥eÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¥äeð †.ð
õ$.¹
,.ï.õ”“ö¬“öÉ“ööõö(O(P(Qª;(R(SMergeÁu(ŽäREFÖäe¥ÄÛ/üž/85 Gets the minimum value this summary has seen so far.Áâ/Ó Ó¥eífð æ/ð
÷$ç/Äñ0ü´085 Gets the maximum value this summary has seen so far.Áø0Ô Ô¥eífð ü0ð
ø$ý0ôü1üÎ1)& Whether or not this summary is empty.ÁDƒ2Õ Õ¥eð Œ2ð
ù$2äö2üÂ2/, Gets the number of samples in this summary.Á,ý2Ö Ö¥e£zð ƒ3ð
ú$„3üò4%ü¼363 Gets the estimized size of this summary, in bytes.Á÷3úüÿ3]Z In practice, this value should be very close to the actual size, but will not be entirelyÁdá4 precise.Átù4× ×¥e£zð ˆ5ð
û$‰5üœ6 äeýÅcýüÃ64Æ6ØÙÚ Øäe Ù c cˆ¢cµ
 `£cû‘ `àB¤GS
Ú¦Ûü Ê6ü
ý$Ë6± Ñ6ü¤7%äe´ßBüø&¿fôä¥Û Û¿fíf¥ ¯
»üç=÷fƒôƒä«Ü Ü÷fíf¥ µ
ƒ»Œ¸¹p,
¿cpÂcŽ$%
šeŽ e4+
¢eˆÚfC
¤Š—–LH
|
L
ikEG<9
8:')Äú
üU
 A type that can hash itself.Áv
úüzd
a In high-performance use cases, an object can pre-hash itself, or memoize its hash value, when itÁüßa
^ is anticipated that an object will be hashed multiple times. Rather than the standard libraryÁüÁb
_ `Hash` trait, `Hashable` exposes an interface that forces objects to hash themselves entirely,Áü¤-
* providing only the resulting 8-byte hash.ÁÒ
úüÖa
^ As a key may sometimes need to be rehashed, we need to ensure that the same hashing algorithmÁü¸b
_ used to pre-generate the hash for this value is used when rehashing it. All implementors mustÁü›Q
N define the hashing algorithm used by specifying the `Hasher` associated type.Áí
úüñ]
Z A default implementation, [`DefaultHashable`], is provided that utilizes the same hashingÁüÏc
` algorithm that [`Key`][metrics::Key] uses, which is high-performance. This type can be used toÁü³F
C satisfy `Hashable` so long as the type itself is already [`Hash`].ÁD„
ŒŒ™›üú­
še¡›
Œ™›*ÛÚ™›6ÛÚ*ŽŽÍì¡›ôÌ
¢e¤Û
³¤Û
œÛ(´ÛÄÛŽìÌ
ü™.
+ The hasher implementation used internally.Á4Ñ
ŒŒÌš
üð%
" Generate the hash of this object.ÁD
Ý Ý¡›Œ ¦
Œ
Ž¡›
©
ÐgŽ
˜êÌã
Þ ÞÐg ï


üÅ-
ÍìÕh Ê
šeÕh
¦h”Ž(*

˜êÌ—

ß ß¦h £

Õh
<¸¼ÔÕ­ET 蘮Úf$¤Œ,dŒÜ»i›œžüš<üô! Creates a new `CompositeKey`.Á§ÏjÐg»išš
ƒ@Ë/Œ@ÌÃü„:7 Gets the inner key represented by this `CompositeKey`.ÁÊà à»i àÐgš Κ
œüº üú;8 Gets the inner kind represented by this `CompositeKey`.Á$Áá á»iÏjš Æš
ü³,ü÷74 Takes the individual pieces of this `CompositeKey`.ÁTº»iÏjÐgšš
žŒÉÞDDÝèBitOrÁ,–ú ¡|œ 
ÿk£¤¥¦§¨©ôÓ
¤º
 No metric kinds.Á$Ý
¢¢ÿkü¦!¬Œ The counter kind.Á<°¢¢ÿküúœâ The gauge kind.Á,„¢¢ÿküÐ#¼´ The histogram kind.ÁLÚ¢¢ÿkì¨¬Ž All metric kinds.Á²¢¢ÿk¬î â âÿk¢ ÷¢
¨üå/ü @= Whether or not this metric kind contains the specified kind.Á<ìã ãÿkÏj¢ ô¢
©ìµÿk«¬˜ú™ú¬ªªÿküò)ÿkÿkÿkÿk˜úªª
¬rhsÁðDðDEE|”œ¢K†J°²WeakÁ$ï7°³š<0°µ¨,9°´L@°·ÚfK¤°¸KeyNameÁ<P°¹MetadataÁDYï°ºRecorderÁDcÿ°»SetRecorderErrorÁ„mѰ¼­ìÒ°¼ SharedStringÁd°½UnitÁ$‘¬°¾LAD/2<!$' úüãåËͳµacNPÌâ£ÀÀÍì×m ç©mÁ
 ü‡ ©m×m¿¿
Á×m$üá@£ÃÃüî æÿ×m ×mÌì×m×m<ämÄÅÆHJüíü¨@= Creates a new `RecoverableRecorder` from the given recorder.Áô×mämÂÂ
Ä×mŠIDøü@,°ämœn©mÂÂ
Å×müöFüÕMJ Installs the wrapped recorder globally, returning a handle to recover it.Á§úü¯YV A weakly-referenced version of the recorder is installed globally, while the originalÁü`] recorder is held within `RecoverableRecorder`, and can be recovered by calling `into_inner`.ÁòúÌÁúü“^[ If a recorder is already installed, an error is returned containing the original recorder.Á<ýämÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
©mÑÑÒ­ìÔˆ Ð$·xñªšg×mÂÂ
Æ×m$…¼¦£ÈÈüî «œnÉ
 üÄ&°ä ä†J†JK‰Jµ 7ŠJ”£7‹J¤7·0ØQdè×m¨“œnÇ ÚÇ
É×mŠIDÐüª.£ËËüî ¯‰ðœnÌÍÎÏÐуÐÎÌÑÍÏQSüßW„âå åœnÚ눪 | £–uÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¬­®CountÁ¯°PercentÁ±²SecondsÁ³´ MillisecondsÁµ MicrosecondsÁ·¸ NanosecondsÁ¹º TebibytesÁ»¼ GibibytesÁ½¾ MebibytesÁ¿À KibibytesÁ ÁÂBytesÁ
ÃÄTerabitsPerSecondÁ ÅÆGigabitsPerSecondÁ ÇÈMegabitsPerSecondÁ
ÉÊKilobitsPerSecondÁËÌ
BitsPerSecondÁÍÎCountPerSecondÁ¹÷<N[[o^µ L_metadataÁL` _lifetimeÁLû©]OR2¥Ê óÊ
Ì×mË/úø$ˆ descriptionÁ\œüÇ Uæ æœnÁúóú›ÿ¥Ê Ù Ê
Í×mË/à ø¤ÿ\!ü«"Y”®"ç çœnÁúóú›ÿ¥Ê Á"Ê
Î×m$Â"Ë/È"ø$Ö"¤ÿ\ê"ü—$I„š$èéêë èœn éÐg êïïõëñê¢òlevelÁ¢ó¹ ¢tô{EÙ`€ëí]Ê «$Ê
Ï×m$¬$Ë/²$´þD½$ü”&Et—&ìíîï ìœn íÐg îïïõëñê¢òœ‚¢ó¹ ¢tô{EÙ`€ï¥^Ê ¦&Ê
Ð×m$§&Ë/­&´þD¸&ü‰(M”Œ(ðñòó ðœn ñÐg òïïõëñê¢òœ‚¢ó¹ ¢tô{EÙ`€óÝ^Ê Ÿ(Ê