Files
boc/aamos-ledger-rust/target/debug/deps/libmetrics-91645d6613fbf64d.rmeta
T

2841 lines
304 KiB
Plaintext
Raw Normal View History

rust
±¿#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Á rapidhashÁn0Nµ®×arã»pL +é?-30449d4d163bb011Á rustversionÁTgÌüÁé¨Cå@Ö'G-f0da710c68354185Á AtomicU64ÁLÝû32ÁܦtestsÁ,óX$èXßÌ,–Ø$‡ØªÌ,o$önƒ label_testsÁ\̳͢Ì,´S$©SÀ  incrementÁ absoluteÁ 

  decrementÁ  setÁž SharedStringÁ KeyHasherÁ
ˆKeyHasherStateÁEmptyÁ
 PreHashedÁ
ˆBytesÁ
 ˆ#×%>'finishÁ'writeÁ' write_u64Á+ update_valueÁ-as_strÁ-as_canonical_labelÁ- from_stringÁ-
is_time_basedÁ-
is_data_basedÁ-is_data_rate_basedÁIntoF64Á4into_f64Á6Ì
8Ì

__into_f64Á:§Ì
macrosÁ> metadata_varÁ>ü>key_varÁ>__describe_metricÁ>__register_metricÁ>counterÁ>gaugeÁ> histogramÁ>describeÁ>describe_counterÁ>describe_gaugeÁ>describe_histogramÁcowÁLLLLLLLLLL L
L L L
Lo['aÁ[¥[µ [metadataÁ[ _lifetimeÁLa¥a
from_partsÁa
from_ownedÁa from_sharedÁa
into_ownedÁLgÃg¥g
from_borrowedÁLkÃk¥k const_sliceÁLo¥o to_retainedÁLrÃr const_strÁLužLw¥wåw´L{¥{ƒL~¥~ãL ¥§ƒL
Ã¥>L ¥L ï
L
¥LÃ¥÷LÃ¥÷LšÃš÷LÃ¥÷L¡÷L£¥£÷L¦¥¦ÉL©¥©borrowÁL¬¬¬L°¥°×L³¥³×L¥L¸¥LººcapacityÁººsharedÁºborrowedÁºownedÁLCowableÁÁÁborrowed_into_partsÁÁowned_into_partsÁÁshared_into_partsÁÁborrowed_from_partsÁÁowned_from_partsÁÁclone_from_partsÁÁdrop_from_partsÁLÊÊþÊʱÊÊÊåÊýÊLÓ¥ÓÓþÓÓ±ÓÊÓåÓýÓL clone_sharedÁÝ¥L const_cowÁßßßßã as_const_strÁßåas_const_sliceÁhandlesÁççççç CounterFnÁì
ì
çGaugeFnÁï
ï²
ïÆ
ç HistogramFnÁórecordÁó record_manyÁçö×çø×çú×çünoopÁüfrom_arcÁþü
ü
çô
¥²
ˆ¥Æ
Š¥çŒôŒŽŒ§¥Œµ¥ç¥

瘥˜
˜²
˜Æ
ç¥§ç  ¥ ÷ç
£¥£÷ç ¦¥¦÷keyÁªªªªªªªªªª ª
ª ª ª
ªªª NO_LABELSÁ» ª½from_const_strÁ½Å ½
into_innerÁ½žªÂ¥Â÷ªÅ¯ªÇ÷ªÉ from_nameÁÊŸÉÌŸÌÉfrom_static_labelsÁÏŸÉfrom_static_nameÁÉfrom_static_partsÁÉbuilderÁÉÐ É name_sharedÁÉlabelsÁÉ
into_partsÁÉžÉwith_extra_labelsÁÉget_hashÁªgenerate_key_hashÁÛSECRETSÁª
hash_bytesÁÝ Ý ª
hash_labelÁàKEYÁàVALUEÁªãä ä ä ä ä ä ªªìï
ªîï ï ï ï ï ï ª ö§÷ª
ùת û¥û÷ª þŸþþ÷ƒƒƒæ œ§˜!Ë»é!ƒŽœŽ§Ž÷ƒœ§÷ƒ
IntoLabelsÁ into_labelsÁƒ˜ô%ƒšô%ƒœ¥œœô%Ÿ Ú¢£TRACEÁ£DEBUGÁ£INFOÁ£WARNÁ£ERRORÁ¢©ErrorÁ©ª¢¬Ã¬æ ¬levelÁ¬ê¬¹ recorderÁ³³³³³cellÁ¸¸¸¸¸¸¸¸¸
UNINITIALIZEDÁ¸ INITIALIZINGÁ¸ INITIALIZEDÁ¸Äæ ÄÆ
Æ£Ätry_loadÁ¸¸³³errorsÁÌÌÌÌSET_RECORDER_ERRORÁÌSetRecorderErrorÁÑ
ѣшÌÕ£ÕßÌØ£Ø×ÌÛ£Û×ÌÞ£³³ôáááááááááá áì²ìÉìÞìregister_counterÁìregister_gaugeÁìregister_histogramÁ³³³³ ³
³ ³ ³
³³³
NOOP_RECORDERÁ³GLOBAL_RECORDERÁ³RecorderÁÿ²ÿÉÿÞÿ½+ÿÕ+ÿë+³
impl_recorderÁ³LocalRecorderGuardÁÃ
prev_recorderÁphantomÁ³Ãæ  ³Ãã ³set_global_recorderÁ£³set_default_local_recorderÁ³with_local_recorderÁ¥impl FnOnce() -> TÁ³
with_recorderÁ¥impl FnOnce(&dyn Recorder) -> TÁ 
GaugeValueÁžAbsoluteÁŸ
Ÿˆž IncrementÁ¢
¢ˆž DecrementÁ¥
¥ˆ¨ƒª×UnitÁ¬CountÁ­
¬PercentÁ¯
¬SecondsÁ±
¬ MillisecondsÁ³
¬ MicrosecondsÁµ
¬ NanosecondsÁ·
¬ TebibytesÁ¹
¬ GibibytesÁ»
¬ MebibytesÁ½
¬ KibibytesÁ¿
¬Ñ Á
¬TerabitsPerSecondÁÃ
¬GigabitsPerSecondÁÅ
¬MegabitsPerSecondÁÇ
¬KilobitsPerSecondÁÉ
¬
BitsPerSecondÁË
¬CountPerSecondÁÍ
 
Ѓ  Ó×
ÕÖØÚ§ÛùÝÌ
ßÌ
áÌ
ãÌ
åÌ
çÌ
éÌ
LKindÁëOwnedÁì
ëBorrowedÁî
ëSharedÁð
LLóƒL LMetadataÁö
öˆöL!L"ûƒL#L$þ×L%L&L'ƒÖçCounterÁinnerÁç ƒçGaugeÁ7ç
ƒç HistogramÁ7烪KeyNameÁ
ˆª
ƒª×ª˜Öªš§ùªªžª ï
ª¢ªKeyÁ¤Ð ¤Û!¤§ª¨×ªªƒƒLabelÁ¬
¬ˆ¬ƒƒ±ƒ³Öƒ µ§ùƒ
¸ƒƒ º×ƒ ¼ï
ƒ
¾¢LevelÁÀ
Àˆ¢¢Äƒ¢¢Ç×¢ÉÖ¢¢ Ì¢
Îï
¢
LevelInnerÁÐTraceÁÑ
Ñ ÐpÔ
Ô ÐInfoÁ×
× ÐWarnÁÚ
Ú Ð—'Ý
Ý ¢ ¢ ტ
¢ä×¢æÖ¢è¢¢ë¢íï
¢ 6ïÃïêïÁ'ï¹ ¢ôÃôƒ¢÷Ã÷×¢úÃúÖ¢ýâÿÃÿ¸RecorderOnceCellÁá'º¸×á NoopRecorderÁ
á׳LOCAL_RECORDERÁ__rust_std_internal_init_fnÁ  Ž__RUST_STD_INTERNAL_VALÁ £?³¥²ÉÞ½+Õ+ë+³š¥š²šÉšÞš½+šÕ+šë+³¢¥¢²¢É¢Þ¢½+¢Õ+¢ë+³ª¥ª²ªÉªÞª½+ªÕ+ªë+




$
$
$
(
)
)
*
,
.
/
0
1
2
3
a
q
v
w
z
{
}
~


ƒ
ƒ



Ž
Ž
Ž



¡
£
¦
¨
©
«
¬
¬
¯
¯
¯
°
²
²
²
³
µ
µ
µ

¸
»
¼
½
Ã
Æ
Ç
È
É
Ì
Ï
Ð
Ñ
Ò
Ö
Ù
Ú
Û
Ü
Ý
ä
æ
í
î
ð
ñ
ò
ô
õ
÷
÷
÷
ù
ù
ù
û
û
û



ˆ
Š




š

œ
Ÿ
¿
Á
Æ
Ô
Õ
Ö
Ø
Ù
Ú
Û
Û
Ý
Ý
à
ä
ä
í
í
ï
ï
÷
÷
ú
ú
ú

Œ
Ž





š
œ
©
«
¯
°
±
Æ
È
Ú
Ú
Ú
Ý
Ý
Ý
í
î
ï
ð
ð
ð
ð
ñ
ñ
ñ
ñ
ò
ò
ò
ò



ƒ
ƒ
ƒ
ƒ












©
«
«
«
Ñ
Ô
Ô
Ô
Ö
Ù
Ù
Û
Û
ô
ü
ÿ
ÿ
ÿ



ˆ
Œ








Ÿ
Ÿ
¡
¡
£
£
©
©
©
«
²
²
´


¹
»
»
»
½
½
¿
¿
Å
È
È
È
Ê
Í
Í
Ï
Ï
â
å
å
å
ç
é
é
ì
ì
î
î
ö
ù
ù
ù
ü





Š
Š
Š








˜
˜
˜
˜




š
œ

ž
Ÿ
Ÿ
Ÿ
Ÿ
 
 
 
 
¡
¡
¡
¡
¤
¥
¦
§
§
§
§
¨
¨
¨
¨
©
©
©
©
¬
­
®
¯
¯
¯
¯
°
°
°
°
±
±
±
±
ìïóÿì¤]¤]V¦]Á‚]üß3ø¤”&ïãO¿cö
ˆ gÙ8*i#mí³¤P¢e¤PØžŸ ’0¡ˆ¢£¯0¤ˆ¥¦Í0§ˆ­ðrÿ%\˜9¿cìPÛ¬­®Ž1¯° 1±²´1³´È1µá1·¸ú1¹º’2»¼¨2½¾¾2¿ÀÔ2 ÁÂÑ 
ÃÄ÷2 ÅÆ•3 Çȳ3
ÉÊÑ3ËÌï3ÍΉ4¹÷<NØÞQŠ ÞQ¿cÞQÞQÐìÞQµßÞQÞQšeÞQ44­Ö­ÖDurationÁ®ÖsecsÁâ}¯ÖnanosÁâ}Zµ–²ª4444444ÛëìíÓ5îïå5ðñú5/8; ™±ØóUŠ óUé![[o^µ L_ÚL`éLû©]OR28¥ØÔVŒ"ÔVšeÔV³[[o^µ L_ÚL`éLû©]OR2ÖWÔVíß[[o^µ L_ÚL`éLû©]OR28[[o^µ L_ÚL`éLû©]OR28ºÔVéÁW ÖWéÁW†J†JK‰Jµ 7ŠJï-7J¤7·0ØQdèWçEçEèEGlobalÁ ¿±‡§í#é[[o^µ L_ÚL`éLû©]OR2û¾¿å5ÀˆÁÂÓ5È¢ÓÛ?'°UFÃ黾¿å5ÀˆÁÂÓ5È¢ÓÛ?'°UFÃWÁWé[[o^µ L_ÚL`éLû©]OR28úHúHßûHÁ‘4Ý­f‰úM÷é[[o^µ L_ÚL`éLû©]OR28
–WªBªBö­BbufÁ÷<®B÷<9)
-ÜnLW™ZàÔV–W ÔV–Wµß™XáX¿cÔVÄcÔV ÔVÌìÔVÛöö÷ 6øˆLùL ؀Ѥt³/åØ_Š _¿c_Ðì_µß___ÁÁ
¥Ø77ç óŒË.ò7p¿c¸`ت7Š7ç}‘ĶÁÀ¿c÷`ØÌ7Ž7çáÓTuPOH¿c¶aì†J†JK‰Jµ 7ŠJï-7J¤7·0ØQdè«`™Zïõaóõaé¸`õaé÷`õaé¶aõaØò7ˆª | £–u¿c‚c‚cše‚cÐì‚cµß‚c‚cíß‚c‚cº‚cé‚c«` ‚c黾¿å5ÀˆÁÂÓ5È¢ÓÛ?'°UFc¿c¤¤ö8¥Ð ª¦Û!ª§§ªXšâ\ŽªÎšØùdµßùdùdùdíßùdùdºùdšeùdÄcùdéùd«`éùdŸÐ쬬­³9®ˆ¯ p†]Ô3<3µß¹f¹f¹fše¹fعf¿c¹fíß¹f¹fº¹fé¹f 8œ§é¹f 8œ 8§ªBªBö­B•]÷<®B÷<9)
-ÜnL¹f™ZÄlÄlIterÁÇlµ ™lÈl
end_or_lenÁ™lÉl_markerÁ™lŒœjSž8¹f 8–WÛÀÀÁ½:ˆ¢ $íN½ˆIQ>ØËiŠ Ëi¿cËiËiÐìËiµßËiËiíßËiËiðËi 8ÛÐÑÒ¹;ÓÔÕpÖרá;ÙÚÛ÷;ÜÝÞ—'ßMD2æØåjŠ åj¿cåjåjºåjÐìåjµßåjåjíßåjåjØïï 6ñê¢òÁ'¢ó¹ ¢tô{EÙ`€Ã¿c´l´lÐì´lµß´l´l¿c…>ƒá'¸º¸>ÞÈŒۀÌì´m ´m¿cÑÑÒè)Ôˆ Ð$·xñªšg£ÄcŠn¾Šn¿cˆº> î_~ó%C
XÿÚnÿ»iÿ 8–WÿžBoxÁ¡ˆˆ¢ˆl }.xÏ«`™ZÿõaŒ"¸-Ú-³Šï-³-%¢\×f0à ¤]”†J ¤]˜†J#ªžÓ¬°ööøú¨¤º¬ÇÀäÐ÷ïØÑ%['¨žÐ¬óë{öª¤¸¬ÄÀáÐôïϬòëúöÃÀàÐÒ¬õëýöÆÀãÐÕ¬ö˜ë¤³¬ÉÀæÐúï׬ö°¬ËÀêÐýïØ¬¬[öžã¤±¬ÌÀëÐÿïÚ¬ö¤µ¬68­ÖÝßáãåçéw[~[줼¬ÎÀíÐ¬èÐ[–[»¡£¦ÂÇ»û¤þ¤Ž¬¬¦³¤ÛѸÊÓ †J˜ªBšÄlœ
©ÀÞÑì
š
¢ª†Jìï
¿c
³t¢e ØÛ`Š # #Ðì>µß 1še>4 "é!.Œ"íß º)é"àd Äc
 Ìì
Á
óð¾ÿŒH´²Hd²H²H
$4¶H
„tW4D¶H ½H` Wp ÇHü›H.

´›H
ž–W¦+ ÈH ËHDÙHL÷H÷H  
$ûH
ÚsW 4,ûH ÿH ìäH
 ӊH
¿p&
€I“I

D˜I  \­I   þ]üŒI. [þ]
  ¹I  
¿IÀInüìFÔüˆH¸üÕHk
[[o^µ L_ÚL`éLû©]OR2þ]dGÿ{…G§ ïíe¼îËè¿*–Wàyày –Wÿ{_ññÿ{ñÍ}}_r PhantomDataÁFu\»Ÿÿ{˜¹Åµ ,ÚnQ•M´»Md»M»M
$4¿M
â|1D¿M ÆM] ¼Um ÐMü¤M.

´¤M
ž¼U£+ ÑM ÔMDâML€N€N  
$„N
×| 1,„N ˆN ìíM
 ”íM¦{j#
‰NœN

D¡N  \¶N   ü•N. [
  ÂN  
ÈNÉNtüÿKÊü‘M¸üÞMk
[[o^µ L_ÚL`éLû©]OR2$§LÅ‚–L§ ïíe¼îËè¿*¼U¬€¬€ ¼UŒÅ‚_ì­~ìł푄_u Û}Fu\»ŸÅ‚¹Àµ ÚaL4žt­~ªt»ü÷s3­~,Žt _,„t /4êt­~öt¼ü¾t8­~,Út³†,Ðt -„·u4¸u­~4Àu­~8  Æu´±u­~ÿÿÿÿÿÿÿÿÿ\®v ëtv ëdéu ë ÉvÊv½üŠuÀóU$¢u³†,˜u­~­~ ­~ ­~û&I™wÌw öTžw—Õ­~ ¨w¯w¾üÞvQ_Dýv­~îv­~r4a—Õ­~€x„÷w ö …x­~ †xx¿üÃwJ_Däw­~Õw­~w4ìxDñx¼ãx ö ùx€yÀü¡x__DÐx­~°x­~D¼x­~ˆ­~|#¥'Qd°ÎüÏÎ<ŒäÎ DäÎ ‘„)
04íÎ
ª¼U:DíÎXÙ„ ôÎ œ÷Îl÷Î _#
*…Ï
»7,…Ï ‰ÏØ
ߤÏÎ
ļUî} ŠÏ üÏÎJ  ˜ÏtºÒ     ÓÒ  ÔÒäüîÍæü¬Î¨
Å‚$™Î Àƒ,θ
¼UºÙ„¹¬€Â‘„¼­~]³†]Å‚ºT borrowed_ptrÁ dÍÓüìÓ<ŒÔ DÔ § ïíe¼îËè¿*¹fV
]4ŠÔ
ª¹fgDŠÔ ¹f ‘Ô œ”Ôl”Ô _#
*¢Ô¨5,¢Ô ¦Ô
 ¤ìÓ
Ĺf~4 §Ô üìÓN
¹f ¹ÔtÛ×     ô×  õ׿ü…ÓðüÉÓ¬
 ù”D²Ó [[o^µ L_ÚL`éLû©]OR2ù”,¨Óø”+ø”+»“* ¹f4Ð’.­~¡³†¡ä•ûSôÖ Û¼†J†JK‰Jµ 7ŠJï-7J¤7·0ØQdèì Ìì™Z¤¯  ÂÉýü‰@¸`Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÆ—e Û¼†J†JK‰Jµ 7ŠJï-7J¤7·0ØQdèï Ìì™Z¤Ò  åìƒü¬@÷`Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙß™e$Â# Û¼†J†JK‰Jµ 7ŠJï-7J¤7·0ØQdèó Ìì™Z¤´#  Ç#Î#üŽ#@¶a$¥#Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙø›eï ¹füÑ!»¹f­~3­~ì$™
$¼
t3C üù&  ž¥¾ü·n‚cÅ‚Àƒ¢Å‚¢Ð >¬“4“Àƒ"
)
ä6L § ­®¿üæHÅ‚$„ ‚cÅ‚ Ž‘ @ $”Ñ £ž-:Gä• £üü)

¼ü
Ò, ¤ ª«Ñü¸sùdłłíä•Ɫ걢ò£žL›±¢Ð ?a#»£ž8@»£žGVÑ®±¢r£ž»£žì¶
-5?
F¼¶
¾Ac ÒÄÕ
$„Õ
n¹f6G ìü¨F 

Óó? íôüÉ«8HÒ2ùd$™Å‚ä•‚cÅ‚zô•.ä•/¨Ð ?Û!B
üÖ !

΅ 
ÛmK- ö  ÷ $ˆ!4Ž!  $!

Ü! ¤ 
!
  ¡!¢!$üú¨ÓüË W ùd‚c$‹ ô•PÀ¡ƒÀ¡Œò•nò•w‚c ô•PöÐ ZÛ!]§ã¬Lè,P÷,Úüº,=PÚ, ùd,Ð, /
D¯5üÅ5  ¬Å54Å5Àƒ(
/dÌ5å 4tÌ5P Ù5t
{DÛ5
à|TÛ5ž ä5Dç5 
"Û èè RapidSecretsÁéseedÁêsecretsÁó tºHn
"{ 
üº56

Tº5
ÝZ ­- ï5  ð5
,†8 Ž8 
­~4™8
4¢8¼¢8
 t©8
æ3
„©8 ¸8ü¿8 „Å8 Å8 dÉ84É8

$Ð8
Ús¹f4,Ð8 Ô8m~  '-Tä8Tü8 „9 Lý8
 S
b´ñ8
 Tñ8
à & †9 ‡9ì˜9$˜9Tª9.
5d9
œÓC5
Ä9 ´9ü‘9$4¿9  Ä9­~$  '­~ J ­~üÖ8v  Ë9lË9_
g ÷þøl¿8  B HV$Ò9 ×9
 Ø9Ûü¬-¬ ü«5­ü‚8Öü•8Ãüà8l#Pú-À¡$Ç-ò•4×-P; ¦‘?š¸HÅ‚BÅ‚KŽ‘Fµ¯¹µ¯Â·¯<è5­~ùä•Þò•ߞɭ~­~Žä•P" ¹f%·¹.­~(­~$PžPžP­~9¥­´µ¯ŠÐ (Û!,§l´â Û!Ê
label_hashÁä»"Ü·¯8AÜ·¯)Û µ¯F·¯WÜ·¯Ìà2
 ´à2
Ê ÷2P7üÂ28Ü·¯dÑ2&,ü<<ƒ=üÓ<8

üÓ<(
¨VF9 Š==Ýü§:æPä:š¸,»:µ¯<É:š¸´µ¯§ž&ã®*WfalseÁfalseÁ ‰>Àƒ,Ž>ÀƒÅ@ìÖ@”Ö@Ö@  #
*dÚ@å  /tÚ@K ç@ n
uDé@é®zTé@ ò@$õ@
 ൯$ 1
 üË@/

TË@³°
a+
ù@
 ú@ ,„A
ü—A ¤—A,—A#
*dAå /tAK ªAo
vD¬Aé®zT¬A µA4¸A൯$1üŒA3

TŒA³°a
+ ¾A ¿AÆA,ÌA
\ÆA  ÐA ÒA
ÓAàüï=äü¥>®üÁ@’ü€ASP¡>·¹Œƒ>Ž‘jŽ‘YPGš¸Hš¸QÅ‚LÅ‚UŽ‘Pµ¯Êµ¯Ó·¯ö@PVš¸Wš¸`Å‚ZÅ‚cŽ‘^µ¯Øµ¯á·¯,¹APdPYµ¯µ¯PËB»4Ë&»ð
E±á·¯lâ·¯â·¯àŒµ¯¬·¯Ë¼×â·¯<Eá·¯/>൯[·¯ˆlá·¯Ìæ?
 ´æ?›¼ ý?P5üÌ?4á·¯d×?&Ì¡@
 ´¡@›¼ ¸@P5ü…@6â·¯d@&­~­~­~­~ä“
«

$¼“
–Ÿ0@ ®
ô±


$¼±
–Ÿ0A Î
ü
C ¬ Ï
Ö
ü´ ¢Š¹fÅ‚Ó Å‚ÀƒÅ‚ÀƒÞÅ‚ÞË8»;vŒ¼ м· À ÍüŸ0¤Ëiåj^,Œ мˆ À žüð0¥Ëi$åj^,„Ü Ð´× À ìüÀ.¦Ëiåj^,„ª д¥ À ºüŽ.§Ëiåj^,Œú мõ À üÝ0¨Ëiåj^,
üÔ# ï öý®üôïï 6ñê¢òÁ'¢ó¹ ¢tô{EÙ`€Å‚4…Ëi,–Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙłł?Ëi4¼Ö*ê~Á'¹ @­~­~­~¬´ Û¼ ÿ/
6|´
õ0Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¸Ø ÈüÒ
„Ò
ŒÄÁ­~
9ü£P  òùÅüþ{´m$”î0î0
UnsafeCellÁð0»Ì-·}—KEüC£âØpâØq¤]¤]V¦]Á‚]üß3ø¤”&­~íÁ­~LÅ‚N"attempted to set a recorder after the metrics system was already initialized"Áùa·e

éa·e
¾á.á.aã.»Ì-IÜžB2®Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ§ ïíe¼îËè¿*ºØùaÕúeÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙãÜ ãÜ—Þ´ƒù`fa®®£°7¨it§ÅLS¶ãÜá`¢faY —Þ—Þùaðe
éaðe
ÐãÜ17ùa¦®e  ޳UœÞ°ß1—Þ a¿eùaíÔeùa!­e  ³Uªá$—Þ a!eO aÀ$eùaÛôe—Þ Ž³Uªáì³Uªá¤V¤„ #¤P.¦  ˆ !Ñ "ˆ'ç~
«Œ #Ûã/P6= !#Ûã/üü RapidHasherÁÖ®±ã®±spongeÁ±ˆ
sponge_lenÁ±…18ph̼à ž %ìP0ÕT7>L ž£%ìP0ÕT7> ž¦%ìP0ÕT7>œ±s ö÷(_3­~:­~AH”Ï %c0Àƒ8?„Ç ¬­(¹f3Àƒ;ÀƒCJ„T ÀÁ$Ëi/åj6=ôú ѹnÒ(Šn3¹n:A>L窃¢³À¡d,
?ü
@»<˜
AÉŒ¼
BáŒÿ
Cù<ÉH
D,•e
EL…‚
F£D­…
G²„€•
HÉtô 
IÞ­
JÌì©íï©ã
Kö
LK¾
<ùR4Kñ
T°V :K³9,™Í¬¡³9­¡ó©â%T¡7< ©ª7, ©Ì7L ©ö8' ¤ò7<,  6D5 ï²ã,D? ÿ‚1$W ¬Kè)„ŠÑàè)Òà¸-”ð)².œû9 Õ.ÔŸD ÷.œ…H ´/lŸM €0T€žK½:,_À²º>d»óº>ˆóü} ü!  A lightweight metrics facade.Á" úü&w t The `metrics` crate provides a single metrics API that abstracts over the actual metrics implementation. LibrariesÁüžn k can use the metrics API provided by this crate, and the consumer of those libraries can choose the metricsÁü: 7 implementation that is most suitable for its use case.ÁÈ ú # OverviewÁüÛM J `metrics` exposes two main concepts: emitting a metric, and recording it.Á© úì­  ## Metric types, or kindsÁüËc ` This crate supports three fundamental metric types, or kinds: counters, gauges, and histograms.Á¯ ú„³
### CountersÁüÄw t A counter is a cumulative metric that represents a monotonically increasing value which can only be increased or beÁü¼v s reset to zero on restart. For example, you might use a counter to represent the number of operations performed, orÁü³, ) the number of errors that have occurred.Áà úüä* ' Counters are unsigned 64-bit integers.Á úü“P M If you have a value that goes up and down over time, consider using a gauge.Áä ú ### GaugesÁü÷H E A gauge is a metric that can go up and down, arbitrarily, over time.ÁÀ úüÄt q Gauges are typically used for measured, external values, such as temperature, throughput, or things like currentÁü¹ t q memory usage. Even if the value is monotonically increasing, but there is no way to store the delta in order toÁü®
Z W properly figure out how much to increment by, then a gauge might be a suitable choice.Á úü u r Gauges support two modes: incremental updates, or absolute updates. This allows callers to use them for externalÁüƒ W T measurements -- where no delta can be computed -- as well as internal measurements.ÁÛ úüß - * Gauges are floating-point 64-bit numbers.Á
ú”‘
 ### HistogramsÁü¤
v s A histogram stores an arbitrary number of observations of a specific measurement and provides statistical analysisÁü›w t over the observed values. Typically, measurements such as request latency are recorded with histograms: a specificÁü“T Q action that is repeated over and over which can have a varying result each time.Áè úüìt q Histograms are used to explore the distribution of values, allowing a caller to understand the modalities of theÁüáx u distribution, such as whether or not all values are grouped close together, or spread evenly, or even whether or notÁüÚ- * there are multiple groupings or clusters.Áˆ úüŒt q Colloquially, histograms are usually associated with percentiles, although by definition, they specifically dealÁür o with bucketed or binned values: how many values fell within 0-10, how many fell within 11-20, and so on and soÁüôw t forth. Percentiles, commonly associated with "summaries", deal with understanding how much of a distribution fallsÁüìx u below or at a particular percentage of that distribution: 50% of requests are faster than 500ms, 99% of requests areÁüå/ , faster than 2450ms, and so on and so forth.Á úü™x u While we use the term "histogram" in `metrics`, we enforce no particular usage of true histograms or summaries. TheÁü’x u choice of output is based entirely on the exporter being used to ship your metric data out of your application. ForÁü‹v s example, if you're using [metrics-exporter-prometheus], Prometheus supports both histograms and summaries, and theÁü‚v s exporter can be configured to output our "histogram" data as either. Other exporters may choose to stick to usingÁüùG D summaries, as is traditional, in order to generate percentile data.ÁÁ úüÅ2 / Histograms take floating-point 64-bit numbers.Áø ú ## EmissionÁŒ úüw t Metrics are emitted by utilizing the emission methods. There is a macro for registering and returning a handle forÁüˆ!  each fundamental metric type:Áª úü®6 3 - [`counter!`] returns the [`Counter`] handle thenÁüå8 5 - [`Counter::increment`] increments the counter.Áüž1 . - [`Counter::absolute`] sets the counter.ÁüÐ2 / - [`gauge!`] returns the [`Gauge`] handle thenÁüƒ4 1 - [`Gauge::increment`] increments the gauge.Áü¸4 1 - [`Gauge::decrement`] decrements the gauge.Áüí( % - [`Gauge::set`] sets the gauge.Áü–( % - [`histogram!`] for histograms thenÁü¿5 2 - [`Histogram::record`] records a data point.Áõ úüùu r Additionally, metrics can be described -- setting either the unit of measure or long-form description -- by usingÁäï  the `describe_*` macros:ÁŒ! úü!( % - [`describe_counter!`] for countersÁü¹!$ ! - [`describe_gauge!`] for gaugesÁüÞ!, ) - [`describe_histogram!`] for histogramsÁ" úü"x u In order to register or emit a metric, you need a way to record these events, which is where [`Recorder`] comes intoÁLˆ#  play.Á# ú„–#
## RecordingÁ§# úü«#v s The [`Recorder`] trait defines the interface between the registration/emission macros, and exporters, which is howÁü¢$v s we refer to concrete implementations of [`Recorder`]. The trait defines what the exporters are doing -- recordingÁü™%u r -- but ultimately exporters are sending data from your application to somewhere else: whether it be a third-partyÁü&c ` service or loggin
I¡ I?ü I@»
IAÉ IBáICùIDIEIF£IG²IHÉÿHIÞýHJÌûHì©íúHï©ã
ùHKö
øHK¾
÷H4Kñ
öH :K³9õH¬¡³9I­¡ôHó©â%óH¡7óH©ª7óH©Ì7óH©ö8óH¤ò7óH 6óHï²ã,óHÿ‚1óH¬Kè)óHÑàè)IÒà¸-óH².òH Õ.ñH ÷.ðH ´/ïH €0îHžK½:íHÀ²º>íHóº>Iˆó»K¾KÁK|{ ü" Atomic types used for metrics.Á#úü'_\ As the most commonly used types for metrics storage are atomic integers, implementations ofÁü‡`] `CounterFn` and `GaugeFn` must be provided in this crate due to Rust's "orphan rules", whichÁüèIF disallow a crate from implementing a foreign trait on a foreign type.Á²úü¶\Y Further, we always require an atomic integer of a certain size regardless of whether theÁü“XU standard library exposes an atomic integer of that size for the target architecture.Áìúüða^ As such, the atomic types that we provide handle implementations for are publicly re-exporterÁüÒ*' here for downstream crates to utilize.Á<‰{ ®D•¼À«æÂÌ
Nì©íNï©Ü‚Sä™E,¼CNFN7N:NäÚãO
íî
üýL€² ²ãOP  Š
$‹»,‘ôä³ ³ãOP  ð
»ÔÇãO
ðñò
üè´ ´ãOÕT  õ
»
<closure_kind>Á<closure_signature>Á<upvars>Á
ÅUPÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙP ÕTüâ  µ µãOÕT  ï 
 » ÷‹Œ¬ŒÅUÏ¡ŽÌÜß ãOÕT  ã
»T“{ 4—{ 4:¬ž4¢eËä\-œoK[Ì
D×X<:|?.¬¿üQ# An allocation-optimized string.Áuúüy`] `SharedString` uses a custom copy-on-write implementation that is optimized for metric keys,ÁüÚ[X providing ergonomic sharing of single instances, or slices, of strings and labels. ThisÁü¶c` copy-on-write implementation is optimized to allow for constant-time construction (using staticÁüšda values), as well as accepting owned values and values shared through [`Arc<T>`](std::sync::Arc).Áÿúüƒb_ End users generally will not need to interact with this type directly, as the top-level macrosÁüæHE (`counter!`, etc), as well as the various conversion implementationsÁü¯a^ ([`From<T>`](std::convert::From)), generally allow users to pass whichever variant of a valueÁü‘-* (static, owned, shared) is best for them.ÁU[[o^µ L_ÚL`éLû©]OR2Züë# Key-specific hashing algorithm.Áúü“_\ Deprecated in favor of a no-hash based implementation in `metrics-util::common::KeyHasher`.Áóúü÷\Y This hasher operates in two modes. When only `write_u64` is called — the path taken byÁüÔ`] [`Key`][crate::Key]'s [`Hash`][std::hash::Hash] impl, which writes the pre-computed key hashÁüµ li via `write_u64(self.hash)` — `finish` returns that value verbatim, matching `Hashable::hashable(&key)`Áü¢
a^ and the no-op `metrics_util::common::KeyHasher`. When arbitrary bytes are written via `write`Áü„ a^ (or any of the typed `write_*` methods that route through `write`), this hasher falls back toÁüæ \Y hashing with rapidhash - <https://github.com/hoxxep/rapidhash> - preserving the previousÁüà gd byte-hashing behavior for callers like `metrics_util::DefaultHashable<H>` in `metrics-util 0.19.x`.Á0.24.4Á.Use `metrics-util::common::KeyHasher` instead.ÁüÑ
0ü«
XFYâžìž¤PgÙ8*i#míÛã¤P¼^…YâžìžnÛã¤P
t™âžìžŸÛ㜫Ûã'ç~
« !PÛã!"üüËäÖ®±ã®±ù䱈‹å±…18ph̯°±²ÛãÛãÛã_•_
ª_­_PÛãé£ÚP«_°_
!Å_È_œ¢ÛãϤ¤êœ¢ü™"¤P$Àc$üÂBÅ·¸¹ ·¤P ¸ c cˆ¢cµ
 `£c•] `àB¤GS
¹Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ È—' O˜éBL# É#
$± ÐÔá¤P&´&¤‚<…¤P%%
&Ìà¤P()*£e¤e¨e*()¼€º º¤PP' Š'
($‹üÓ!»¼ »¤P ¼¦‘' Ü'
)bytesÁ,çü±L´½ ½¤PP' ¾'
*´ ÉìP,ü¾ -ü„ 52 Updates an input value based on this gauge value.ÁdÅ ¾ ¾ìPÕTÕT+ Ò +
,inputÁ,Ù Lí.ÞQ./0123üª/$üý.(% Gets the string form of this `Unit`.Á4±/¿ ¿ÞQ - ¸/-
.$¹/üÑ80ü½674 Gets the canonical string label for the given unit.Áù6úü7YV For example, the canonical label for `Seconds` would be `s`, while for `Nanoseconds`,Á¬ß7 it would be `ns`.Áù7úü8KH Not all units have a meaningful display label and so some may be empty.Á”Ø8À ÀÞQ¢­- ë8-
/$ì8ü÷?+üÑ>NK Converts the string representation of a unit back into `Unit` if possible.Á¤?úü¬?FC The value passed here should match the output of [`Unit::as_str`].Á\þ?Á ÁÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÞQ- @-
0¾ Š@üÐH#ü‹H@= Whether or not this unit relates to the measurement of time.Ál×H ÂÞQ- åH-
1$æHüªJ#üåI@= Whether or not this unit relates to the measurement of data.Ál±Jà ÃÞQ- ¿J-
2$ÀJüÂN(ü÷MFC Whether or not this unit relates to the measurement of data rates.Á”ÉNÄ ÄÞQ- ÜN-
3$ÝNŒïRüìPA> An object which can be converted into a `f64` representation.Á®Qúü²Q[X This trait provides a mechanism for existing types, which have a natural representationÁüŽR`] as a 64-bit floating-point number, to be transparently passed in when recording a histogram.Á—e44ÎìüïRm4£¹£¹555ÌÁSü‡S52 Converts this object to its `f64` representation.ÁDÄS«¹ÕT44
5«¹$ÍS¤ÞSÕT757ÄùSDüSÕTÕT66
7$…TüªT%ÞT959ÄÖTDÙTÞTÕT88
9$âTü©V.üÂUWT Helper method to allow monomorphization of values passed to the `histogram!` macro.Á4 Vg§ÕT§;;Íìž½ »V4ž½<¾V
:ž½»,ÇV#%¬òVDÿV ˆW ÐX ŽW šW, W W —W, W8´W& ”W8´•W$ ˜W
™W*œW ŸW ÍX, ©W ªW ÆX8$¸W8¾
<½W8
ÅW, ÉW8´ÊW ÍW ¼X8 ßW8Ì
DâW êW ïW8$ëW(ñW8°ôW øW ®X8°ŽX'X8÷$“X —X œX8$˜X
ÇX% ÎXÕØTŸ{ 4£{ Ì
4
(|
j 9
½
 ?
Y
 , @
8ê4A
& G
8$H
$ L
, N
8Á',O
& T
8$U
*[
 ^
º
 _
¹
84i
8METADATAÁDp
& x
, z
8,{
'
8 6D
 Š
:7<
 

, 
8,—
'œ
8 6
'¦
8æ ¨
 «
 
, ¹
8ê
$ À
, Î
8Á'
$ Ô
'â
8í
'è
8³

'ð
8¬
'ø
8Û
 þ

'ÿ
8í$
'
8¹ \‡
 
 

$ 
% ¡
 «
8‘Á
% »
ӧ

(|Ï
°l ò
é
 ø
ù
*û
 þ

7ˆ¬4ˆ
% 
 š
°
, 
8headÁ
&  
8¯¡
, ¤
 ¥
®
, ¦
8tailÁ
& «
8¯¬

¯
*²
 µ
æ
7¬4¿
Æ
, È
8
'Î
8ü
 Õ
 Ö
à
, ×
 Ø
Þ
, Ù
8ÍÅ

ß
% ç
¤‹

(|û
n  
µ
 ¦
µ
, §
8Ð 
& ¬
8«
*·
 º
¥
 »
¤
8
8
METRIC_KEYÁ
& Ö
, Ø
8
'Þ
8ö8à
ä
, æ
8
'ì
8ö8î
'ñ
8€!„ó
 ƒ

, 
8Ð $…
% Š
 
8›ÈT•
% ¦
 ¬
·
, ­
8Ð 
& ²
8
*¹
 ¼
è
, Æ
8
'Ì
8ö8Î
'Ñ
8­ 
 Ü
â
, Ý
8Ð 
% é
 ï
®
 , ð
8Ð 
& õ
8«
$ ý
, ÿ
 
«
 , 
8 label_keyÁL
& 
8«
*
, 
8 label_valueÁ\˜
& £
8«
$ ¬

­
*°
 ³
Ê
 ´
É
8
8LABELSÁ
& Ë
 Í
û
 , Î
8
'Ô
8³9
% Û
, Ý
8
'ã
8ü
 ê
 ë
ú
, ì
 í
ø
, î
8ÉË

ù
 ý
 ÿ
Õ
, 
 Ž
É
, 
8,
'
8³9,—
'œ
8˜!Œž
 ¯
È
, °
8ÉË
$ º
, ¼
8ýË
$ Ê

Ë
% Ö
8
8›È
& ñ
, ó
8
'ù
8ö8û
ÿ
, 
8,
'
8ö8
'Œ
8˜!ŒŽ
 Ÿ
®
,  
8Ð 
$ ¥
 §
8ÞÌ
% ¯
 ¹
8›È
% Ë
 Ñ
 , Ò
8Ð 
& ×
8
$ Ü
, Þ
 ß
Š
 , à
8ÉË
& ê
8«
*ó
, ö
8ýË
&
8«
$

Œ
*

ô

ó
84
8ÞÌ
& ª
 ¬
Ú
 , ­
8
'³
8³9
% º
, ¼
8
'Â
8ü
 É
 Ê
Ù
, Ë
 Ì
×
, Í
8ÉË

Ø
 Ü
 Þ
´
, ì
 í
¨
, î
8
'ô
8³9
'û
8˜!Œý
 Ž
§
,
8ÉËL
$
,
8ýË
$ ©

ª
% µ
, ¿
8
'Å
8ö8Ç
'Ê
8Þ ”Ì
 Þ
í
, ß
8Ð
$ ä
 æ
8ÞÌ
% õ
 û
±
 , ü
8Ð
&
8$
$
, ˆ

®
 , Š
8ÉËL
&
8$•
*š
,
8ýË
& ©
8
$ ¯

°
*³

Ø
 ·
×
8Á
8Û!
Ì
'Î
8ÀÐ
'Ó
8ÁÕ
 Ø
 Ù
¡
, ç
 è
, é
8
'ï
8³9
'ö
8æ ø
 û
, ü
8ÉË
$
, ˆ
8ýË\‰
$

% ¢
, ¬
8,­
'²
8ö8´
'·
8
 Ã
Ñ
, Ä
8Ð
$ É
8Û!
% Ù
 ß
ø
 , à
8Ð
& å
8
$ ê
, ì
8Û!
& ó
8
*ú
 ý
³
,
8,ˆ
'
8ö8
'
8T”
 ž
­
, Ÿ
8Ð $ 
$ ¤
, ¦
8Û!
ô¯
ü×
W
TInternal macro to register metric description when provided by metric creation macroÁ
(|Ç
£u Î
Ð
 
è
 , ˆ
8methodÁ4‰
& 
8¼,
$ 
8$__internal_metric_description_none__Áü—$
$ »
8__internal_metric_unit_none__Áì½
$ Ú
, Ü
 Ý
æ
, Þ
8restÁ
& ã
8¯ä

ç
*ê
 í
ð
 î
ï
% ñ
 ®
ü
, ¯
8åÝ
& 
8¼
$ ¼
8Þü¾$
$ â
, ä
8ø
& é
8
$ î
, ð
 ñ
ú
, ò
8ß
& ÷
8¯ø

û
*þ
 
Ù
 
Ø
8¢
 
 š
Ñ
74'unit:' requires to specify parameter 'description:'Áü›6
% Ò
% Ú
 þ
Ê
, ÿ
8åÝ4€
& 
8¼,‡
$ Œ
, Ž
8 descriptionÁ\
& š
8$
$ Ÿ
8ÆÞì¡
$ ¾
, À
8Ð 
& Å
8
*Ì
 Ï
Ø
 Ð
×
, Ú
8
'à
8´/
 ï
Ð
 ð
8á'
 ù
 û
Ï
8á'D‰
 
, 
8åÝ4“
 
Ä
'«
8í$­
'±
8å
'º
8
'À
8intoÁ
 Æ
Ì
, Ç
8Ð 
$ Í
'ß
8í
'å
8³

'í
8¬
'õ
8©
$ û
'
8í$
'
8å<•
'œ
8
'¢
8³å
 ¨
µ
, ©
8çâ
$ 
% Å
% Ñ
% Ù
 ÿ
¸
, 
8åÝ4
& 
8¼,ˆ
$ 
, 
8çâ\
& 
8
$  
, ¢
8ø
& §
8
$ ¬
, ®
8Ð 
& ³
8$´
*º
 ½
Í
 ¾
Ì
, È
8
'Î
8´/
 Ý
Å
 Þ
8á'
 ç
 é
Ä
8á'
 ÿ
, 
8åÝ4
 
¹
'
8í$
'Ÿ
8å
'¨
8
'®
8³å
 ´
º
, µ
8Ð 
$ »
'Í
8í
'Ó
8³

'Û
8¬
'ã
8Û
 é
ï
, ê
8ø
$ ð
'
8í$„
'ˆ
8å
'
8$“
'
8³å$™
 
ª
, ž
8çâ
$ «
% º
% Æ
% Î
ôò

(|â
²u 
œ.
 Õ
º
0, ß
8£
& è
8¼
$ î
, ø
8registerÁ
& 
8¼,
$ 
8çâ\

, Ÿ
8çâ\ 
& «
8¯¬
$ ®
8ø$¸
½
, ¿
8ø
& Ä
8¯Å
$ Ç
8ê
Ø
, Ú
8_oldÁ
& ß
8
$ ä
8Á'
ô
, ö
8Á'
& ü
8
% 
8ê4
& 
, 
8ê4”
& š
8$
$ Ÿ
, ©
 ª
³
, «
8ß
& °
8¯±

´
*¼
 ¿
³
, É
8
'Ï
8áŒÑ
 â
 ã
­
, ñ
8£
$ ú
, ˆ
8îíD‰
$ 
8çâ
«
, ­
8çâ
$ ¹
8ø
Ì
, Î
8ø
$ Ó
8ê
è
, ê
8ê
$ ñ
8Á',ÿ

, 
8Á',ˆ
% 
, 
 œ
¢
, 
8ß

£
% ´
 ö
Ú
0, 
8£D
& 
8¼
$ 
, 
8îí
& ¢
8¼
$ ¨
8çâ
¾
, À
8çâ
& Ì
8¯Í
$ Ï
8ø
Þ
, à
8ø
& å
8¯æ
$ è
8ê
ù
, û
8ê
& 
8
$ 
8Á',

, 
8¯ï
& ž
8
% £
8Á',­
& ²
, ´
8Á'
& º
8
$ ¿
, É
 Ê
Ó
, Ë
8ß
& Ð
8¯Ñ

Ô
*Ü
 ß
Ó
, é
8
'ï
8áŒñ
 
 ƒ
Í
, 
8£D
$ š
, ¨
8îí
$ ±
8çâ\¿
Ë
, Í
8çâ
$ Ù
8ø
ì
, î
8ø
$ ó
8ê4
ˆ
, Š
8ê4
$
8Á'
¥
, §
8Á'
% ­
, »
 ¼
Â
, ½
8ß

Ã
% Ô
 ¢!
#
0, ¬!
8£D­!
& µ!
8¼,¶!
$ »!
, Å!
8îíDÆ!
& Î!
8¼,Ï!
$ Ô!
8çâ\Þ!
ê!
, ì!
8oldÁí!
& ð!
8¯ñ!
$ ó!
8ø$ý!
"
, „"
8ø$…"
& ‰"
8¯Š"
$ Œ"
8ê4"
"
, Ÿ"
8ê4 "
& ¦"
8$§"
$ «"
8Á',µ"
»"
, ½"
8Á',¾"
& Ã"
8$Ä"
% È"
8çâ\Ò"
& Ý"
, ß"
8çâ\à"
& ë"
8$ì"
$ ð"
, ú"
 û"
„#
, ü"
8ß$ý"
& #
8¯#

…#
*#
 #
„%
, š#
8,#
' #
8ጢ#
 ³#
 ´#
þ$
, Â#
8£DÃ#
$ Ë#
, Ù#
8îíDÚ#
$ â#
8çâ\ð#
ü#
, þ#
8çâ\ÿ#
$ Š$
8ø$˜$
$
, Ÿ$
8ø$ $
$ ¤$
8ê4²$
¹$
, »$
8ê4¼$
$ Â$
8Á',Ð$
Ö$
, Ø$
8Á',Ù$
% Þ$
, ì$
 í$
ó$
, î$
8ß$ï$

ô$
% …%
 Å%
§'
0, Ï%
8£DÐ%
& Ø%
8¼,Ù%
$ Þ%
, è%
8îíDé%
& ñ%
8¼,ò%
$ ÷%
8çâ\&
&
, &
8çâ\&
& &
8¯œ&
$ ž&
8ø$¨&
­&
, ¯&
8©û°&
& ³&
8¯´&
$ ¶&
8ê4À&
Ç&
, É&
8ê4Ê&
& Ð&
8$Ñ&
$ Õ&
8Á',ß&
å&
, ç&
8Á',è&
& í&
8$î&
% ò&
8ø$ü&
& €'
, '
8ø$ƒ'
& ‡'
8$ˆ'
$ Œ'
, '
 —'
 '
, ˜'
8ß$™'
& '
8¯ž'

¡'
*©'
 ¬'
 )
, ¶'
8,·'
'¼'
8ጾ'
 Ï'
 Ð'
š)
, Þ'
8£Dß'
$ ç'
, õ'
8îíDö'
$ þ'
8çâ\Œ(
˜(
, š(
8çâ\(
$ ¦(
8ø$´(
¹(
, »(
8ø$¼(
$ À(
8ê4Î(
Õ(
, ×(
8ê4Ø(
$ Þ(
8Á',ì(
ò(
, ô(
8Á',õ(
% ú(
, ˆ)
 ‰)
)
, Š)
8ß$)

)
% ¡)
 Ù)
Õ+
0, ã)
8£Dä)
& ì)
8¼,í)
$ ò)
, ü)
8îíDý)
& …*
8¼,†*
$ *
8çâ\•*
¡*
, £*
8çâ\¤*
& ¯*
8¯°*
$ ²*
8ø$¼*
Á*
, Ã*
8ø$Ä*
& È*
8¯É*
$ Ë*
8ê4Õ*
Ü*
, Þ*
8ê4ß*
& å*
8$æ*
$ ê*
8Á',ô*
ú*
, ü*
8Á',ý*
& +
8$ƒ+
% ‡+
, +
8Ð $+
& +
8$—+
, œ+
 +
È+
$ ž+
,  +
8ÉËL¡+
& ª+
8$«+
, °+
 ±+
Æ+
*²+
, µ+
8ýË\¶+
& Á+
8$Â+
- Ç+

É+
, Ë+
 Ì+
Î+
$ Í+
- Ï+
*×+
 Ú+
™.
 Û+
˜.
 , å+
8,æ+
'ë+
8ÉŒí+
 þ+
 ÿ+
¥,
 , €,
8£D,
$ ‰,
, ,
8çâ\Œ,
$ —,
, ™,
8ø$š,
$ ž,
,  ,
8Ð $¡,
% ¦,
8±,
8
metric_keyÁTµ,
À,
, Â,
8,Ã,
'È,
8»<Ê,
 Ñ,
 Ò,
ý,
, Ó,
8Ð $Ô,
, Ù,
 Ú,
û,
$ Û,
, Ý,
8ÉËLÞ,
, è,
 é,
ù,
*ê,
, í,
8ýË\î,
- ú,

ü,
% þ,
8ˆ-
8ÚDŒ-
•-
, —-
8,˜-
'-
8¡dŸ-
 «-
 ¬-
¼-
, ­-
8ê4®-
$ ´-
, ¶-
8Á',·-
% ½-
, È-
8,É-
'Î-
8´/lÐ-
 Ý-
.
 Þ-
8á'Dß-
 ç-
8á'Dé-
 ñ-
, ò-
8îíDó-
 û-
.
 ü-
8Tý-
$ ‡.
8ÚD‰.
% š.
¤¼H
ÄŸ.
 Registers a counter.Á¸.
úü¼.t
q Counters represent a single monotonic value, which means the value can only be incremented, not decremented, andÁü±/4
1 always starts out with an initial value of zero.Áæ/
úüê/v
s A handle to the counter -- [`Counter`](crate::Counter) -- is returned by this macro and can be held on to in orderÁüá0)
& to amortize the cost of registration.Á1
ú\1
 # UsageÁ1
úüŸ19
6 `counter!([named_param: value,] <$name,> [$labels,])`ÁÙ1
úüÝ14
1 Only a name is required to initialize a counter.Á2
úü–2p
m Named parameters must always come before the counter name, and the counter name must come before any labels.Á‡3
úÔ‹3
 ## Required parametersÁ¦3
úüª3z
w - `$name` - Name of the counter. Must be a string literal or an expression that results in `String` or `&'static str`.Á¥4
ú¼©4
 ## Named ParametersÁÁ4
úüÅ4]
Z The following parameters can be provided in any order relative to other named parameters:Á£5
úü§5S
P - `target:` - Module path of the counter. Defaults to `::core::module_path!()`.Áüû5D
A - `level:` - Verbosity level of the counter. Defaults to `INFO`.ÁüÀ6\
Y - `description:` - Description of the counter. If specified, `$name` will be used twice.Áü7k
h - `unit:` - Unit of measurement of the counter. Description must be provided in order to specify units.Á‰8
úl8
## LabelsÁ8
úüŸ8/
, Labels can be passed as _one_ of following:ÁÏ8
úüÓ8™
 - Arbitrary number of `<key> => <value>` where `key` and `value` can be a string literal or an expression that results in `String` or `&'static str`.Áüí92
/ - Static reference to collection of **Label**.Áü :N
K - Collection/iterator that implements [IntoLabels](trait.IntoLabels.html).Áï:
úló:
# ExampleÁ<;
äªì‰;
 # #![no_implicit_prelude]Áü§;
 # use ::std::convert::From;ÁÄÇ;
 # use ::std::format;Áüà;
 # use ::std::string::String;ÁÜ<
 # use metrics::counter;ÁŒ<
 # fn main() {Á¼¯<
 // A basic counter:矂</
, let counter = counter!("some_metric_name");ÁÌ÷<
 counter.increment(1);Á=
úü•=W
T // Specifying labels inline, including using constants for either the key or value:Áüí=D
A let counter = counter!("some_metric_name", "service" => "http");Á̲>
 counter.absolute(42);ÁÌ>
úüÐ>2
/ const SERVICE_LABEL: &'static str = "service";Áüƒ?.
+ const SERVICE_HTTP: &'static str = "http";Áü²?N
K let counter = counter!("some_metric_name", SERVICE_LABEL => SERVICE_HTTP);ÁÜ@
 counter.increment(123);Á@
úü¡@a
^ // We can also pass labels by giving a vector or slice of key/value pairs. In this scenario,ÁüƒAO
L // a unit or description can still be passed in their respective positions:ÁäÓA
 let dynamic_val = "woo";ÁüðA@
= let labels = [("dynamic_key", format!("{}!", dynamic_val))];Áü±B8
5 let counter = counter!("some_metric_name", &labels);ÁêB
úüîB`
] // As mentioned in the documentation, metric names also can be owned strings, including onesÁüÏC;
8 // generated at the callsite via things like `format!`:Áü‹D6
3 let name = String::from("some_owned_metric_name");ÁüÂD!
 let counter = counter!(name);ÁäD
úüèD=
: let counter = counter!(format!("{}_via_format", "name"));Á¦E
úüªEc
` // Using all of the above, we can customize the counter's description, unit, target, and level:ÁÜŽF
 let counter = counter!(矻F%
" description: "super counter",ÁüÐF#
unit: metrics::Unit::Bytes,ÁüôF'
$ target: ::core::module_path!(),ÁüœG$
! level: metrics::Level::INFO,ÁÄÁG
 "super_counter",ÁìÚG
 "label1" => "value1",ÁäøG
 "label2" => "value2"Á4•H
 );Á<œH
 # }Á<¤H
äª(|¬H
Áu ÑH
¼K
 ×H
åH
, ØH
 ÙH
ãH
, ÚH
8˜«,ÛH
& àH
8¯áH

äH
*çH
 êH
¹K
, ôH
8,õH
'úH
8áŒüH
 I
 ŽI
³K
!8²„œI
$ ¬I
8½+„ºI
$ ÊI
8çâ\ØI
äI
8ÞüæI$
$ ŠJ
8ø$˜J
J
8ÆÞìŸJ
$ ¼J
8ê4ÊJ
ÑJ
'ÓJ
8í$ÕJ
'ÙJ
8¹ \ÛJ
 æJ
 çJ
èJ
$ éJ
8Á',÷J
ýJ
, ÿJ
8,€K
'…K
8½:,‡K
'ŒK
8í&$ŽK
% K
,  K
 ¡K
¨K
, ¢K
8˜«,£K

©K
% ºK
”ˆe
´¿K
 Registers a gauge.ÁÖK
úüÚKt
q Gauges represent a single value that can go up or down over time, and always starts out with an initial value ofÁLÏL
 zero.ÁÙL
úüÝLs
p A handle to the gauge -- [`Gauge`](crate::Gauge) -- is returned by this macro and can be held on to in order to矄M&
# amortize the cost of registration.ÁøM
ú\üM
Ö”ˆN
úüŒN7
4 `gauge!([named_param: value,] <$name,> [$labels,])`ÁÄN
úüÈN2
/ Only a name is required to initialize a gauge.ÁûN
úüÿNl
i Named parameters must always come before the gauge name, and the gauge name must come before any labels.ÁìO
úÔðO
•—P
úüPx
u - `$name` - Name of the gauge. Must be a string literal or an expression that results in `String` or `&'static str`.ÁˆQ
ú¼ŒQ
Ô˜¤Q
úü¨Q]
†R
úüŠRQ
N - `target:` - Module path of the gauge. Defaults to `::core::module_path!()`.矆RB
? - `level:` - Verbosity level of the gauge. Defaults to `INFO`.ÁüŸSZ
W - `description:` - Description of the gauge. If specified, `$name` will be used twice.ÁüúSi
f - `unit:` - Unit of measurement of the gauge. Description must be provided in order to specify units.ÁäT
úlèT
öT
úüúT/
¨ªU
úü®U™
îüÈV2
’ŸüûVN
ΟÊW
úlÎW
± <ÜW
äªìäW
Ô ü‚X
šģX
£¡ü¼X
û ÌÜX
 # use metrics::gauge;ÁŒöX
’¢¬ˆY
 // A basic gauge:ÁüžY+
( let gauge = gauge!("some_metric_name");ÁÌÊY
 gauge.increment(1.0);ÁäY
úüèYW
´£üÀZ@
= let gauge = gauge!("some_metric_name", "service" => "http");ÁÔ[
 gauge.decrement(42.0);Áœ[
úü [2
‘¥üÓ[.
Í¥ü‚\J
G let gauge = gauge!("some_metric_name", SERVICE_LABEL => SERVICE_HTTP);ÁÔÍ\
 gauge.increment(3.14);Áè\
úüì\a
§üÎ]O
ø§äž^
Шü»^@
ö¨üü^4
1 let gauge = gauge!("some_metric_name", &labels);Á´±_
 gauge.set(1337.0);ÁÈ_
úüÌ_`
Žªü­`;
øªüé`6
½«ì a
 let gauge = gauge!(name);Á¾a
úüÂa9
6 let gauge = gauge!(format!("{}_via_format", "name"));Áüa
úü€ba
^ // Using all of the above, we can customize the gauge's description, unit, target, and level:Á¼âb
 let gauge = gauge!(Áüúb#
description: "super gauge",Áüžc#
Ç®üÂc'
ô®üêc$
¥¯´d
 "super_gauge",Áì¦d
ó¯äÄd
™°4ád
¾°<èd
Ͱ<ðd
äª(|ød
Ðu e
h
 ¡e
¯e
, ¢e
 £e
­e
, ¤e
8˜«,¥e
& ªe
8¯«e

®e
*±e
 ´e
ÿg
, ¾e
8,¿e
'Äe
8áŒÆe
 ×e
 Øe
ùg
!8Étæe
$ ôe
8Õ+tf
$ f
8çâ\žf
ªf
8Þü¬f$
$ Ðf
8ø$Þf
ãf
8ÆÞìåf
$ g
8ê4g
—g
'™g
8í$g
'Ÿg
8¹ \¡g
 ¬g
 ­g
®g
$ ¯g
8Á',½g
Ãg
, Åg
8,Æg
'Ëg
8½:,Íg
'Òg
8í&$Ôg
% Øg
, æg
 çg
îg
, èg
8˜«,ég

ïg
% €h
´ø
Ô…h
 Registers a histogram.Á h
úü¤ht
q Histograms measure the distribution of values for a given set of measurements, and start with no initial values.Á™i
úüiv
s A handle to the histogram -- [`Histogram`](crate::Histogram) -- is returned by this macro and can be held on to inÁü”j/
, order to amortize the cost of registration.ÁÄj
ú\Èj
Ö”Ôj
úüØj;
8 `histogram!([named_param: value,] <$name,> [$labels,])`Á”k
úü˜k6
3 Only a name is required to initialize a histogram.ÁÏk
úüÓkt
q Named parameters must always come before the histogram name, and the histogram name must come before any labels.ÁÈl
úÔÌl
•—çl
úüël|
y - `$name` - Name of the histogram. Must be a string literal or an expression that results in `String` or `&'static str`.Áèm
ú¼ìm
Ô˜„n
úüˆn]
æn
úüênU
R - `target:` - Module path of the histogram. Defaults to `::core::module_path!()`.ÁüÀoF
C - `level:` - Verbosity level of the histogram. Defaults to `INFO`.Áü‡p^
[ - `description:` - Description of the histogram. If specified, `$name` will be used twice.Áüæpm
j - `unit:` - Unit of measurement of the histogram. Description must be provided in order to specify units.ÁÔq
úlØq
æq
úüêq/
¨šr
úüžr™
îü¸s2
’ŸüësN
Οºt
úl¾t
± <Ìt
äªìÔt
Ô üòt
šēu
£¡ü¬u
û ìÌu
 # use metrics::histogram;ÁŒêu
’¢Ìüu
 // A basic histogram:Áü–v3
0 let histogram = histogram!("some_metric_name");ÁÔÊv
 histogram.record(1.0);Áåv
úüévW
´£üÁwH
E let histogram = histogram!("some_metric_name", "service" => "http");ÁŠx
úüŽx2
‘¥üÁx.
Í¥üðxR
O let histogram = histogram!("some_metric_name", SERVICE_LABEL => SERVICE_HTTP);ÁÃy
úüÇya
§ü©zO
ø§äùz
Шü–{@
ö¨ü×{<
9 let histogram = histogram!("some_metric_name", &labels);Á”|
úü˜|`
Žªüù|;
øªüµ}6
½«üì}%
" let histogram = histogram!(name);Á~
úü–~A
> let histogram = histogram!(format!("{}_via_format", "name"));ÁØ~
úüÜ~e
b // Using all of the above, we can customize the histogram's description, unit, target, and level:ÁüÂ
 let histogram = histogram!(Áüâ'
$ description: "super histogram",ÁüŠ€#
Ç®ü®€'
ô®üÖ€$
¥¯Ôû€
 "super_histogram",Áì–
ó¯ä´
™°
¾°
Ͱ
äª(|è
ßu 
þ„
 •‚
£‚
, –‚
 —‚
¡‚
, ˜‚
8˜«,™‚
& ž‚
8¯Ÿ‚

¢‚
*¥‚
 ¨‚
û„
, ²‚
8,³‚
'¸‚
8ጺ‚
 Ë‚
 Ì‚
õ„
!8Þ”Ú‚
$ ì‚
8ë+”ú‚
$ Œƒ
8çâ\šƒ
¦ƒ
8Þü¨ƒ$
$ ̃
8ø$Úƒ
߃
8ÆÞìáƒ
$ þƒ
8ê4Œ„
“„
'•„
8í$—„
'›„
8¹ \
 ¨„
 ©„
ª„
$ «„
8Á',¹„
¿„
, Á„
8,„
'Ç„
8½:,É„
'΄
8í&$Є
% Ô„
, â„
 ã„
ê„
, ä„
8˜«,å„

ë„
% ü„
¬ …
4‡…
(|
ïu ¶…
ÛŠ
 ¼…
û…
, ½…
8åÝ4¾…
& Ä…
8¼,Å…
$ Ê…
, Ì…
8Ð $Í…
& Ñ…
8$Ò…
$ Ö…
, Ø…
8ø$Ù…
& Ý…
8$Þ…
$ â…
, ä…
8çâ\å…
& ð…
8$ñ…
, ö…
 ÷…
ù…
$ ø…
- ú…
*ý…
 ۠
ˆ
 
ˆ
, ܠ
8,Π
'Ԡ
8´/l“†
  †
ˆˆ
 ¡†
8á'D¢†
 ª†
  
‡ˆ
8á'Dº†
 †
, Æ
8åÝ4Ć
 ʆ
ü‡
'܆
8í$Þ†
'â†
8å<ä†
'ë†
8$í†
'ñ†
8³å$ó†
 ֠
ý†
, ø†
8Ð $ù†
$ þ†
'
8í$’‡
'–‡
8³
4˜‡
'ž‡
8¬4 ‡
'¦‡
8Û$¨‡
 ¬‡
²‡
, ­‡
8ø$®‡
$ ³‡
'Ň
8í$LJ
'ˇ
8å<͇
'Ô‡
8$Ö‡
'Ú‡
8³å$܇
 à‡
í‡
, á‡
8çâ\â‡
$ î‡
% ý‡
% ‰ˆ
% ‘ˆ
 —ˆ
ʈ
, ˜ˆ
8åÝ4™ˆ
& Ÿˆ
8¼ˆ
$ ¥ˆ
, §ˆ
8Ð $¨ˆ
& ¬ˆ
8ˆ
$ ±ˆ
, ³ˆ
8çâ\´ˆ
& ¿ˆ
8$Àˆ
, ň
 ƈ
Ȉ
$ Lj
- Ɉ
*̈
 ψ
ØŠ
 Ј
׊
, Úˆ
8,Ûˆ
'àˆ
8´/lâˆ
 ïˆ
Њ
 ðˆ
8á'Dñˆ
 ùˆ
 ûˆ
ÏŠ
8á'D‰‰
 ‘‰
, ’‰
8åÝ4“‰
 ™‰
ÄŠ
'«‰
8í$­‰
'±‰
8å<³‰
'º‰
8$¼‰
'À‰
8³å$‰
 Ɖ
̉
, lj
8Р$ȉ
$ ͉
'߉
8í$á‰
'å‰
8³
4ç‰
'í‰
8¬4ï‰
'õ‰
8©$÷‰
$ û‰
'Š
8í$Š
'“Š
8å<•Š
'œŠ
8$žŠ
'¢Š
8³å$¤Š
 ¨Š
µŠ
, ©Š
8çâ\ªŠ
$ ¶Š
% ÅŠ
% ÑŠ
% ÙŠ
ìó”
ÄÞŠ
 Describes a counter.Á÷Š
úüûŠt
Бüð‹4
Î’¥Œ
úü©Œs
p Counters can be described with a free-form string, and optionally, a unit can be provided to describe the valueÁüq
n and/or rate of the measurements. Whether or not the installed recorder does anything with the description, orÁüŽ-
* optional unit, is implementation defined.Á½Ž
úlÁŽ
± <ÏŽ
äªì׎
Ô üõŽ
û Ä•
£¡ü®
Å¡üÏ$
! # use metrics::describe_counter;ÁÄô
 # use metrics::Unit;ÁŒ
’¢¼Ÿ
¬¢ü·A
> describe_counter!("some_metric_name", "my favorite counter");Áù
úüý&
# // Providing a unit for a counter:Áü¤‘N
K describe_counter!("some_metric_name", Unit::Bytes, "my favorite counter");Áó‘
úü÷‘`
ŽªüØ’;
øªü”“6
½«üË“3
0 describe_counter!(name, "my favorite counter");Áÿ“
úüƒ”O
L describe_counter!(format!("{}_via_format", "name"), "my favorite counter");Á<Ó”
Ͱ<۔
äª(|ã”
ÿu ‘•
”—
 —•
Ç•
, ˜•
8Ð $™•
& 
8$ž•
$ ¢•
, ¤•
8ø$¥•
& ©•
8$ª•
$ ®•
, °•
8çâ\±•
& ¼•
8$½•
, •
 Õ
Å•
$ Ä•
- Æ•
*É•
 Ì•
š–
, Ö•
8,ו
'Ü•
8£DÞ•
 æ•
 ç•
”–

8²„è•
$ ø•
, ú•
8Ð $û•
$ ÿ•
, 
8ø$‚–
$ †–
, ˆ–
8çâ\‰–
% ›–
 ¡–
Å–
 , ¢–
8Ð $£–
& §–
8$¨–
$ ¬–
, ®–
8çâ\¯–
& º–
8$»–
, À–
 Á–
Ö
$ –
- Ä–
*Ç–
 Ê–
‘—
, Ô–
8,Õ–
'Ú–
8£DÜ–
 ä–
 å–
‹—
8²„æ–
$ ö–
, ø–
8Ð $ù–
$ ý–
, ÿ–
8çâ\€—
% ’—
Üç 
´——
 Describes a gauge.Á®—
úü²—c
` Gauges represent a single value that can go up or down over time, and always starts out with anÁÔ–˜
 initial value of zero.Á±˜
úüµ˜q
n Gauges can be described with a free-form string, and optionally, a unit can be provided to describe the valueÁü§™q
µôü™š-
±õÇš
úlËš
± <Ùš
äªìáš
Ô üÿš
û ÄŸ›
£¡ü¸›
Å¡üÙ›"
 # use metrics::describe_gauge;ÁÄü›
úöŒ•œ
’¢¬§œ
ÜÀü½œ=
: describe_gauge!("some_metric_name", "my favorite gauge");Áûœ
úüÿœ$
! // Providing a unit for a gauge:Áü¤J
G describe_gauge!("some_metric_name", Unit::Bytes, "my favorite gauge");Áï
úüó`
ŽªüÔž;
øªüŸ6
½«üÇŸ/
, describe_gauge!(name, "my favorite gauge");Á÷Ÿ
úüûŸK
H describe_gauge!(format!("{}_via_format", "name"), "my favorite gauge");Á<Ç 
Ͱ<Ϡ
äª(|× 
v ƒ¡
‚£
 ‰¡
¹¡
, Š¡
8Ð $‹¡
& ¡
8$¡
$ ”¡
, –¡
8ø$—¡
& ›¡
8$œ¡
$  ¡
, ¢¡
8çâ\£¡
& ®¡
8$¯¡
, ´¡
 µ¡
·¡
$ ¶¡
- ¸¡
*»¡
 ¾¡
Š¢
, È¡
8,É¡
'Ρ
8£DС
 Ø¡
 Ù¡
„¢

8ÉtÚ¡
$ è¡
, ê¡
8Ð $ë¡
$ ï¡
, ñ¡
8ø$ò¡
$ ö¡
, ø¡
8çâ\ù¡
% ‹¢
 ‘¢
µ¢
 , ’¢
8Ð $“¢
& —¢
8$˜¢
$ Ϣ
, ž¢
8çâ\Ÿ¢
& ª¢
8$«¢
, °¢
 ±¢
³¢
$ ²¢
- ´¢
*·¢
 º¢
ÿ¢
, Ģ
8,Å¢
'Ê¢
8£DÌ¢
 Ô¢
 Õ¢
ù¢
8ÉtÖ¢
$ ä¢
, æ¢
8Ð $ç¢
$ ë¢
, í¢
8çâ\î¢
% €£
üƒ­
Ô…£
 Describes a histogram.Á £
úü¤£d
a Histograms measure the distribution of values for a given set of measurements, and start with noÁœ‰¤
 initial values.Á¤
úü¡¤u
r Histograms can be described with a free-form string, and optionally, a unit can be provided to describe the valueÁü—¥q
µôü‰¦-
±õ·¦
úl»¦
± <ɦ
äªìѦ