Files
archy/core/target/debug/deps/libquote-8101723160b784b4.rlib
T

658 lines
415 KiB
Plaintext
Raw Normal View History

2026-01-24 22:59:20 +00:00
!<arch>
#1/12 0 0 0 0 27020 `
__.SYMDEF8˜‹˜‹˜‹˜‹˜‹£˜‹*˜‹˜‹B˜‹Î˜‹Y˜‹é˜‹u˜‹˜‹µ˜‹F˜‹Ù˜‹Š ˜‹
˜‹µ
˜‹O ˜‹ ˜‹Ú ˜‹ ˜‹» ˜‹t
˜‹˜‹±˜‹Q˜‹ø˜‹T˜‹ª˜‹˜‹˜‹4˜‹ñ˜‹n˜‹@˜‹˜‹˜‹R˜‹L˜‹L˜‹¤˜‹ì ˜‹U!˜‹¿!˜‹*"˜‹•"˜‹#˜‹o#˜‹Þ#˜‹T$˜‹Ë$˜‹C%˜‹Á%˜‹&˜‹G&˜‹‡&˜‹Ç&˜‹'˜‹G'˜‹ˆ'˜‹É'˜‹
(˜‹K(˜‹(˜‹Ô(˜‹)˜‹)˜‹é)˜‹*˜‹S*˜‹ª*˜‹+˜‹X+˜‹Ÿ+˜‹å+˜‹",˜‹a,˜‹¡,˜‹â,˜‹4-˜‹†-˜‹Ø-˜‹*.˜‹|.˜‹Ó.˜‹*/˜‹/˜‹Ø/˜‹/0˜‹†0˜‹Ý0˜‹41˜‹‹1˜‹ã1˜‹;2˜‹“2˜‹ë2˜‹C3˜‹œ3˜‹õ3˜‹O4˜‹“4˜‹Û4˜‹!5˜‹]5˜‹ 5˜‹6˜‹b6˜‹©6˜‹ñ6˜‹87˜‹r7˜‹¯7˜‹í7˜‹28˜‹e8˜‹š8˜‹Ï8˜‹9˜‹99˜‹n9˜‹£9˜‹Ø9˜‹
:˜‹B:˜‹x:˜‹®:˜‹ä:˜‹;˜‹P;˜‹†;˜‹¼;˜‹ò;˜‹(<˜‹^<˜‹”<˜‹Ë<˜‹=˜‹;=˜‹s=˜‹«=˜‹ä=˜‹>˜‹X>˜‹>˜‹Ì>˜‹?˜‹@?˜‹z?˜‹´?˜‹î?˜‹(@˜‹c@˜‹ž@˜‹Ù@˜‹A˜‹OA˜‹ŠA˜‹ÅA˜‹B˜‹<B˜‹xB˜‹´B˜‹ðB˜‹,C˜‹iC˜‹¦C˜‹ãC˜‹ D˜‹]D˜‹šD˜‹×D˜‹E˜‹QE˜‹E˜‹ÍE˜‹ F˜‹IF˜‹‡F˜‹ÅF˜‹G˜‹AG˜‹G˜‹½G˜‹ûG˜‹:H˜‹zH˜‹ºH˜‹úH˜‹;I˜‹}I˜‹¿I˜‹îI˜‹J˜‹PJ˜‹J˜‹²J˜‹ãJ˜‹K˜‹EK˜‹vK˜‹¨K˜‹ÚK˜‹ L˜‹>L˜‹pL˜‹¢L˜‹ÔL˜‹M˜‹8M˜‹kM˜‹žM˜‹ÑM˜‹N˜‹7N˜‹’N˜‹íN˜‹HO˜‹£O˜‹ÿO˜‹[P˜‹ºP˜‹Q˜‹sQ˜‹×Q˜‹;R˜‹ŸR˜‹S˜‹gS˜‹ËS˜‹1T˜‹—T˜‹ýT˜‹eU˜‹ÎU˜‹8V˜‹¢V˜‹W˜‹qW˜‹ÚW˜‹CX˜‹¬X˜‹Y˜‹ŠY˜‹öY˜‹dZ˜‹ÏZ˜‹9[˜‹¤[˜‹\˜‹y\˜‹æ\˜‹S]˜‹Ã]˜‹4^˜‹¥^˜‹$_˜‹­_˜‹0`˜‹³`˜‹;a__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7612db14c3c91429E__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h9c6ec29455a97484E__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hd1b0e04706ca9ec3E__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h68af4937459d6fa7E__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb1cbc05e87778db7E__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc92e21c22d265415E__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17h5bb24c9f66d64f9aE__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17h7455bee0cf87ec70E__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17h7c2fef6d19be04beE__ZN106_$LT$core..iter..adapters..flatten..Flatten$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1677822ddf6268d4E__ZN106_$LT$core..iter..adapters..flatten..Flatten$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$9size_hint17h3cca1d089f464a53E__ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..adapters..fuse..FuseImpl$LT$I$GT$$GT$4next17h79316462c9dce5c1E__ZN110_$LT$proc_macro..TokenStream$u20$as$u20$core..iter..traits..collect..Extend$LT$proc_macro..TokenStream$GT$$GT$6extend17haa32d0a355fd78d9E__ZN110_$LT$proc_macro..TokenStream$u20$as$u20$core..iter..traits..collect..Extend$LT$proc_macro..TokenStream$GT$$GT$6extend28_$u7b$$u7b$closure$u7d$$u7d$17hb477d1f51ff8cbfaE__ZN110_$LT$proc_macro2..TokenStream$u20$as$u20$core..iter..traits..collect..Extend$LT$proc_macro2..TokenTree$GT$$GT$6extend17h850477dce559ef64E__ZN112_$LT$proc_macro2..TokenStream$u20$as$u20$core..iter..traits..collect..Extend$LT$proc_macro2..TokenStream$GT$$GT$6extend17h53f68a2033667fc6E__ZN112_$LT$proc_macro2..TokenStream$u20$as$u20$core..iter..traits..collect..Extend$LT$proc_macro2..TokenStream$GT$$GT$6extend28_$u7b$$u7b$closure$u7d$$u7d$17h95cfd3488c641cd0E__ZN115_$LT$proc_macro2..imp..TokenStream$u20$as$u20$core.
lib.rmetaÏúíþ ˜= 8= .rmeta__DWARF= 82 x!x! Prust
W#rustc 1.93.0 (254b59607 2026-01-19)Á³VOÐêùÿ²?ÑL¼§Ì±-a7a40eb546f9e2b0Áá\ƒ¦è3$|]åŒ[IÚ tæ-14b12edc9f8cd90bÁë&Gf·Ã ¬ëñq:¤»b-bb76018b1173caf6Áõ…·fÊ ¦%g--c48c539199cbc88bÁà 9m Ù„«ÐÒþá•cB;-030c5b0bba47cc8fÁrustc_std_workspace_coreÁÛ¹þÓ7>H%¸ÚÉ­-4b81d37a5530864dÁüÃùs<Uß7VyóHr#QÏ-c66cc7807550ce25Á miniz_oxideÁõFÖˆÚ™ª‹"ÞXzLVª-62cbc7af83058505Áadler2Á—wÉD‘嵯|6¨%Œ
+-2f171dd2394b4b62Á hashbrownÁ,ïcV¼¨ø¢:Ê\'È߈-9571ba9e0f6c7a90Árustc_std_workspace_allocÁ%¥Èxµù·¼5Ä3Bœ-aac566ad65903fa4Á
std_detectÁMmáýZ^9õ Îà§e˜÷e-2edb296e590136d8Árustc_demangleÁ@¼§VÉNb˜æ¨fHÌ+V3-53b132e4a2fa6e26Ácfg_ifÁfÝv.Å"ÒÜuPp¹ˆ¶-f76b385d7d4d7f3eÁ addr2lineÁÕú-WiúQVÓ¬
µT§5-fe25100bd73e48e4ÁgimliÁ¹xLáÇí÷‘o±Ñ8£Å-265ba9e6e4f70b3fÁobjectÁÔ³ÝzÓÿ¶ò°öM›¼òü`-9ae0d1f8ea52a318ÁmemchrÁRÎ÷׎™te~QÓ¿ØC\Ò-0bff3c8e8f4e489eÁ  –©HtGNÏ·ˆ!á-d69228d077d46f36Áé ÜÀfLgd7­Ÿ…,œN<-d5faaa2987273155Árustc_literal_escaperÁŸüì¦Ø}×q+{2iB-449e8da2b01390e1Árustc_std_workspace_stdÁy›°–´„)pÒÙáMö"0-87ab1a2abf19556aÁ proc_macro2Á˜…;øþ{œ‰ƒ’Ê&Õ`Ça-76ba15024b3a773dÁ
unicode_identÁ$6œfdù¾üÃkªÐs/-05d1bd8e743db6b2Á³áé extÁTokenStreamExtÁ appendÁ
 
append_allÁ append_separatedÁÔ
»
 append_terminatedÁÔ
»
®
»
Ã
Ô

do_append_allÁÔ
Ü
Ô
»
do_append_separatedÁ!Ô
!»
 $Ô
$»
$do_append_terminatedÁ'Ô
'»
privateÁ**SealedÁ*á. format_identÁ.format_ident_implÁident_fragmentÁ1111111111 1
IdentFragmentÁ<Í<spanÁ1??Š?Í1CCŠCÍ1GŠGÍ1JJŠJÍ1ident_fragment_displayÁ to_tokensÁOOOOOOOOOO O
O O O
OOOOOToTokensÁbbto_token_streamÁbinto_token_streamÁOffOiiOl'aÁllOppOssOvvOyO{O}O O
O ƒO O
OOOOOOOOOOOOŸO¡O£O¥O§O©O«« __privateÁ®®®®®®®®®® ®
® ® ®
®®®®®®® DelimiterÁ®SpanÁ®ž® HasIteratorÁÆ
Æ®É É ÉØÌ ÉíÎ Î Î ®Ò Ò ÒØÕ Òí× × × ®Û Û ÛØÞ Ûíà à à ®ä ä äØç äíé é é ®í í ®û ððððððððððRepIteratorExtÁúquote_into_iterÁû û ðþðRepToTokensExtÁ¥ ½  ððRepAsIteratorExtÁ'qÁIterÁ½Š ðŒÀŒŒÊŒ½ ðÀʽ ð˜À˜˜Ê˜½œ œ ðŸÀŸŸÍŸ ŸÊŸ½¥ ¥ ð¨À¨¨Ê¨½¬ ¬ ð¯À¯¯Ê¯½³ ³ ðÀʽº ®¼¼¥ ®¿¿½¿¥ ®Ãîget_spanÁÆ®ñÈÈÈÈGetSpanÁÌ
ÌÌìÈ GetSpanInnerÁÐ
ÐÐìÈ GetSpanBaseÁÔ
ÔÔìÈØ __into_spanÁÈÚšÈÜÜšÈßßšßÈããšã®
push_groupÁ®push_group_spannedÁ®parseÁ®
parse_spannedÁ®respan_token_treeÁ®
push_identÁ®push_ident_spannedÁ®
push_lifetimeÁ®push_lifetime_spannedÁ®
push_punctÁ®push_underscoreÁ®push_underscore_spannedÁ®mk_identÁ®ident_maybe_rawÁ®õõŠ® øøÍ®
ûûÍ® þþÍ® Í®
ÍspannedÁŠŠŠŠŠŠSpannedÁ__spanÁŠý!Šý!Šý!Š
join_spansÁ   ŠÝ ï ¤__quoteÁ__quote_spannedÁpounded_var_namesÁpounded_var_names_with_contextÁpounded_var_with_contextÁquote_bind_into_iterÁquote_bind_next_or_breakÁquote_each_tokenÁquote_each_token_spannedÁquote_tokens_with_contextÁ!quote_tokens_with_context_spannedÁquote_token_with_contextÁ quote_token_with_context_spannedÁ quote_tokenÁquote_token_spannedÁ1µÍ1·Í1¹Í1»Í1½Í1 ¿Í1
ÁÍ1 ÃÍ1 ÅÍ1
ÇÍ®CheckHasIteratorÁÉŽÉcheckÁ® RepInterpÁÌ
ÌÌì®Ð®ÒÒÈ®push_addÁ®push_add_spannedÁ® push_add_eqÁ®push_add_eq_spannedÁ®push_andÁ®push_and_spannedÁ® push_and_andÁ®push_and_and_spannedÁ® push_and_eqÁ®push_and_eq_spannedÁ®push_atÁ®push_at_spannedÁ® push_bangÁ®push_bang_spannedÁ®
push_caretÁ®push_caret_spannedÁ®
push_caret_eqÁ®push_caret_eq_spannedÁ®
push_colonÁ®push_colon_spannedÁ® push_colon2Á®push_colon2_spannedÁ®
push_commaÁ®push_comma_spannedÁ®push_divÁ®push_div_spannedÁ® push_div_eqÁ®push_div_eq_spannedÁ®push_dotÁ®push_dot_spannedÁ® push_dot2Á®push_dot2_spannedÁ® push_dot3Á®push_dot3_spannedÁ®push_dot_dot_eqÁ®push_dot_dot_eq_spannedÁ®push_eqÁ®push_eq_spannedÁ®
push_eq_eqÁ®push_eq_eq_spannedÁ®push_geÁ®push_ge_spannedÁ®push_gtÁ®push_gt_spannedÁ®push_leÁ®push_le_spannedÁ®push_ltÁ®push_lt_spannedÁ® push_mul_eqÁ®push_mul_eq_spannedÁ®push_neÁ®push_ne_spannedÁ®push_orÁ®push_or_spannedÁ®
push_or_eqÁ®push_or_eq_spannedÁ®
push_or_orÁ®push_or_or_spannedÁ®
push_poundÁ®push_pound_spannedÁ®
push_questionÁ®push_question_spannedÁ® push_rarrowÁ®push_rarrow_spannedÁ® push_larrowÁ®push_larrow_spannedÁ®push_remÁ®push_rem_spannedÁ® push_rem_eqÁ®push_rem_eq_spannedÁ®push_fat_arrowÁ®push_fat_arrow_spannedÁ® push_semiÁ®push_semi_spannedÁ®push_shlÁ®push_shl_spannedÁ® push_shl_eqÁ®push_shl_eq_spannedÁ®push_shrÁ®push_shr_spannedÁ® push_shr_eqÁ®push_shr_eq_spannedÁ® push_starÁ®push_star_spannedÁ®push_subÁ®push_sub_spannedÁ® push_sub_eqÁ®push_sub_eq_spannedÁ®IdentFragmentAdapterÁ­
­­ì®±®³³Èž

quote_spannedÁ







!
$
'
=
=
=
>
?
A
B
B
B
C
E
F
F
F
H
I
I
I
J
L
M
M
M
c
c
d
f
h
h
i
k
k
o
o
r
r
u
u
x
x
z
z
|
|
~
~








ˆ
ˆ
Š
Š
Œ
Œ
Ž
Ž








˜
˜
š
š
œ
œ
ž
ž
 
 
¢
¢
¤
¤
¦
¦
¨
¨
ª
ª
¬
¬


Œ

Â
Å
Å
Û
Þ
â
æ
ç
è
é
é
ê
ê
ì
ì
í
í
î
î
ï
ï
ñ
ò
ó
ô
÷
ú
ú
ú
ý
ý
ý



ƒ
ƒ
ƒ






˜



¸
¸
¸
º
º
º
¼
¼
¼
¾
¾
¾
À
À
À
Â
Â
Â
Ä
Ä
Ä
Æ
Æ
Æ
È
È
È
Ô
Õ
Ö
×
Ø
Ù
Ú
Û
Ü
Ý
Þ
ß
à
á
â
ã
ä
å
æ
ç
è
é
ê
ë
ì
í
î
ï
ð
ñ
ò
ó
ô
õ
ö
÷
ø
ù
ú
û
ü
ý
þ
ÿ



ƒ




ˆ

Š

Œ

Ž









˜

š

œ

ž
Ÿ
 
¡
¢
£
¤
¥
¦
§
¨
©
ª
«
¬
µ
,<bÉú¡ ªªž«innerÁ¬_markerÁRÜ!o%"˜Ö,ªC< 8< 8D<óóIdentÁô½BõÍBn·[ÉreÇh<º½¾BorrowedÁ¿ìÀÁOwnedÁÂìr^!™¿Æ8D<<<ÉHÉHÊHœÜ3ËÚ¢×€JÜ<<<<<<<büCbŽDbº½¾íC¿ìÀÁŽDÂìr^!™¿ÆÓDbBoxÁ샚íƒlÕ°Ù[¢'õ•E•EEGlobalÁ Ï€ûkW¬ sbØ,Ø,ôÛ,÷ —,Ü,phantomÁ—,Ý,á—,Næ~{técêGðGbø°ú°û°Ðü°ý°þ°ìHˈXêE>êGbbÑEbbbbbbbŒFb•FbžFb§Fb°Fb¹Fbbbbb‡¡‡¡lˆ¡½B‹1žœ¤lƒrbƒHƒHCStringÁ„H½B¿*º¼‡ÿXfêbÅÅGroupÁƽB%š‹ÙªS×ÁbDbÝÝPunctÁÞchÁßspacingÁàŠap ÁJÚÜRbøøLiteralÁù½BúÍBÁ£ÓšÇªñÑb·¸ÞJ¹ìº»§C¼ì½¾žK¿ìÀÁôKÂì…GjˆAÍ<bªCãïÆÆÇö ü6€Ä+§_¸NãïÆÆÇö ü6€Ä+§_¸Nãï¸NîNãïîNîNÉîNúêGêG 8À 8èOÀ
DÀDÍÀßAßA­âAbufÁ«<ãA¾ «<µ[<™éDðGÀææeé
üRï;Ç…1!DðGÀÌÌÍà'Ïì ÜgK¤AŒ#åDÀþÌÌÍà'Ïì ÜgK¤AŒ#åêGÞ…RÞK…Rb…RìÌÌÍ Ïì –)‡¼C“ ›êGìÐÐÑÄÓì Ã;¨ ‡¡¬êGþ­­®–7°ì YÓl\ṈâêGÞÎSå`ÎSç`ÎSë`ÎSí`ÎSé`ÎS¯¯â°½B±ÍBsDË&KxÀÀ DelimSpanÁÁ½BïÂÍBï• XF!;,êG¡ÂT¡€U¡êGª-ª?
C
GóJºµ·¹ÉH»½¿ÁÃÅÇf
i
lºpsØ,vø°y{ÉH}ƒ‡¡ŸƒH¡Å£ó¥Ý§ø©«ªÃÌÉÆÒÆÛÆäÆíÆþŒ

˜ Ÿ¨ßA¯æÌÐ̱­Ò̳­¿ÌßÌãÐø­û­þ­­­¯À¢¯£À¤ Í,<b!EãïÉúþ'ÞÞKìå`ç`ë`í`é`¡
ù»
®MÄ”T”
¿H®ML"üˆ%4
¹JªC®M¥¦¥¦OnceÁ§¦½B»H¡m“"ý®M$ˆü ´ü²
Ó
ªCL¿
´Z
‚\©•[Ø®M*tokenÁ3a®Z@àZ‰[ò„¿
±JÔ
$¿ü«%
]°JW0ÈüºŽ‚\Þ‹\]\o¼]¥"£ &Q‡]η]¤ ‡]!ø=îJ9HM
àK]^
gk w]ßK,
¼’
cü_
)  Œ˜ ·
Â
> üÛç$ü€8 ‚\\]$‰]ƒ]ø°ú°û°Ðü°ý°þ°ìHˈXêE>ü_× ]â„J¼ü_c\= ü_XstreamÁ¥£ ©£ 0Æ[­ ‡]O«_U¤`ž]sü_gü_m]üä/ „þ‡]
oϊ
!¼]»
jJ¡ÍüÎÿ Ì3\\]Ûdü‚\¼]òÛdÔk9£ =opÁC¦‡]7ÓdfÛd¯
 >‰‡]$‰"ø>üÁ;JO«_Z
cg s ,€
ü_  
À
¤À
cÛd
)  ŒÃ,€,—
¼—L¤`$  Œ ¼

 Æ Ç-
ß;üž©ê!üÚíºüޝ‚\ä‹\]ÛdÞ],]4éa<µbD„Jü_ɹ‚\ Ûdœ\?ØbWça£ ¡eˆfirstÁ£ ÀÆ[A

‡]ß«_å]*Õh¤`Àü_šÛdŽü_¦]NÛd üì2 „‡‡]$‡$™
o¤ì
'¼]Ûd$gGžêüÓ é$3\Š\]Ûd$‚‚\¼]ïÛdÑk9£ =termÁE¨‡]6neÛd±‡]
"ø?èr:IN«_Y bf r ü_  ¼ŒL’¤` $
 Œ’ 

´µÕh
$  Œº Ù   ã
ä- Š
;ü©»'nüú`‚\ò‹\]Ûd]×]ßéaçµbï„JÈü_u\VØbn\Ík1çan£ rÌnv£ QÆ[Ó ß
‡]o«_u¤`Ê]¤Õhü_cÛdWü_o]ÂÛdi$¸
ø°ÂTÂ>ü3ø°ú°û°Ðü°ý°þ°ìHˈXêE>ÂT ,— uüª!Ôª
>D*"ÑAüPâud“  D,‰¸w 9úvyä–”–
=D) °(¸Bü×aê³í³î³Òï³ìð³ñ³ò³ìäs{©¶‚\ѼѼÒ¼ štÀ.\€¶w Á`Á`œÃ`è Á]Ä`ÌOÁ]Ê­\É:• å¸wMVþúx@,¿ü¤!Ô¤úv2ËEüûPâud  D¸wu°{@úv{ä  x1 ª #² FüÑaÇx®{Ïy ߸w~°{"þ&Px

¾íC¿ìÀÁŽDÂìr^!™¿ÆDai

úvƒ´
Lüø <âu
 »},€
¸wÃ6µ}ßúvu$€µ}

x4 #ŽMüº
TÇx
Ý~
Ïy È
¸wþIµ}ªx”ô„ô
ÜL•
c±v$1´•Á Àü°düã^ªC¯vªC‚\š\²"tokensÁ,kä€þÕªC´ô
d±v)Œù üseªC±v¯v@ˆƒŸ±vz±vÔýL†
cD)4Œ†žhüÅY‚\ò¶w‹\\h¸w"º'QÌ„šDÔÌ„2Œ˜°kü×Y‚\®{‹\‚\d¸wˆ°{ )º.XÌ„µ}Գ̄7Œ¼ÔoüûY‚\¨Ý~,ˆ\4\d¸w"º'Qµ}·Ì„ ¡¡UniqueÁ£à ¤ÍBùwe5)#šêGÎà óîÁ üæ«éêG êGÔÅ
cêGºŒÎærüY‚\º ªG\\k êGªG$ÿ‰,5º:g¡Š°
î¡H"ÔÖ¡Š=Œß÷uüžY‚\Ë ¡H‹\‚\g‚‹#º(UÜ‹¡Š   îêGœ†¡Š 4’Œˆªüªxüø,‚\× ùH‹\„J¨‚‹ž‚\Š*º/Ê¡ŠÁfalseÁfalseÁfalseÁfalseÁfalseÁfalseÁfalseÁtrueÁtrueÁfalseÁtrueÁtrueÁtrueÁfalseÁtrueÁtrueÁtrueÁtrueÁtrueÁtrueÁtrueÁtrueÁtrueÁtrueÁ ±
²
ËŒ¡
\¯
±v
 +±vUtrueÁtrueÁÜü
îN¡ûü¸i±vîNÌÔ±v 0trueÁtrueÁ
ø°¯vÐüŽBø°ú°û°Ðü°ý°þ°ìHˈXêE>¯vl ¯v, pä¡
0¸NÇüÚm¯v¸NÜ÷¯v 0falseÁfalseÁtrueÁ,üæ/üæ(
ŠèO/'Ÿü˜èOîNü¸  èOÖ—
I…—trueÁ,• üì/üì(…—5 ¥ üž½—ü¾  èOÖ—}Š™E…—trueÁ\à!$å!
qD$à!4å!üß!"
kîN"œü‘!zÙiÙiÊÜi÷ ®iÝi
end_or_lenÁ®iÞiÍB®it¸N(DîNü±! ’PD¤!¾šÏê™ìtrueÁtrueÁ$Ù#››\Ù#$Þ#ê™*4Þ#üØ#"
ŽîN„$¥üŠ#z¼šüª# £PD#¾št››Aê™trueÁtrueÁ\Â%
î¹P$Â%"($Ç%ê™#4Ç%üÁ%"
xîNí%¬üó$z¼šü“% ¹PD†%¾šš››¢AÖ¿ê™ÅtrueÁtrueÁ\´'$¹'
DðG$´'4¹'ü³'"
LîNß'³üå&zƒƒÊ£ üËõä6"W¸±DîNü…' ˆQDø&Ÿ °kÈŸÍtrueÁtrueÁ4©)DÄ©)|°)
ŠD1Œ°)Ë)ºüÛ(pDîNüû( ÇQDî(¸wDÓ¡ŠtrueÁ(ª+êG
ßêG,4(û*
ÌêG€+Ô-…R8 …RBêG‚‹Zd‰£¦4“.êGdŽ.
ø°êG .¾üå-;ùHLú-…R$ñ-êG]34£/êGl£/$ª/
àKêG04ª/¶/Âüð.Fø°ú°û°Ðü°ý°þ°ìHˈXêE>êGßK”†/ …RLø. êGÁ½¥È4¤0êGĤ0L«0¡Š*4µ0Œ«0Ã0Åüì/W‚\™0Ý£,ù/‹\4€0‚\f‚‹ƒ#º(S¡ŠŒ¥1
ÔêGü˜1
ÐêGü1(
ÌêGº1Æüà0ZÚRTÿ0êG$ó0”SfÔÔÕí×ì MžÝþ€kšJêGŠJkt¬4ÐÐÑÄÓì Ã;¨ ‡¡¬ÂTÔÔÕí×ì MžÝþ€kšJÂTÂTÄ4Ùüý3GÂT$™4ÌÌÍ Ïì –)‡¼C“ ›ÂT$4 \T¹5ÔÔÕí×ì MžÝþ€kšJ€U€UŒ¹5$Ä5
û`4Ä5Ô5Ûü‰5KÂT$¦5 ÐÐÑÄÓì Ã;¨ ‡¡¬€U,œ5 €UÖiᬪù ÑD#Á Ñ#
³Uù ê*#( 1Þü§6EêG Ä6 ¾©,º6`6®}<ˆ8”S™8âüÙ7@ ”Slì7 ÚR,â7 2<¹9¾©Ê9æüŠ9@Û®l9¯,“9 .(9ÑsêG‰£'/(9ˆs
­êG9sµ-ÎS8 ÎSBêG|‚‹Zd‰£¡4¼têGl¼t$Ãt
>êG.4ÃtÏt÷üt@âud¥tʱ,›t‚‹p5ª²x<ëuêGôØu”Øu
=êG. ôu(üuúü™ucÇx\Âuʱ, uÏy §u‚‹~þ K³< wêGÜw|w
è`êG/ ©w)±wýüÑv`Çx\úvʱ,ØvÏy ßv‚‹þ Kõ´<ÞxêGôËx”Ëx
ì`êG/ çx)ïxüŒxcÇx\µxʱ,“xÏy šx‚‹þ K©¶<œzêGô‰z”‰z
î`êG/ ¥z)­zƒüÊycÇx\óyʱ,ÑyÏy Øy‚‹þ KÝ·<Ô{êGäÃ{„Ã{
ê`êG/ Ý{)å{ü„{aÇx\­{ʱ,‹{Ïy ’{‚‹þ K‘¹ÄôŒù
e‚‹œùüé$
D ˜üÆMÂT‚‹ªCƒ4²º ßºz¼’+
ÌêGÍ(…R3êG:AO
ÌêGhÍu…RêGެ¬2
ÌêGÍ(ÚR3”S:AO
ÌêGhÍuÚR”SŽÔä2
ÐêGÑ(”S3¾©;BP
ÐêGiÑv”S¾©Ì 3
ÔêGÕ(¾©4êG;BP
ÔêGiÕv¾©êGüŸs1
­êG®)ÎS4êG;BP
­êGi®vÎSêGˆ.1O®Š³áÅé 
dÿ/š
ΐ0
 ï
<ˆçb´#Œ¯¼¨Ì#ô¡¾©ñ#Ä“Àª$¤öÄ««$īǬÊ$„÷â­á$ÄÅæ®€%̵ꯠ%ü±í!°È%ÄÏð±ç%ü§‹ ²Ž&\С³ &œñÊ´ž
,á†ï7lú­·ü„ÿüŽ [![github]](https://github.com/dtolnay/quote)&ensp;[![crates-io]](https://crates.io/crates/quote)&ensp;[![docs-rs]](https://docs.rs/quote)ÁËü“jg [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=githubÁüþnk [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rustÁüímj [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rsÁÛË <br>ÁèËüìNK This crate provides the [`quote!`] macro for turning Rust syntax tree dataÁü»*' structures into tokens of source code.ÁæËüêJG Procedural macros in Rust receive a stream of tokens as input, executeÁüµPM arbitrary Rust code to determine how to manipulate those tokens, and produceÁü†PM a stream of tokens to hand back to the compiler to compile into the caller'sÁü×MJ crate. Quasi-quoting is a solution to one piece of that &mdash; producingÁü¥%" tokens to return to the compiler.ÁËËüÏNK The idea of quasi-quoting is that we write *code* that we treat as *data*.ÁüžLI Within the `quote!` macro, we can write what looks like code to our textÁüëJG editor or IDE. We get all the benefits of the editor's brace matching,Áü¶ OL syntax highlighting, indentation, and maybe autocompletion. But rather thanÁü†
PM compiling that as code into the current crate, we can treat it as data, passÁü×
OL it around, mutate it, and eventually hand it back to the compiler as tokensÁü§ -* to compile into the macro caller's crate.ÁÕ ËüÙ FC This crate is motivated by the procedural macro use case, but is aÁü  PM general-purpose Rust quasi-quoting library and is not specific to proceduralÁ  macros.Áý Ë\
 ```tomlÁ
 [dependencies]ÁŒ 
 quote = "1.0"Á
 ```Áº
Ë
¡ÈÇ
Ë

# ExampleÁÙ
ËüÝ
OL The following quasi-quoted block of code is something you might find in [a]Áü­OL procedural macro having to do with data structure serialization. The `#var`ÁüýNK syntax performs interpolation of runtime variables into the quoted tokens.ÁüÌMJ Check out the documentation of the [`quote!`] macro for more detail aboutÁüšLI the syntax. See also the [`quote_spanned!`] macro which is important forÁüç,) implementing hygienic procedural macros.ÁËÔ˜ [a]: https://serde.rs/Á³ËºÓ¼¿ # use quote::quote;Á,×ÄÝ # let generics = "";Áäö # let where_clause = "";ÁÄ“ # let field_ty = "";Á¼¬ # let item_ty = "";Á¤Ä # let path = "";Á¬Ù # let value = "";ÁÕØÌõ let tokens = quote! {Áü63 struct SerializeWith #generics #where_clause {ÁüÆ! value: &'a #field_ty,Áüè96 phantom: core::marker::PhantomData<#item_ty>,Á¬Ëü°SP impl #generics serde::Serialize for SerializeWith #generics #where_clause {Áü„LI fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>ÁŒÑ whereÁüã%" S: serde::Serializer,Ál‰
ü—-* #path(self.value, serializer)Á
öÛÝ˼á SerializeWith {ÁÔù value: #value,Áü”;8 phantom: core::marker::PhantomData::<#item_ty>,ÁöÛ };ÁºÓéË¡ÈöËüú # Non-macro code generatorsÁšËüžOL When using `quote` in a build.rs or main.rs and writing the output out to aÁüîDA file, consider having the code generator pass the tokens throughÁü³OL [prettyplease] before writing. This way if an error occurs in the generatedÁüƒ85 code it is convenient for a human to read and debug.Á¼ËüÀ;8 [prettyplease]: https://github.com/dtolnay/prettypleaseÁ¡ Ž ½8¹l 7https://docs.rs/quote/1.0.44ÁôŸüˆ7.1O®Š³úáûúé ù
ø/š
÷0
ö ï
õ<ˆçôb´#ó¨Ì#ñ©ñ#ïª$í««$ë¬Ê$é­á$简%寠%ã°È%à±ç%Þ²Ž&Û³ &Ù´ž
×ï7Õ·hkn”¤e„¸Z¼êO<„ˆ *çD b£ $î2ž\7ª
TokenTreeÁLD |TTDü)%8:!#üé)üQB? TokenStream extension trait with methods for appending tokens.ÁËü˜PM This trait is sealed and cannot be implemented outside of the `quote` crate.Á  ªâ±vüé ,±v ¼ë'Îë¼ë3Îë)


üŒGü™*' For use by `ToTokens` implementations.ÁÈËüÐ74 Appends the token specified to this list of tokens.Á4¸ ¸±vÛd‚\ »
  ©âÛd ÷Ûd®M
±vÛdÆ[,¤/1ü°büÙ*ªëˆË<ºÓüœ30 # use quote::{quote, TokenStreamExt, ToTokens};ÁüÔ# # use proc_macro2::TokenStream;ÁÕØl†
struct X;Á˜ËÌ  impl ToTokens for X {Áü¾74 fn to_tokens(&self, tokens: &mut TokenStream) {Áüú.+ tokens.append_all(&[true, false]);ÁL­öÛÅËäÍ let tokens = quote!(#X);Áüî1. assert_eq!(tokens.to_string(), "true false");ÁºÓ¹ ¹±vÔ
\ Ô
 Á ©âÅò ¾®JÅòbÅò¯JD‰
±vÅò£ $ÌDFüª ‡ü˜*ªëÇËüÏIF Appends all of the items in the iterator `I`, separated by the tokensÁD  `U`.Á„­ º º±vÅò»
\ Ô
»
 Ä  íò ¾ ©âúô Á þòŽóD“
búô
±vÅòúô£ $Ï ¡eØ Z\VXüú Šü·
*ªëæ
Ëüî
DA Appends all tokens in the iterator `I`, appending `U` after eachÁü· >; element, including after the last element of the iterator.ÁŒý » »±vÅòúô‚\ Ô
»
  íò ·õ þò Žó Øõ
±vÅòúô £ $  Ìn$© JLOQüˆ
#ªC$
$ü²
G
¼ ¼ªC´Z‚\»
 ¿
©â´Z ¼
÷´Z®M
´Z
Æ[š-+-üºb½ ½ªC]‚\Ô
 Ë©â] È®J]b]¯JD“
]£ Ž.=?üÛ|¾ ¾ªC]‚\Ô
 ÷Áû ìÞK]bü_
]çaJ0£ S068ü΄ѿ ¿ªC]Ûd‚\Ô
»
  èÁû âïí åÑûàûbÛd
]Ûd£ Y2¡eb2IKNPüž¥œ¡À ÀªC]Ûd‚\Ô
"»
#"# ÃÁû µïí ¸ðüD‚ÿü´þ
!]Ûdçaî4£ ÷4¡e5CEHJüÓŠŒÖÁ ÁªC]Ûd‚\Ô
%»
&&% îÁû èïí ëÑûàûD¿´þ
$]Ûd£ 7Ìn
7CEHJü©¨¤¬Â ªC]Ûd‚\Ô
(»
)() ÏÁû Áïí ÄðüDÿü´þ
']Ûdça:9£ C9ÌnL9CEHJ,ž\ª*+Ä„„£4­,,¼ëœ£,¼ë¼ëܼªCT4‘Ìòü/, Formatting macro for constructing `Ident`s.Á0ËD4¡È=ËdA # SyntaxÁNËüRPM Syntax is copied from the [`format!`][alloc::format!] macro, supporting bothÁü£# positional and named arguments.ÁÇËüËNK Only a limited set of formatting traits are supported. The current mappingÁüš! of format types to traits is:Á¼ËüÀ  * `{}` ⇒ [`IdentFragment`]Áüá,) * `{:o}` ⇒ [`Octal`](core::fmt::Octal)ÁüŽ2/ * `{:x}` ⇒ [`LowerHex`](core::fmt::LowerHex)ÁüÁ2/ * `{:X}` ⇒ [`UpperHex`](core::fmt::UpperHex)Áüô.+ * `{:b}` ⇒ [`Binary`](core::fmt::Binary)Á£Ëü§+( See [`core::fmt`] for more information.ÁÓË¡ÈàËœä # IdentFragmentÁøËüüOL Unlike `format!`, this macro uses the [`IdentFragment`] formatting trait byÁüÌB? default. This trait is like `Display`, with a few differences:ÁËü“MJ * `IdentFragment` is only implemented for a limited set of types, such asÁüá$! unsigned integers and strings.Áü†MJ * [`Ident`] arguments will have their `r#` prefixes stripped, if present.ÁÔËüØ+( [`IdentFragment`]: crate::IdentFragmentÁü„! [`Ident`]: proc_macro2::IdentÁ¦Ë¡È³Ë
# HygieneÁÅËüÉOL The [`Span`] of the first `Ident` argument is used as the span of the finalÁü™ KH identifier, falling back to [`Span::call_site`] when no identifiers areÁ
provided.Áó ˺Óôÿ  # use quote::format_ident;Áüž
)& # let ident = format_ident!("Ident");ÁüÈ
PM // If `ident` is an Ident, the span of `my_ident` will be inherited from it.Áü™ <9 let my_ident = format_ident!("My{}{}", ident, "IsCool");ÁüÖ *' assert_eq!(my_ident, "MyIdentIsCool");Á< ºÓ Ëü IF Alternatively, the span can be overridden by passing the `span` namedÁl× 
argument.Áå Ë ºÓôñ ƒü
63 # const IGNORE_TOKENS: &'static str = stringify! {犂
 let my_span = /* ... */;Á
 # };Áüí
30 # let my_span = proc_macro2::Span::call_site();Áü¡-* format_ident!("MyIdent", span = my_span);ÁºÓ×ËüÛ [`Span`]: proc_macro2::SpanÁüû52 [`Span::call_site`]: proc_macro2::Span::call_siteÁ±Ë <p><br></p>ÁÅË # PanicsÁÖËüÚKH This method will panic if the resulting formatted string is not a validÁ identifier.ÁË¡ÈÃË # ExamplesÁÖËüÚ*' Composing raw and non-raw identifiers:Á<…ºÓôƒü¬2/ let my_ident = format_ident!("My{}", "Ident");Áüß$! assert_eq!(my_ident, "MyIdent");ÁËüˆ%" let raw = format_ident!("r#Raw");Áì® assert_eq!(raw, "r#Raw");ÁÌËüÐ>; let my_ident_raw = format_ident!("{}Is{}", my_ident, raw);Áü-* assert_eq!(my_ident_raw, "MyIdentIsRaw");ÁºÓÅËüÉ Integer formatting options:ÁºÓôñƒ´ let num: u32 = 10;Á§Ëü«.+ let decimal = format_ident!("Id_{}", num);ÁüÚ! assert_eq!(decimal, "Id_10");ÁüËü€.+ let octal = format_ident!("Id_{:o}", num);Áü¯ assert_eq!(octal, "Id_12");ÁÏËüÓ/, let binary = format_ident!("Id_{:b}", num);Áüƒ" assert_eq!(binary, "Id_1010");Á¦Ëüª2/ let lower_hex = format_ident!("Id_{:x}", num);ÁüÝ" assert_eq!(lower_hex, "Id_a");ÁËü„2/ let upper_hex = format_ident!("Id_{:X}", num);Áü·" assert_eq!(upper_hex, "Id_A");ÁºÓ&|â²/ Œ »  œ, 8Í& 8ï$˜*ž ¡ , «8'±8š
Œ³ Ä Å  Æ Ž , Ô8'Ú8Ü'å8Ó'í8Ð$ ó, 8Í%   µ, ž8ÍŸ& ¢8ï$ §, © ª ³, «8restÁ& °8±
´*· º ¸, Ä8'Ê8š
ŒÌ Ý Þ ² ß § , í8'ó8Ü'þ8Ó4€'8Ð$ˆ$ Œ, š8Í, © ª °, «8»£
±% ¹ôÝ¡Ð Ó Ú8°&|¾:2 ü Î%  ¯  ®, 8Š$˜& œ8ï$$ ¡, £ ¤ ¬, ¥8ͦ& ©8ª
­*± ´ ¯, ¾8,¿'Ä8Ü'Ï8  Ù ©
 ç, è8'î8Ü'ù8á   , ƒ  , 8Í
Š$ Œ, š8Š$›$ Ÿ% ° Ì ÷ Í ä, Î8oldÁÏ& Ò8ï$ ×, Ù Ú â, Û8ÍÜ& ß8à
ã8Š ë, í8Š& ò8ï*ù ü Å, 8,‡'Œ8š
ŒŽ Ÿ   ¿ ¡ °, ¢8®©£$ ¦, ¨ © ®, ª8Í«
¯8Š ·, ¹8Š$ ¾% Æ Ì   Í ä, Î8®©Ï& Ò8ï$ ×, Ù Ú â, Û8ÍÜ& ß8à
ã8Š ë, í8Š& ò8ï$ ÷, ù ú ƒ, û8»£& 8
* Š ®, 8,•'š8š
Œœ ­ ® ¨ ¯ , ½8'Ã8Ü'Î8Ó'Ö8'Ü Þ, ß8'å8Ü'ð8â ö ÷ ý, ø8Š$ þ, Œ  , Ž8Í
, Ÿ   ¦, ¡8»£
§% ¯ Ì þ
 Í å, Î8Š& Ó8ï$ Ø, Ú Û ã, Ü8ÍÝ& à8á
ä, ç8ÿ
& ì8Û ó, õ8argÁö& ù8ï* ƒ  Í , 8'8š
Œ•  ¦  §  Ç  ¨  ¸ , © 8Š$ ® , °  ±  , ² 8ͳ 
· , º 8ÿ
 À ,  8IJà $ Æ % Î  Ô  ”! Õ  í , Ö 8Š$× & Û 8ï$ à , â  ã  ë , ä 8Íå & è 8é 
ì , ï 8ÿ
& ô 8Û û , ý 8IJþ & !8ï$!$ †!, ˆ! ‰! !, Š!8»£$!& !8!
“!*! ™! Ð" 8,£!, ©!8,ª!'¯!8ÜL±!'º!87¤¼! Ð! Ö! Ñ!, Ò!8IJÓ! Ø! Ê" 8IJæ!*ê!, í!8,î!'ó!8š
Œõ! †" ‡" ¿" ˆ" ´", ‰"8Š$Š" Ž"8é " " œ"8IJ" •"8Š$" š" "$ ", Ÿ"  " ¥", ¡"8Í¢"
¦"$ §", ©"8ÿ
$ª" ¯"8IJ±", ¶" ·" ½", ¸"8»£$¹"
¾"$ À"% Ñ" ó" —# ô" Œ#, õ"8Š$ö"& ú"8ï$û"$ ÿ", # # Š#, ƒ#8Í„#& ‡#8ˆ#
‹#, Ž#8IJ#& #8ï$“#*™# œ# Þ#, ¦#8,§#'¬#8š
Œ®# ¿# À# Ø# Á# Ñ#, Â#8Š$Ã#$ Ç#, É# Ê# Ï#, Ë#8ÍÌ#
Ð#, Ó#8IJÔ#$ ×#% ß# å# —$  æ# þ#, ç#8Š$è#& ì#8ï$í#$ ñ#, ó# ô# ü#, õ#8Íö#& ù#8ú#
ý#, €$8IJ$& „$8ï$…$$ ‰$, $ Œ$ •$, $8»£$Ž$& $8“$
$*™$ œ$ Ë% 8,¦$, ¬$8,­$'²$8ÜL´$'½$87¤¿$ Ó$ Ù$ Ô$, Õ$8IJÖ$ Û$ Å% 8IJé$*í$, ð$8,ñ$'ö$8š
Œø$ ‰% Š% º% % ¯% , Œ%8Š$% %8é % ”% Ÿ%8IJ•% ˜%8Š$™% % ž%$  %, ¢% £% ¨%, ¤%8Í¥%
©%$ ª%8IJ¬%, ±% ²% ¸%, ³%8»£$´%
¹%$ »%% Ì%”™t<º13œ<±1447ÉH16D?×517ÍTÁ]18§C,kó1:â$r¯1~prü'!fhXZLNMÔ]@B24¼„üz96 Specialized formatting trait used by `format_ident!`.Á´Ëü¸NK [`Ident`] arguments formatted using this trait will have their `r#` prefixÁ̇ stripped, if present.Á¡Ëü¥/, See [`format_ident!`] for more information.ÁÕËüÙ*' [`format_ident!`]: crate::format_identÁ<<¼ëü„À<¼ë¼ë=>=>>=ü×5ü¢0- Format this value as an identifier fragment.ÁÚÃÄŠñv ÄÁ`Á`œÃ`è Á]Ä`ÌOÁ]Ê­\É:•ÅÇx< Þ<
=±vþ åôü’.+ Span associated with this `IdentFragment`.ÁÅËüÍ=: If non-`None`, may be inherited by formatted identifiers.Á$Æ Æ±vâu< <
>±v$˜üÆ48Ç@Ç@ªâD Ë<DüCAB>=AB%'ô$„È ÈüCâu? ?
A8Dü×4ÚÉÊË ÉüC ÊÁ`Á`œÃ`è Á]Ä`ÌOÁ]Ê­\É:•ËÇx? Þ?
B8Dþ<ü¼88ÌDDÌóË ÁƒÌŽDEF>=EF!ôûÍ ÍŽDâuC ƒC
E8D$„üÑ4ÔÎÏÐ ÎŽD ÏÁ`Á`œÃ`è Á]Ä`ÌOÁ]Ê­\É:•ÐÇxC ØC
F8Dþã=ä¶ DHI>=IHôÙ Ñ ÑDâuG á G
HüŸ
4¢
ÒÓÔ ÒD ÓÁ`Á`œÃ`è Á]Ä`ÌOÁ]Ê­\É:•ÔÇxG ¦
G
I
þ ­
üž S8ÕKÕKóË £ ƒÌ ±D ßDLM>=ML.0ôø  Ö ÖßDâuJ
J
L8D$
üº
4½
×ØÙ ×ßD ØÁ`Á`œÃ`è Á]Ä`ÌOÁ]Ê­\É:•ÙÇxJ Á
J
M8D
þ’?ü²#´¿ Ö É Ü ç, Ý Þ ä, ß8 à& á8â$ å
æ*é ì Æ, ö ÷ ¿8$…8ï
8
˜, œ8  Ÿ µ8 ±8Í´ · Õ
 ¸8$ ½8þ ¿& À Â8Ã8ÍÇ'Ê8œ(×8ÍÚ'Ý8ý æ §8Íü'ÿ8<'ˆ8ÍŠ  8$ 8þ 
À% Çl­b
t  OP/ºORœ<4±OS¸FPOT¤J<eƒHOUô}Ø,OV4”ÉHOWl$«‡¡OX£ $»î2OYÞJ,ÓÅO[§C,ÚóO\ôK<áøO]žK,êÝO^â¯O_žªO`½èL„O.ì"ŒB
œYþlrñ¬…å| ÙTµËüÅI¿Á°²¡£ƒtvdf”Òü‘@= Types that can be interpolated inside a `quote!` invocation.Ább¼ëüÒÀb¼ë¼ëcdecdedceü¦
.üë,) Write `self` to the given `TokenStream`.ÁœËü¤IF The token append methods provided by the [`TokenStreamExt`] extensionÁüò41 trait may be useful for implementing `ToTokens`.Á«ËëÓÅËüÍDA Example implementation for a struct representing Rust paths likeÁÔ– `std::cmp::PartialEq`:ÁµËºÓüÉDA use proc_macro2::{TokenTree, Spacing, Span, Punct, TokenStream};Áü’*' use quote::{TokenStreamExt, ToTokens};ÁÁË¬É pub struct Path {ÁÌã pub global: bool,Áü'$ pub segments: Vec<PathSegment>,Á,­ ð·Ëä¿ impl ToTokens for Path {Áüà7žïüœB? for (i, segment) in self.segments.iter().enumerate() {Áüã)& if i > 0 || self.global {Áü‘ (% // Double colon `::`Áü¾ C@ tokens.append(Punct::new(':', Spacing::Joint));Áü†
C@ tokens.append(Punct::new(':', Spacing::Alone));ÁŒÎ
üä
*' segment.to_tokens(tokens);Ál“ ÕÞ öÛ  ð ÕØìÇ  # pub struct PathSegment;Á ÕØüó %" # impl ToTokens for PathSegment {Áü 96 # fn to_tokens(&self, tokens: &mut TokenStream) {ÁôÛ  # unimplemented!()Á  # }Á
 # }Á
ºÓ
ÚÛ Ú±v ÛªC‚\b ³
b$´
º
ü°(üÚ
85 Convert `self` directly into a `TokenStream` object.ÁËüŸJG This method is implicitly implemented using `to_tokens`, and acts as aÁüî=: convenience method for consumers of the `ToTokens` trait.Á|³Ü ܱvªCb ÃbˆƒüHüÇ8ªéËüŒJöéüÛ=Éꌠ±vªCbb©â±v
e±vsAü”*8ÝggÝóË bDüChchüÅ-Þß ÞüC ߪC‚\f Òf
h8DºBü¢.8àjàjóË §îŽDkckü×-áâ áŽD âªC‚\i äi
k8DºÛBü´@ÓmnmnóË ½öÓîÔFoco¹%'üû-ãä ãÔF äªC‚\l ˆl
oÓD$‰º§CüØ.qqªâêG ÝbêGªGrcrü-Låæ åªG æªC‚\p šp
rêG$›ºõDüê-ttÇò ï×ò¡Hucuüž-çè ç¡H èªC‚\s «s
uêGºÖEüû(ww©âêG ×òùHxcxüª-éê éùH êªC‚\v ·v
xêGºÑF¬®zczüÊ-ëì ë ìªC‚\y ×y
zºıÑE|c|üÐ-íî íÑE îªC‚\{ Ý{
|º¤²×I~c~üÍ-ïð ï×I ðªC‚\} Ú}
~º¬ºàI€cüÖ-ñò ñàI òªC‚\ ã
º¬ÄéI‚cüà-óô óéI ôªC‚\ í
º¬ÎòI„cüê-õö õòI öªC‚\ƒ ÷ƒ
º´Ø ûI†cüõ -÷ø ÷ûI øªC‚\ ‚!
$ƒ!º4‰!¼ä!„Jˆcˆü‚"-L…"ùú ù„J úªC\ "
ˆ$"º4"¤ò"ŒFŠcŠü#-L#ûü ûŒF üªC‚\ š#
Š$›#º4¡#¬ú#•FŒcŒü–$-L™$ýþ ý•F þªC‚\ £$
Œ$¤$º4ª$¬„%žFŽcŽü %-L£%ÿ ÿžF ªC‚\ ­%
Ž$®%º4´%¬Ž&§Fcüª&-L­& §F ªC\ ·&
$¸&º4¾&´˜'°Fcüµ'-L¸'ƒ ƒ°F ªC‚\ Â'
$Ã'º4É'¼¤(¹F”cüÂ(-LÅ( ¹F ªC‚\ Ï(
$Ð(º4Ö(¬²)ÃJ–cüÎ)-LÑ)ˆ ÃJ ˆªC‚\ Û)
$Ü)º4â)¬¼*ÌJ˜c˜üØ*-LÛ*
t_ ®ÍzÁ]®·£ $‰î2®¸BitOrÁ,žã﮹ÞJ,·Å®»§C,¾ó®¼žK,ÅÝ®½SpacingÁ<Ì㮾½è®¿á4€ÀÓø°ÁµÂü4®±Žhkü>0IL8;'*Lt „“ùü©6êìÙÛÈʰ²ž lù‘¤Ÿ…|Ìx”í¡à ã ê8°ÉÊË ParenthesisÁÌÍBraceÁÎÏBracketÁÐÑÐÑDÆ¥Aõ8È¡œ Ÿ ¦8°ÂT¤Û¡Î Ñ Ø8°ªCüœ%¡  8°4“tŽÈÈŽÆÆÇö ü6€Ä+§_Žü6€Ä+§_ÇlÆÆΛn ¹üÄ5¸NÌÎåïæïÎ\€4…ÉɸN,šü¦>¸N¸N¸NÉÉ
Î_rhsÁ$µü4îNÕ×åïæï×ÒÒîN$âüí=îN¸NîNÒÒ
×ëœüÒ4¸NÞàåïæïà,€\4’ÛÛîN$§ü²<¸NîNîNÛÛ
àëœ$‡ ü– 3îNçéåïæïéääîN$ê üõ <îNîNîNää
éëœ$„
$


ü¶
1îN

üì
NK Extension traits used by the implementation of `quote!`. These are definedÁü»NK in separate traits, rather than as a single trait due to ambiguity issues.ÁŠËüŽMJ These traits expose a `quote_into_iter` method which should allow callingÁüÜNK whichever impl happens to be applicable. Calling that method repeatedly onÁü«,) the returned value should be idempotent.Á¡Ú Ý ä8°ïúö\…ÆðòöÇðòà'L’Ìðóà'Íðóçbðô btree_setÁ$ߢ*ðöeDåæð÷­ßAðøî,—ªcðùüýÊ̤¦|¦‚ü¿/hLÓZ\|øM\>üƒ*ü£HE Extension trait providing the `quote_into_iter` method on iterators.Á¡ò õ ü8°túú´íÞK±vDú´í'Ϊ´í3Ϊûûü¸5±vÏ“úú