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

509 lines
264 KiB
Plaintext
Raw Normal View History

2026-01-24 22:59:20 +00:00
rust
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Á
2026-01-24 22:59:20 +00:00
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ÁV/O7Û7—.˜òõ e;ÿ-76ba15024b3a773dÁ
unicode_identÁE­¾”…žíhcÇ_ÞðI·-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ÔÅ
2026-01-24 22:59:20 +00:00
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
2026-01-24 22:59:20 +00:00
ì`ê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
2026-01-24 22:59:20 +00:00
 ï
<ˆç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]ÁŒ 
2026-01-24 22:59:20 +00:00
 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Ô
2026-01-24 22:59:20 +00:00
\ Ô
 Á ©âÅò ¾®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Åòúô‚\ Ô
»
  íò ·õ þò Žó Øõ
2026-01-24 22:59:20 +00:00
±vÅòúô £ $  Ìn$© JLOQüˆ
#ªC$
$ü²
G
2026-01-24 22:59:20 +00:00
¼ ¼ªC´Z‚\»
 ¿