Files
boc/aamos-ledger-rust/target/release/deps/libsynstructure-aea2dcf3fd96c4c2.rmeta
T

786 lines
230 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Áª C2ð¬ZoK[Ôw-OFÕ-3fa974008d36919aÁrustc_literal_escaperÁâÖ Ï+µãª–ñÉè'â9-e7b5d0e401adce12ÁsynÁͱå¯n=tS
,•ïÌf-e4a3c59892ebcc73Á proc_macro2ÁzüŒ“åD‚ëh-9º‚âņ-1dd2e5174d37f170Á
unicode_identÁÿž ¤ éb@Ó²aÅwÇ&-1de143011eb6488fÁØ ¢å§3ûB6+ï±Wm¥‰-309e35831de64362ÁtestsÁ,Ü€$Ñ€Àª  
  
 !"#$%&'()*+macrosÁ///////// decl_deriveÁ/decl_attributeÁ/ test_deriveÁ; to_tokensÁ
generics_fuseÁfetch_genericsÁ>'aÁmerge_genericsÁget_or_insert_withÁA¥AD² Fë FastÁFò
Freferenced_ty_paramsÁ
get_ty_paramsÁKBoundTypeLocatorÁLë L LKPë P visit_identÁPvisit_type_macroÁTë Tæ V TbindingsÁT bindings_mutÁTÆ
Tomitted_bindingsÁTò
\ \ T constructÁ__¥_ _ TeachÁdd£d TfoldÁhhšh£h TfilterÁmT drain_filterÁoTremove_bindingÁT bind_withÁrT binding_nameÁtT×
wë wæ wtry_newÁz wÀw variants_mutÁwÆ
womitted_variantsÁwñ£wŽƒƒšƒ£w each_variantÁ£w²ŠwÆŒŒ wadd_where_predicateÁw
add_boundsÁwfilter_variantsÁwdrain_filter_variantsÁwremove_variantÁwõwŒ˜w×
wadd_impl_genericÁwadd_trait_boundsÁœ œ ž wunderscore_constÁw
bound_implÁ¡¡¡wunsafe_bound_implÁ¤¡¤w unbound_implÁ§¡§wunsafe_unbound_implÁª¡ªw
impl_internalÁwgen_implÁ® wgen_impl_parseÁ° parse_prefixÁunpretty_printÁ²¥trim_start_matchesÁ MacroResultÁµ into_resultÁµ into_streamÁ¸°¸Ã»°½¥½° AddBoundsÁÀBothÁÁ
ÀFieldsÁÃ
ÀGenericsÁÅ
À©Ç
À__NonexhaustiveÁÉ
Ë× 
 σ 
ÒÔÖÖ§×ù BindStyleÁÙMoveÁÚ
ÙMoveMutÁÜ
ÙRefÁÞ
ÙRefMutÁà
â׿ƒéëÖí§îù BindingInfoÁðë ðbindingÁðstyleÁðÂðð
seen_genericsÁðÖøë ø×ûë ûƒþë ë ƒë ƒÖë §ˆù
VariantAstÁŠë ŠattrsÁмŠËŠ discriminantÁë ×ë  ë !ë ƒ"šë #œë œ$Ÿë ŸÖ%¢ë ¢§¤ù VariantInfoÁ¦ë ¦prefixÁ¦ü¦Æ
¦¦original_lengthÁ&­ë ­×'°ë °ƒ(³ë )µë µ*¸ë ¸Ö+»ë »§½ù StructureÁ¿ë ¿À¿ò¿Æ
¿
extra_implÁ¿extra_predicatesÁ¿Ÿ,Çë Ç×-Êë ʃ.Íë /Ïë Ï0Òë ÒÖ1Õë Õ§×ù°° ° <
<
=
=
>
@
@
A
D
E
E
H
I
J
K
K
R
R
S
X
Y
Z
[
\
_
_
d
d
d
h
h
h
m
m
m
o
o
o
q
r
r
r
t
t
v
|
}
~




ƒ
ƒ
ƒ



Š
Š
Š
Œ
Œ
Œ












˜
˜
š

œ
œ
œ
 
¡
¤
§
ª
­
®
®
°
°
±
´
Ì
Ì
Ì
Ð
Ó
Ó
Õ
×
×
ã
ã
ã
ç
ê
ê
ì
î
î
ú
ú
ú
ý



ˆ
ˆ




ž
ž
¡
¤
¤
¯
¯
¯
²
·
·
º
½
½
É
É
É
Ì
Ñ
Ñ
Ô
×
×
µ¿cÀÁšÃīů¾ÇÈ©ÉÊྮæ
µ°Š ›(Û›(Ø›(Ðì›(µß›(›(›(še›(¿cÙÚÛÜÜÝíÞßàá‰p¿ K50zŠ Ó)ÛÓ)ØÓ)ÐìÓ)µßÓ)Ó)Ó)šeÓ)cÓ)¿cððóòŽóôÂõöº÷ÖPêêur¯¹ë Ø„+Ðì„+µß„+„+„+še„+cððóòŽóôÂõöº÷ÖPêêur¯¹8¿cŠŠÎŒè¼ŽËŸ'ŹˡIÈë Š “-Û“-Ø“-Ðì“-µß“-“-“-še“-¿c¦¦¨¨Ã©üªÆ
«¬é;usÖ.ˆ
+ë Ø±.Ðì±.µß±.±.±.še±.çKLLN OˆÊ™ð®y¬²ë ë ¿c¿¿÷ÁÀÂòÃÆ
Ĩ ź ÆŸz,®ÿ3¦·ë Ø“0Ðì“0µß“0“0“0še“0µÁÁÂçÈ é’O¾µªªç«innerÁ¬_markerÁ$s=m‰—õHµÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¥ÀÀErrorÁÁmessagesÁ¡å`z½—ËÀâÙøðŠ­¦Ç¿ÍÀäÙŠÎÀåÙŠÏÀæÙûðŠ°¦Ê¿ÑÀèÙþ𚊳¦Í¿ÒÀéÙ𜊵¦Ï¿ÔÀëك🊸¦Ò¿ÖÀíÙ𢊻¦Õ¿;ÙDðPÁ»ª½Ö¿¿cÍŠ *ÛØÐì*µß**še*c*çK µ (Ö0(.6 Ú0NV”7iq”79Œ”7TŸ§”7o¼Á
êcÒ×ßÛ0ÌöÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ Èœ2 O˜éBLx (ƒ  c cˆ¢cµ
 `£cbufÁ `àB¤GS
Ê”7ÒÚä±òýž8(
ã0
è0Ð"(-Ô94=GH ê0 ó0Ó;@FQÔ9XÔ9_®:f®:mv¹
ƒ __self_discrÁœ __arg1_discrÁ³» ÷0Õ õ0£9Ô9(
ù0!
›e®:ù8=E
ý0×\a£9mÔ9t ƒ>~®: ®:˜º¥Î;²ºú=Ã(Œ3&,4”73JR”7em”79ˆ”7T¢ž8®³»‘3ãÒÕ8Ý Ó)çß9î”7õ®:ü±ž8((™3ž3ç"Ó)-ƒA4=GH 3©3ê;@FQƒAXƒA_®:f®:mv¹
ƒÎ;å;£­3ì«3£9ƒA( ¯3!ú=,19³3îPU£9aƒAhÌ>o®:vÝ>}ºÎ; ¨ú=±(\ÙR ú ”7\ÖSóóIdentÁô†1õ–1dpWáz²N ¿c \±T
Ó) 
êF€\ÌT  Þ8Þ8FieldÁß8èà8Æá8
mutabilityÁâ8¼ã8 colon_tokenÁä8´ˆ%[«eõ  êF°\«U Ï<Ï<¾Ð<lt_tokenÁÑ<paramsÁÒ<gt_tokenÁÓ< where_clauseÁ–‘5·NÁôH|
êFÀ\ÇUªBªBö­B€9÷<®B÷<9)
-ÜnLçEçEèEGlobalÁ ¿±‡§í#yêF`\ÃVF êF êF  
±¾ 
êFÓÜ ”7ç 
”7þ
ƒd"(1\ÞRúIOVÕ8c ððóòŽóôÂõöº÷ÖPêêur¯¹Íß9ÕûEݰKå êFFþÐMêFã  FîêFŽƒAêFz ¬GêF÷ ÂHêF~ ÎIêF  FÕN”7ˆÙKš±¨Ñ ¼ÂË÷MêF¬ƒAêFLšNêF0­NêF¢ÀNêFÓNêFïK ~
”7| ”7 ”7ž §
”7² 7 @”7K
 » ”7”7
âñú ûE
ýE”7Š”7”7v”7~”7ð”7ø”7t”7|”7û”7m]ÖS F
Ù F,4 ]±TÓ)
ÙÓ),5€]ÌT¬G°]«U ÂH À]ÇU ÎI
ÙÎI ,
5`]ÃV
F
(]àR ð
 ]åR]äRHýVÎLaÌLh Fy÷MÓ)QƒAY¬G(šN0ÂH­N ÎIÀNFßÕNæÏÙþRì¶Sº
Ù¬G
ÙÂHy¯T_
ÙF2ÎIã Fè
^ÖS F F',
·ß F FAFNT  ^±TÓ)Ó)',
·ßÓ)Ó)AFNT €^ÌT
¬G ¬G',
·ß¬G¬G
A F NT  °^«U
ÂHÂH',
·ßÂHÂH
AF NT  À^ÇUÎIÎI',
·ßÎIÎIAF NT
`^ÃVFF#4 ;CO ^ðRH^çR
ÌLÌLt÷M|÷M)ƒA1ƒA9ÞšNæšNî­N­N£HÀNPÀNXFþF¦¹
³½ÁW£X½…YaçYÉZ©_ôR_òR &£92ÌL9BL`ÖS F
e Fù2 `öRB `±TÓ)
eÓ)ä^/C<€`ÌT¬G
›e¬Gä^/ƒ<°`«U
ÂH
eÂHä^
/Ã <À`ÇU ÎI
eÎIä^ / =``ÃV
F
eFä^
/D=`úRˆd£9pÌLx ä^ƒ£9Â÷MÊ£9ŒƒA£9\šNd£9,­N4£9üÀNÕNÊãºñüÛ^=¡_ýá_á`á`O¢a(fßg 
”7Ðf©h ”7 
¥8¥8 AttributeÁ¦8 pound_tokenÁ§8¨8
bracket_tokenÁ©8ûV³Y×Ô. ŽêF fÉh ”7 ÷M& êF°fãh
 ”7  È8É8Ê8¦Ë8ˆÌ8Í8UnnamedÁÎ8ˆÏ8Ð8UnitÁgqš<Q?  êFøfÿh/
  ”7 Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙŒ2Œ2}2spansÁŸRjó™|Wo€9(99Mƒ9ˆ„9…9AssignÁ†9ˆ‡9ˆ9AsyncÁ‰9ˆŠ99AwaitÁŒ9ˆ9Ž9BinaryÁ9ˆ99BlockÁ9ˆ“9”9[•9ˆ9—9CallÁ˜9ˆ™9š9CastÁ9ˆœ99ClosureÁ ž9ˆŸ9 9h
¡9ˆ¢9£9l ¤9ˆ¥9¦9¸F §9ˆ¨9©9ForLoopÁ
ª9ˆ«9¬9GroupÁ­9ˆ®9¯9IfÁ°9ˆ±9²9IndexÁ³9ˆ´9µ9InferÁ¶9ˆ·9¸9LetÁ¹9ˆº9»9LitÁ¼9ˆ½9¾9LoopÁ¿9ˆÀ9Á9MacroÁÂ9ˆÃ9Ä9MatchÁÅ9ˆÆ9Ç9
MethodCallÁÈ9ˆÉ9Ê9ParenÁË9ˆÌ9Í9PathÁÎ9ˆÏ9Ð9¹Ñ9ˆÒ9Ó9RawAddrÁÔ9ˆÕ9Ö9Ê×9ˆØ9Ù9RepeatÁÚ9ˆÛ9Ü9ReturnÁÝ9ˆÞ9ß9àà9ˆá9â9ê ã9ˆä9å9TryBlockÁ!æ9ˆç9è9ï"é9ˆê9ë9UnaryÁ#ì9ˆí9î9UnsafeÁ$ï9ˆð9ñ9VerbatimÁ%ò9ˆó9ô9WhileÁ&õ9ˆö9÷9YieldÁ'ø9ˆ–é
¢B1Z7DêFÙß
ÿc
ñ÷èîV\
, 2
Ÿ¥0fägHÕ8T ŠŠÎŒè¼ŽËŸ'ŹˡIȤß9¬”7´”7§êF¯ Úcº”7$êF, ÷M7”7 êF ®e”7êF  Èf¡¾s©5±CNërêFE†sêF¯¡sêF¼sêFðˆqx(hìghñg"'-39ýqEûqLU_ Ði©hÚcÚc',
·ßÚcÚcAFNT iÉh÷M÷M',
·ß÷M÷MAFNT°iãh
®e ®e',
·ß®e®e
A F NT øiÿh/ Èf
Èf(-
·ßÈfÈf B
GOS[giügžHióg
ûqûqÈërÐërØ}†s†s2¡s:¡sB¾sè¾sïw¹
ŽÅu>§vâ‰wìw*j€h¡jþg£9&ûq-6@Ðk©hÚc
eÚcä^/ kh? kÉh÷M
e÷Mä^/C<°kãh®e
›e®eä^/ƒ<økÿh/ Èf
eÈfä^ 0Ä=k†h¤ã
£9îûqõïaü£97ër?£9†s £9Ô¡sÛ¾s¢:ºHSòzµ{Tõ{¶|à(lÄj  ”7èl‰k ”7Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ÷MkêFðl¬k ”7 ªBªBö­B€9÷<®B÷<9)
-ÜnLÎLŠJc êF˜lÐk
 ”7 ýq&  êF°lék
  ”7ÂH&êF°lËl ”7F&2êF³¹
d ËÑÂÈSY
ì ñ
ÀÅlÉj¯(Õ84 ¦¦¨¨Ã©üªÆ
«¬é;usÖ.ˆ
+ß9”7¥”7˜êF  ¸~«”78êF@ ³K”7àêFèûqð”7ÂêFÊ­NÒ”7¤êF¬ÓN´ÕN¼5±CNºƒêFFÕƒêFÔûqêFi­NêF;ÓNêF
Àƒèm‰k¸~
Ù¸~,4ðm¬k³
Ù³,4˜mÐkýq
Ùýq,5°mék ÂH °mËl F
(mËj ¦
mÐjmÏjE²S »‚_¹‚g¸~Wºƒ`³0Õƒ9ýq ûqÂHà­NçFÎÕNվȯ…»ç…ŠŸ†YàV&òV ³À èn‰k¸~¸~',
·ß¸~¸~AFNT ðn¬k³³',
·ß³³AFNT ˜nÐk
ýq ýq',
·ßýqýq
A F NT  °nék
ÂHÂH',çY
7< DJ  °nËlFF#4
;CO
nÛj·HnÒj
¹‚¹‚
ºƒºƒÁÕƒÊÕƒÓxûqûqˆ-­N5­N=FíFô¹
¡«¦‰œˆŠAêŠæçYŠoßjºoÝj £9,¹‚4=Gèp‰k¸~
e¸~ä^/ páj?ðp¬k³
e³ä^/C<˜pÐkýq
›eýqä^/ƒ<°pék
ÂH¡`
&º 3°pËl F¢a &ñ3påj½ £9¹‚%ïa-£9iºƒr£97Õƒ@£9ûq£9Ø­NßÕN¯~ºŒºÖýš½a¡`'¢aö”Ö¡„Ö¡
\ˆ¢¸~dù¡ 4þ¡¸~Û÷Mù‹³%ù‹³#§“ #–þ þ  ùŽúý0ÙŽúý
d÷M I <
0a˜š ùù™,ñù™
î5
)˜Ž ù‹˜Œ4¿¢ü¢¢$Lµ¢
dó1B3Œµ¢ Æ¢tÚ¢$ýq÷M4ó¢üÚ¢ Lé¢
d F$E3Œé¢„‹£ýq®e%$%´…£
 H,ʦ&&¦×8×8 FieldsNamedÁØ8 brace_tokenÁÙ8namedÁ/à·Ô›ÍÎüü
PunctuatedÁÿ†1ââòÚ:qG>®G…1…1CommaÁ†1£fõ ƒrµsO¼ì¦¬ì¦
´æ7æ7BraceÁç7spanÁÎZø˜´e
Q<ê£''×dÚ8Ú8
FieldsUnnamedÁÛ8 paren_tokenÁÜ8unnamedÁíË'Rؘ¼Ž¤¬Ž¤
´88l‘8ÿ˜åÛéÜ$ IM4¯¤ü·¤Ú b¥ ó1£9  ؘ ¸œüޤD¦¤
¢8b¸œ¾œÇœÝœ
·¬ü¦¤ìù4§ ü•§º"#! c¸œ¾œÇœÝœ"#üì¦äD„§
ø7c¸œ¾œÇœÝœ !ˆü„§Ì ò© ø©ù©£Ž DTü½ ¼ ŠÝ_%üÊ¡¯ü”¢=ù‹¦~üÊ£×ü®¦±(ó1\ë ¹‚,Ô ¸œDÛ ó1,Ρ®:»÷M°£9ž ó1Ïó1×ó11‹ª£9s†s¢ ó1£9EÌ¡cÌ¡£9ŽÌ¡©¡sn®:dª£áœò£9¨ ¹›¹›Ì¡B;ßœDèœMáœ}£9; 癥癮̡±Çžªßœ³èœ¼÷MC®e®e$®e,efuncÁl¿pÃ_sÁU ý™îº—<5§“ž§“>ã”÷¬•µŠ–Xó1+÷–øá™³›ÉŠûÁžK¸œðó1[ó1Îó1¸œ <ã¤ßœœã¤Lë¤
ÊLáœ>\ë¤üã¤L÷¤
¨NÐÐIterÁÓ†1âàIªÃCD?…®G\÷¤ø¦ã¤ 
ÊL™­™­ EnumerateÁ­ù9œ­ü‚9¿Ê-hðärŒ¦Ælpø¦Ѥ®šŸ
ûMí¦±º¾ Ê Ü Ö¤
ÛF¬GF,Ù¤ ÛΨ¬G$¥èœt¥ 
-
•"¸œ¬GFF8 A¦þ¥Y
Ü¥L¬¥
d¾œ
ƒ ¶¥ 
d¬¥ ¸¥ ù‘¦ˆ%ù‘¦ˆ#§“ #a’Ø ù’º +é’º 
ð5
)‚‰ù‘‹ˆƒ´Ò¥LܥЖ- æ¥dÜ¥ 襑¦Tbb §ù‘™ˆu£9º¤Ì¡ ¸¤í¦]í¦ÈŒ¦ÿí¦xÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙΨÆ í¦Ò®:]F¬Gè£9Y ¾œÌ¾œÕ²©Þ£9¦œ¡Åó1Íó11‘ˆ£9 Ì¡>ߜᜤ 蜭 ¿ý™­
ߜ٢$ß èœù£´Í
¹ ƒ£
×¥k†¦Dç¦éû§ð¨©Åí¦€ªl¾œ=§“1Œ«üŠ–¯ó1ó1Šó1b¾œkí¦È
_ref__unnamedÁ
_ref__funcÁ,Á§ßœŒÁ§Lǧ×¥8\ǧìÁ§LÓ§†¦?\Ó§è§Á§
ç¦>"ø§¯§Ž=LQû§]fj v ˆ ´§
ÛΨF,·§ ÛΨ¬G\ù§
 Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ FÄù§L…¨
d‹´
w ¨  d…¨§¼©ù“¦ˆ%ù“¦ˆ#§“
#a”Ý¢ù”¿¢+锿¢
ì5 )‚‰ù“‹ˆƒ´«¨Lµ¨Š–- ¿¨ dµ¨ Á¨
$Û¨ èœtÛ¨ 
-¨© 9+48ÜÛ¨Lꨀª] ô¨dê¨ ö¨ù•¦ˆ%ù•¦ˆ#§“#a–Ø ù–º +é–º Œ«3'‚‰ù•‹ˆƒ´©Lš©Š–- ¤©dš© ¦©Ï©Â¾sc
ù“™ˆuù•™ˆu!£9˜§ÇžÀÌ¡ –§í¦í¦ºŒ¦ëí¦¤Ô­­¢®®:F8¬G#£9³ ‹´£9휡 ó1ó11“ˆ£9gÌ¡£9ήØ¾œá²©ê£9Úœ¡ùó1ó11•ˆ£9RÌ¡pßœÇáœÐèœÙ¿º—õߜ٢èœùÍ´K
Â: ƒ£ïƒ£¡Q×¥a†¦@ç¦û§&å´
í¦Û§“ÎòµŠ–Ló1!¨©€ªÅ¾œ§“Œ«ZŠ–ó1äó1êó1¾œÉó1jó1í¦L _ref__namedÁ²°T–²›²
\$–²,›²”¹²„¹²§“tä²³ä²

ÊLÕƒ2%)ø¨Õ²¦D SX
ûMÄlÄl–¥Çlµ ™lÈl
end_or_lenÁ™lÉl1™lŒœjSžÎL ¼ÅÉ
Õ
ç<Ù² ÛÌL¼³¬³á™ ù—³%ù—³#§“
#H
L¢³ü­³B  g¸œ£Çœèœ ÌLü³oD™³
ø7g¸œõÃÇœ‚Ä
èŽ ü™³W–þþùšúý0ÙšúýŠ–E8 ,¸ùœí·/ùœí·!
 6 *Åžùžßž# ÉùŸ„Š%ùŸ„Š#§“
#ÓŠÚŠ ùŸ·Š+ÙŸ·ŠŠ–E 8,ŸðŠùžšžéžšž
ëßÑùŸé‰<˜Ž ¢´#£´ ŸûŠ£Žiyü„±Ÿ düŒ²üª²ùOVù—¦~ùŸ÷‰!ó1\ª±¹‚,–±¸œ,±ó1²ó1D®²¾ÁéÕƒ¾ÁûÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÌLH ¾ÁT®:&ÌLw£9±ï¢nç™wÌ¡,­Ä%èœ.‡Ä7ó11—ª£9œ¡Ì¡­£9[Ì¡y£9Ì¡GÉÊË ParenthesisÁÌÍñ˜ÎÏBracketÁÐÑ©ÅDz<4¥ ¢ó1Ôó1û‰£9Wœ¡Ì¡~Ó±Öò
ÚbodyÁàùÊŽé ƒ£9ƒ£ª‡Àg§“?êÀ¸Áá™§“þ§ÄrŠ–éÅŧ“qŠ–*ÕÇîó1¡ó1§¸œ®ó1wó1gó1Àó1ƸœÍ Ƴèœ<ȳ‡Ä TƳ  I
•"¸œÌL`3;?ÔÆ³Lѳ
dõÃi$Û³|ѳ à³ï³g
£9³³­Ä*Ì¡$®³£9 õÃóõÃûÁÐèœa‡ÄjÌLr“ÍK± ¡±èœŽ‡Ä®·ÐdøÐõÃïõÃõ_ref__fÁ
_ref__bindingÁTæ¼ë¼‡À$æ¼,ë¼l…½³¤…½
ë!³/"($“½
“tÎLW4“½ù „Š%ù „Š#§“
#) ÓŠ ÚŠ

ù ·Š+Ù ·Š
dš L
? 3 ðŠ 
ü®½H l¸œ·Õ£ó1ÌLó1èœü…½r$š½
óN¾Áó1l¸œ·ÕŠÖ“Ö¢Ös ù é‰üš½]ù¢³%ù¢³#§“#–þþù¥úý0Ù¥úýŠ–E8,¸ù§í·/ù§í·!éÅ4 (Åžù©ßž# Éùª„Š%ùª„Š#§“
#ÓŠÚŠùª·Š+Ùª·ŠŠ–E8 ,ªðŠù©šžé©šžÕÇÝÏùªé‰ :¢˜Ž Ÿ¾
#3 ¾ ªûŠ ¢£Žy  ûŠ
Ÿ¯¿ü¦»úhüܼÄüú¼¦ù ÷‰ù¢¦~ùª÷‰ó1\Ø»¹‚,»»·Õ$»¸œ,Ë»ó1à¼ó1$þ¼¾ÁÒ 
ÎLÞÕƒýó1vó1û‰£9c ·ÕÌ¡ÌÖ9èœBó1ª£9Yœ¡Ì¡£9.Ì¡L£9UÌ¡ËÌó1Fó1û‰£9Çœ¡÷Ì¡îinitÁ ±#ò
'“Í*ƒ£
ƒ£Øƒ£Šé‡Àj‡Ô1¯Ô8§“ì²Õ¥¿Ö§“»Š–téÅ6§“䊖ÕÇaó1ó1¸œ#·Õ*ó1ãó1Óó1<ó1¹ó1H¸œO·ÕV ̽
èœD̽ .
•"¸œ–Ö
D5=ù¡„Š%ù¡„Š#§“#ÓŠÚŠ ù¡·Š+Ù¡·Š
dŠÖJ =1¡ðŠ õ½ö½ ¡ûŠ3lüĽ2ù¡÷‰ ó1µ½ ÌÖPó1 ¯½ÌL²½ŠÖ Ƚ–Öó1û‰£9 ŠÖ;Ì¡2蜫´^biÁc± ϻ蜽zƒ£sûöá§“ÖÿâŠÖNó17ŠÖ[œÒláȳ¼áÈ4ïÈ
ÞBÎLŠJ¸œ: öÈLïÈ$‚ÉŒÉmüîÇž »‚L“È™çLÿǸœ ŠÈ£9Ž ³¯(±*^ÂæÂLóÖ \¡×¸~¹«¾ ©«¾ 
±BÎL %DÝ×ýqlý×ÂH¤©ØFüÿÖÉ ¦lùØ ³¼ùØ,‡Ù
ˆCÎLŠJî¢î¢ï¢½ +¢ L;V _÷é©Ù 
L‡Ù4›Ù
üùØ)L‘Ù
ËNˆ>ˆ>DrainÁŒ>
tail_startÁ÷<>tail_lenÁ÷<Ž>ù÷<>Á÷<…üò)«§ÎLŠJ³èœ  
ª

Œ‘ÙtØØ 
³lèØ  
³t½Ù t¬Ù³³låÙ  lÕÙ³\³ ÊÙ1³,ýÙ ‡Ú )³ ñÙˆÚ_
o  ü÷Õœ ¬
¼
oBüïÖüÓØµ»‚$¦Ö™çLŽÖ¸œ,™Ö»‚¸~ñ³äýqÃF¥³;³³³÷ëêyÄçèœ$³*³ìÂHœ±ž¹
°other_bindingsÁÍ
self_bindingsÁÂ a
Ðè»ëé"åê°³¤³d¸œ»‚#¸œ*³0³6 ”Æä³ªÆä

ÊLÄç3 %)øª·äUCRW
ûMÜlÜlIterMutÁßlµ ™làlÞÀ™lál–1™lÚ½íDþïl%ÎL¸ ÁÅÑã<»ä Û ÎL ÷ä <ùä
 T֊ 
7·Ð C (
 1$•å žåÔçä Ó)
XŸå:
ü¸ãçr™çLäã™çLÌ㸜,×ã¶óÄç ¶óÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÒô` ¶ól®:>ÒôÓ)a蜊ÁÐsÌL¿±ÁùÃŽæ %ãòã°óê·Ð͸œ¸œlÄï³ÄÄï
÷!³0"(DÒï
”tÎLXTÒïüÄï$LÝï
¨N¶óq\Ýïø«Äï$ 
ÊL™­™­ù¥›­ù‚9œ­ü‚9¿Ê-hðär¶óŒeiø«¯ïyƒ

ûMú
© ²    Ô´ï ÛFÒôF<¸ï
 ÛèûÒô ‰ðl‹ð
¬G¤‰ð  =¨©I+
4$±ð ºð
|֕
 F  
 FH0
 F œð»ðkü´ît §™çLãî™çLË,ÖîúLú¶óá ÓÝíÄç
ú|Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙèûÊ úÖ®:hF Òôô F»èœç²©Í¬Gå±çù5itÁi ŽT
Y ƒùæ«ùíÚù¡‰úx•û¨©J¸œ  Fý¸œ¾ù
ÉûEð¬úªBªBö­B€9÷<®B÷<9)
-ÜnL»‚ŠJTêF°¬¥ú
 
êF ¬Áú  å8å8 DeriveInputÁæ8èç8Æè8¼é8ê8dataÁuà0ë²pt  êFè¬ÛúªBªBö­B€9÷<®B÷<9)
-ÜnLÔ<Õ<Ö<¡×<ˆØ<Ù<óÚ<ˆÛ<Ü<hÝ<ˆ—t­šËÇÖŠJ°
êFø¬þú%ªBªBö­B€9÷<®B÷<9)
-ÜnLá=â=ã=¡ä=ˆå=æ=óç=ˆ~EiQŠJêF¨¬©û›("êFÄ êF  
ãð°K
 ”7ÙK(.ïK;AGMV¬ÃùÉpv}Õ8Š ¿¿÷ÁÀÂòÃÆ
Ĩ ź ÆŸz,®ÿ3¦·øß9ûE°KÎMÐM êF  ÎêF¼ ÆêF© ׂµêF9 ÛƒEêF œ…êFø Ô9Ô9 ”7¥ÙK­·±ÅÑ Ó¼ßè̉êFÙà‰êF~ò‰êFb†ŠêF皊êF0®ŠêFïK( ´½”7ȱº”7ÅOX
”7c± º”7Å * 3
”7>
 Þ ”7Ï”7
É$ ûE0ýE8”7À”7È”7«”7³”77”7?”7”7”7î”7ö ð­úÎ
ÙÎ08°­¥ú ­Áúׂè­Ûú Ûƒ
ÙÛƒ 09ø­þú% œ…
Ùœ… 1
:¨­©û
(
Ù(
. 7(­Åù ¿
 ­Êù­Éù
%nÌ|°ˆˆ®ˆÎÎ̉×¢à‰«ׂò‰œÛƒ†Šœ…WšŠ`›(*Ô92  ߎM
Ù
ÙׂßìÙœ…ۃΠ °®¥ú#4
ð®úÎÎ+0
·ßÎÎGLTZ
 ®Áú
ׂ ׂ+0
·ßׂׂ
G L TZ 
è®Ûú
ÛƒÛƒ+0
·ßÛƒÛƒ
GL TZ 
ø®þú%œ…œ…,1
·ßœ…œ…HMU[
¨®©û›(().
·ß›(›(CH PT\h ®ÕùÑÌù®ˆ®ˆŒš_̉h̉qò‰ò‰"Á†ŠÊ†ŠÓršŠ{šŠÔ9#Ô9+±¹
¾ÈΔ÷¶•ž–5‡—Ôí—r¯ÙùÔ¯×ù
"(£94®ˆ<EOð°úÎ
›eÎä^3 °ÛùE°°¥ú
eä^/E< °Áúׂ
›eׂä^3@è°Ûú
Ûƒ
eÛƒä^
3Í @ø°þú% œ…
›eœ…ä^ 4 B¨°©û
(
e(ä^
1U?°ßù×w£9ƒ®ˆŒïa£9ỔÝ£9œà‰¥£9mò‰v£9:†ŠC£9šŠÔ9ÒúºΛV•œלÛžàa¤ž"”¯š„¯š§“tÚšÎÚš

ÊL̉3%)ø­Ëš]CRW
ûMÄlÄl–¥Çlµ ™lÈlÞÀ™lÉl–1™lŒœjSž»‚³¼À Ì Þ<Ïš
Û¹‚4„›¤÷š$ÿš
dèœõÃ
<÷š<
dÿ𬴛
\ 
4–›ü÷š&LŒ›Š– /  ŒŒ› 
ù´³%ù´³#§“ #¿ù¸í¾0ù¸í¾"
õ6 *¸ùºí·/ùºí·!éÅ4
(Åžù¼ßž# Éù½…‡%ù½…‡#§“#ù¼šžé¼šžÕÇugR2´˜Žù´˜Œ4ò›üØ›!L蛊–>/Œè› ù› œ “œ”œ> ´£Ž
Tdü›™ùü£šñêñù´¦~ó1\Á™®ˆ,­™¸œ,´™ó1,§šÊ¡l̉ŒÊ¡~Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¹‚Ì Ê¡Ø®:ª¹‚£9hœ¡ëó1óèœÌ¡Ò£9꜡ó1!ó1ª£9BÌ¡`£9Ì¡.£9ŸÌ¡þËÌôó1âÌ¡gL±O¿SùÀvariantÁï
ƒ£¤ë§“)÷ úÄ¡‡£ùŠ–ó1]§“Q‡¥éÅà§“ŽÕÇlŠ–ó1ݸœÃó1êó1¢ó1¦ó1Û¸œâ¦¦§“tȦÎȦ
÷ -#ø®¹¦d= LQÄ¡ ]fj
v
ˆ<½¦ Û¹‚,ò¦4ù¦Üå¦$í¦
hèœƒÞŠÖ <å¦OEœí¦¬©§
e
4‹§üå¦-L§Š–
/  Œ§ ’§ù¾³%ù¾³#§“ #¿ùÂí¾0ùÂí¾"‡¥4 (¸ùÄí·/ùÄí·!éÅ4
(ÅžùÆßž# ÉùÇ„Š%ùÇ„Š#§“#ÓŠ!ÚŠ"ùÇ·Š+ÙÇ·Š²Õ!E"8 ,ÇðŠùÆšžéÆšžÕÇÝÏùÇé‰:¾˜Žù¾˜Œ4î§#üͧ(Lä§Š–>#/Œä§ õ§ ‰¨ ¨¨N ÇûŠ ¾£Ž¨zŠšüÛ¤µƒü‘¦ÿV]ù¾¦~ùÇ÷‰$ó1\¥®ˆ,ð¤·Õ$÷¤¸œ,€¥ó1,•¦Ê¡ë̉ Ê¡ý멹ª®:繂£9Ýœ¡ió1qƒÞèœÌ¡P£9úœ¡)ó11ó1ª£9À̡ޣ9Ì¡®£9·Ì¡~ËÌtó1¨ó1û‰£9)ƒÞYÌ¡PÌ¡ž?¼ÞC±F¿Jù6²«µ ƒ£Ôƒ£§“¥÷ vÄ¡}ï¯¼Š–@ó1§“ ‡¥ÖéÅœ§“J²ÕÕÇÇŠ–Yó10¸œ·Õó1Dó1ìó1Üó1tó1;¸œB·ÕI&”Ù±„Ù±§“$t„²Î„²
÷ -##ø¯õ±ª>MRÄ¡^#gk w <ù±
Û¹‚l«²³²‡À
<«² #,³²¬«³!! Ѳ
TѲ 
'
•"¸œ¹‚
?4  "=ùȳ%ùȳ#§“
!#–þ þùËúý0ÙËúýŠ–E8  ,¸ùÍí·/ùÍí·!éÅ4  (ÅžùÏßž# ÉùЄŠ%ùЄŠ#§“
 #ÓŠ ÚŠùзŠ+ÙÐ·ŠøÐE8,ÐðŠùÏšžéÏšžÕÇÝÏùÐé‰ :ȘŽùȘŒ4³ üé²+Lƒ³Š–> /Œƒ³ ”³! ž³ " #ùѳ%ùѳ#§“%##¿'%ùÕí¾0ùÕí¾"‡¥'4&(a׸)%ù×í·/ù×í·!éÅ)4((Åž+%ùÙßž#, ÉùÚ…‡%ùÚ…‡#§“-#ùÙšžéÙšžÕÇ+u,g-R*2јŽ$%ùјŒ#$4é³.üϳ!L߳Ж#>./"Œß³ ð³$# „´ Š´‹´>$# Ñ£Ž%#5! ÐûŠ  È£Ž!_ "p #¢$²%ü½°Î üͱ¾ü¡²~üƲYùȦ~ùÐ÷‰ùѦ~/ó1\ë°®ˆ,×°¸œ,Þ°ó1,ѱÊ¡¼̉ÜÊ¡Îë©×¹ªà®:¸¹‚bó1¥²õÃ$ʲ蜉¿£9圡ó1ó1ª£9¯œ¡ß̡֣9Ì¡¢£9«Ì¡rËÌhó1œó1û‰£9‡ÒMÌ¡DÌ¡î£9¾œ¡íó1õó1ª£9Ì¡2£9äÌ¡£9sÌ¡ÒËÌÈó1Ì¡;
£±¦¿ªùg²«å
ò
 “Í ƒ£aƒ£ƒ£Ñ%ž §“ý÷ ÎġՇÀ2ÿ¾Ý§“¡Š–Zéŧ“ÊøÐƒÕÇGŠ–Ùó1°õäó1ª§“އ¥Yéŧ“ÍÕÇ«Š–Eó1¸œó1)ó1áó1ó1Æó1õÃó1 ó13¸œ: ”ѾΰѾ

ÊL Î7(,ø°¾QFUZ
ûMÜlÜlÀòßlµ ™làlÞÀ™lál–1™lÚ½íDþïl%»‚¿ÃÏá<ƾ Û™ç4¿ ´ò¾4ú¾
mèœ <ò¾ 8

tú¾$œ¿ ¥¿¦¿ ü˽ÛŠmt  °ˆLô½ÎÓLܽ¸œ,ç½üÐ߬ÐüÐñÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ™ç? üÐK®:™çu™çSèœn¯±±ù²«¸ #¦Ð³öк¹Ò¯¸œp¸œw ô«ÎÎü«Î: 
÷!Î3
$*DÛÎ
”t»‚\
TÛÎüûÎ&  ޏœ™ç»‚¢Ö ü«Îw÷Î
™Nüл‚ޏœ…×¢ÖÍ~
ü÷Î+ü«Î<´Ï
ÄNâ­â­MapÁå­ùæ­±Å@Iœóë ¶¥üн×θ
L´Ï¬ÝÏ
D…Ð ׂ|§Ð
Ûƒ¼§Ð,·Ðß
.  <·Ð¬ÞМ…ìÞÐ,ôÐ.<ôÐ|•Ñ›(üŽÎ¡ ¿
   ´ÑµÑ ®Ñ 
@ ü–ÍŸŒ°ˆ$ÅÍÎÓL­Í¸œ,¸ÍÎ釨CüÐà 
»‚í¬Ð½×«èœ´³ׂªÛƒˆ†Š¨œ…\šŠ|›(F±˜×
˜ÖoÁÖv¯×éØŸßò»¸œ[ÛƒEÎL¸œp4šÏèœä…ÏdÏ
oèœ<…Ï<¤Ï¡ÏŽÄ»‚„Ï ½×ß™ç<üÎèœó²«± ¼ÍèœêÝ­œÒ $¹ð   l˜ïΜ˜ï¦ï
‹C»‚ŠJ7,¦ïlµïÎ Êï  ¼µï4Ãï
ÞB»‚ŠJ¸œ\KLÃïlÙï
ΜÙïçïäß
. ,çïüÙï! ä‰ð$¡ðüÖïZiÃðü‹î¸ Âð 6ü‡ï¼ ÎÓL¹îÎÓL¥î¸œ °îFT‹ï̉Ó£9\¬Ð¸œþF,̉L£a±c
before_lenÁpåäß3ÌàÒä߸œ÷L†þ ¹Û¾ ©Û¾ 
±B»‚&¬ÕþDýþׂ|ŸÿÛƒ¼Ÿÿ,¯ÿß.<¯ÿ¬Öÿ
œ…ìÖÿ,ìÿ
. 
<ìÿ| ›(ü’þ ¿  l؀μ؀,æ€
ˆC»‚ŠJ÷é<s>÷é±ì€ Læ€4ú€üØ€)Lð€
ËNˆ>ˆ>õéŒ>ƒê÷<>™ê÷<Ž>ù÷<>Á÷<…üò)«§»‚ŠJÎèœ× Œð€t·€  ÎlÇ€ 
Î  t‹ÎÎ 
Î _Î ©3Î æ )
ˆÎ Ðç` p ¦€£üýæÀ
Ð à Cü‚þåü²€µ°ˆ$¹ýÎÓL¡ý¸œ,¬ý°ˆvÎV3ׂ*Ûƒ†Š(œ…ÜšŠü›(ÆÎÎqÎÎ9àç¬ÐºèœfÎ~Î?ÒÙÀ±Â¹
:other_variantsÁ
self_variantsÁ
åäXßøÁ‚çKÚçûÎÎÀ¸œu°ˆ|ÛƒÎ
¸œÎ˜ÎŸ ”½ŒÎ²½Œ
¦Ð.#ø²®ŒT=LQöÐ]fjvˆ<²Œ Û™ç4ðŒ ÌÞŒLæŒ
rèœ <ÞŒ 8

ŒæŒ$‹  ü¯‹æ$ ÎÓLÛ‹ÎÓL˸œ,΋üЃ¬Ð¤üÐÔžÛÔ§®:™ç*™çèœ#g±iùm ئÐöÐðñc¸œ$¸œ+ ”Ž—Î³Ž—
¦Ð.#ø³ÿ–W=LQöÐ]fjvˆ<ƒ— Û™ç4Ä— 䯗d·—
tèœ <¯— 8

¤·—$ß— è—é— ü„–å˜$ ÎÓL³–ÎÓL›–¸œ,¦–üЃ¬Ð¤üÐÔžÛÔ§®:™ç*™çèœ#g±iùm ئÐöоöc¸œ$¸œ+ $ËÓ  
' /9 AÄëÓŒðÓ
f¡$ëÓ œðÓ ‚Ô
 $‘Ô  đԌ–Ô
f@ œ–Ô ¨Ô  ùÜ…‡%ùÜ…‡#§“#$ÍÔ Û¼›(üËÓ

 +lÐÓ
­|5ÓqüÐÓŒ ÛÔ  
âÔüíÒõA Q  a q
  áÔ 
¡v ó1\µÓ®ˆ,™Óú$ Óõú$©Óó17ó1×õúó1£Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ›(ÉMTÚ¤õ
¦“Í©UˆúëðúЧ“Lœüó1¯ó1µõú;$Ÿæ '
/9AÄ¿æŒÄæˆú$¿æ
œÄæ Öæ $åæ ÄåæŒêæðú9 œêæ üæ
 ùݦˆ%ùݦˆ#§“ #
ùß›™%  ”7ùÞÖ˜uéÞÖ˜
ð
N @ .Ý‚‰$§ç Û¼›(üŸæ

+l¤æœüÛ9ùÝ‹ˆƒ v ü¤æ µç
 ¼ç Ý üºåW g
 w

 »ç ¤vùÝ™ˆuó1\‰æ®ˆ,íåú$ôåõú$ýåó1Âó1iõúó1;ó1ˆ£9üÌ¡3”7(ÍþÓRYÉõ
ˆ“̓£nP ˆúdðú
§“Óü1ó1ó1Íó1ÓõúC $´õ   '
/9 AÄÔõŒÙõˆú$Ôõ œÙõ ëõ  $úõ  ÄúõŒÿõðú9 œÿõ ‘ö
 ùà…‡%ùà…‡#§“#|»ö À¬¶ö Û¼›( ü´õ¢ 

+l¹õœü:ߦpü¹õ Õö
  ÜöüÔôˆA Q
 a q   Ûö 
§v
ó1\žõ®ˆ,‚õú$‰õõú$’õó1<ó1ãõúó1Íþ›( žhõ
j“Ímˆú´ðúZ§“#œüÔó1só1yõúÿ$‚… '/9AÄ¢…Œ§…ˆú$¢…
œ§… ¹… $È… ÄÈ…ŒÍ…ðú9 œÍ… ß… ùᦈ%ùᦈ#§“ #
ùã›™%  ”7ùâÖ˜uéâÖ˜ï‚
L > ,ႉ|
À¬Š† Û¼›(
ü‚…¨
+l‡…œüð©Nùወƒ y ü‡…£ ©† °† á ü›„W g w

 ¯† ªvùᙈuó1\ì„®ˆ,Єú$ׄõú$à„ó1×ó1~õú©ó1;ó1ˆ£9Ì¡H”7=ÍþÖ›(òZaÑŽõ
“̓£vX ˆúðú'§“ðï‚¢œü9ó1ó1Õó1ÛõúKfalseÁtrueÁ-<Úì1 läì\äì
·4(,üì1 „ít„íL‡í
˜6Œ3-+\‡í,¥í$ªí
Ü¢úHúHßûHÁ‘4Ý­f‰úM÷÷éZ,W÷éÖ«í'cT¤í Åí üÌí àí
üèí#  ²Œ3 F$‹î
ܢ˙÷é MÚW÷éØŒî '9üàí0$âí
ƒ} 

 üçí( 'üâí.:
 <Öí
# Ûí ÛF ¢î¤î

‚#F ¤î ¨î'/<£î
Ü¢½£½£¾¿£¹À£þÁ£ exhaustedÁ1¥œMu7·PF²§ '{¹î
·ßIY”7”7(^Y':¿îᜂY”7”7{—Y'3Åî᜻Y”7”7[ÐY'3åîáœôY”7”7) Z'3ëîáœ-Z”7”7}BZ'3ñîáœfZ”7”7]{Z'39Ë
 ^ ¯
\øî ‚ï"\Ìî Öî"«ï ¹ï Ú»ï УF4ºï
Ü¢УУÄÒ£þ…K~)+ÄÒžFwn'X´«ïD¯ï
Ó4´D¸ï'”¯ïËïtËï$Ïï
ß4+$Ôï
'TÏï4ïï!ìï £ ìï!ìï

ÊL££¹ƒ£¹„£þ-'ºˆÉ¬g ƒ'\`"øßãï@z$"Ž
ûMУ$ #'©­%#¹% Ë„ð'4‘ð( !”7¤„ðDˆð¢'>(3&,'„ˆð Äð+,Æð- ÊðFÆð, —£F-LÅð
Ü¢—£—£»™£¹< =áï_åF+,n*!'Xü°ð$”°ð
´*\ÃðÐð )"'8ü¬ð()Eàð/ íð0|àðDäð¢/70,.$'\äðõð1  ùð%+1%&úð?+O)ü“ìçl(|1(**²=üÖì¤üøìü˜íâü´íÆü‘îÊ2š˜4ÉìŒ3¿ìš˜á š˜²  Œ3¨ ”7,œí”7l  š˜T¸íÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙF¸”7; ´š É™? ®:F”74”7é›z§ç'g§î£9K š˜ò”7½”7ò·¡í£95ϬPУÎУУèÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ5 УA®:Ü£9YϬ”7”7”7ý”7VƦ-FY£9KϬt”7ltsÁ2resÁ raw_sÁò ¾9indentÁ-´I
ù"$’—] Ù— “˜ç ë™ ®šÞ
­d
à›6
᜼ ᜃ áœQ ᜠáœí᜻®¡¢BÒ¢Ê£Τ¢ª½¦4Ÿ§Ý¢oš˜(Œ3.š˜5Œ3;š˜Bï  éí(îí{óí[øí)ýí}‚î]‡î;k z ²É™ Ë™  ¨ 
”½ú\Âú
$½úlÂú0Ä·úQƒû’3‹û´‹ûû
Ó*ûáú«ó1Lèú$ëú
èó1»1èú 4ëúì‹û$¢û¹´4¢û §û üÚùß¹û·œÞúüÿú)»1¼òùý²$éùÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ó1’3â®:4Þúó1L’3¥ó1 ’3¡ï­errÁßÿ÷²Iö³Ñ¹´¹´i’3F’3L$éÿTãÿ$¦€’3D®€ Ö¿ó1’3 µ€ ÿÿ«Œ3|…€\‡€
Œ3 …€l‡€Ç€¿ü­ÿšÄüÿ¤¢€õµœÅÿ¾2$¼ÿ®:,üÿŒ3œ’3ä$Á¹˜¶sò¸¾/=>@AK²´µÀÙðŠ¦¿Àª Tþ(<¡)¡
 ParseStreamÁ\¼)ìParserÁ4É)áSpannedÁ<ä)åvisitÁ$þ)ãK
VisitÁ,„*çK bracedÁ4*7
punctuatedÁT£*âtokenÁ,¯*9çbL¶*¥8DataÁ$Á*ë8ã\Ç*å8œ2,Ô*ÀExprÁ$Û*€9¸F,á*Þ8«4è*È8’—\ô*×8Ó™l+Ú8 GenericParamÁd+Ô<¾Dž+Ï<ªE,¨+óªE ÷=
PredicateTypeÁl¯+ò=Í4¾+¾TokenÁ,Æ+
TraitBoundÁTÑ+Ç=ó$Ý+ÜE TypeMacroÁLã+¾F!TypeParamBoundÁtî+²="TypePathÁDþ+ÅF# WhereClauseÁ\ˆ,Þ=$WherePredicateÁt•,á=% format_identÁdµ,/'
quote_spannedÁlÃ,«(ToTokensÁDÒ,c)Ø ,à-»*SpanÁ$ú-¯,ç\€.ª- TokenTreeÁL..õ \¿8 tã$9œ \Û4:üĉüLI This crate provides helper types for matching against enum variants, andÁüMOL extracting bindings to each of the fields in the deriving Struct or Enum inÁ a generic way.Á°úü´MJ If you are writing a `#[derive]` which needs to perform some operation onÁü‚74 every field, then you have come to the right place!Áºúܾ # Example: `WalkFields`ÁäÚ ### Trait ImplementationÁ ```Áüÿ)& pub trait WalkFields: std::any::Any {Áü©=: fn walk_fields(&self, walk: &mut FnMut(&WalkFields));Áìí impl WalkFields for i32 {Áü‹@= fn walk_fields(&self, _walk: &mut FnMut(&WalkFields)) {}ÁÆ“ÅÚú¬Þ ### Custom DeriveÁ“żü # use quote::quote;Áü”RO fn walkfields_derive(s: synstructure::Structure) -> proc_macro2::TokenStream {Áüç&# let body = s.each(|bi| quote!{Á¬Ž walk(#bi)Á });Á°úÜ´ s.gen_impl(quote! {ÁüÐ2/ extern crate synstructure_test_traits;Áƒúü‡EB gen impl synstructure_test_traits::WalkFields for @Self {ÁüÍ`] fn walk_fields(&self, walk: &mut FnMut(&synstructure_test_traits::WalkFields)) {Áü®)& match *self { #body }ÁŒØ
 })ÁÆü‰ /, # const _IGNORE: &'static str = stringify!(Áü¹ B? synstructure::decl_derive!([WalkFields] => walkfields_derive);Á # );Á
ú4‰
 /*Á
* Test CaseÁ
 */Á
fn main() {Áü¹
$! synstructure::test_derive! {ÁüÞ
 walkfields_derive {ÁÜþ
 enum A<T> {Áôš  B(i32, T),Áܹ  C(i32),ÁŒÕ ®Ì ÈÌÄõ  expands to {ÁüŽ  const _: () = {Áü® :7 extern crate synstructure_test_traits;Áüé IF impl<T> synstructure_test_traits::WalkFields for A<T>Áü³
EB where T: synstructure_test_traits::WalkFieldsÁ¬ù
ühe fn walk_fields(&self, walk: &mut FnMut(&synstructure_test_traits::WalkFields)) {Áüø)& match *self {Áü¢LI A::B(ref __binding_0, ref __binding_1,) => {Áüï96 { walk(__binding_0) }Áü©96 { walk(__binding_1) }Áüã!ü…;8 A::C(ref __binding_0,) => {ÁüÁ9šÕüû! ÖìÌ»¬Õ”ë };ÁÈÌ,ƓŤų́ # Example: `Interest`ÁäÂîÄ“ÅÄç pub trait Interest {Áü€&# fn interesting(&self) -> bool;ÁÆÜ­ impl Interest for i32 {ÁüÉ30 fn interesting(&self) -> bool { *self > 0 }ÁÆ“Åú¬ÁǓż­ìÇüÅTQ fn interest_derive(mut s: synstructure::Structure) -> proc_macro2::TokenStream {Áüš2/ let body = s.fold(false, |acc, bi| quote!{ÁüÍHE #acc || synstructure_test_traits::Interest::interesting(#bi)Á\¶É¢úܦÖÉüÂ2ûÉüõC@ gen impl synstructure_test_traits::Interest for @Self {Áü¹/, fn interesting(&self) -> bool {Áüé! match *self {Áì‹ #bodyÁ¬©ó׌¿®ÌÈÌÞÌÆüð/ÿÌü >; synstructure::decl_derive!([Interest] => interest_derive);ÁƒÎèú Î„ó¯Î<„ÈÎØÎüœ# synstructure::test_derive!{ÁìÀ interest_derive {ÁÜÞÇÏôúëÏÜ™’ÐŒµ®ÌÈÌÄÕÐÐüîòÐüŽ:›ÑüÉGD impl<T> synstructure_test_traits::Interest for A<T>Áü‘C@ where T: synstructure_test_traits::InterestÁ¬Õ€Óüë74 fn interesting(&self) -> bool {Áü£)‘ÔüÍLÄÔüš ,) false ||ÁüÇ gd synstructure_test_traits::Interest::interesting(__binding_0) ||Áü¯!da synstructure_test_traits::Interest::interesting(__binding_1)Áü”"! Öü¶";ËÖüò",ÚäüŸ#da synstructure_test_traits::Interest::interesting(__binding_0)Áü„$! Öì¦$«×ÌÄ$Ñ׬Þ$ó×”ô$‘Øl‡%ÈÌL•%¹Ø,Ÿ%Æ<¥%“Å­%úü±%RO For more example usage, consider investigating the `abomonation_derive` crate,Áü„&85 which makes use of this crate, and is fairly simple.Á/=>@AK²´µÀÙðŠ¦¿Àvª wv¡
÷¹k앺eᮺ^åȺYãK
àºTçK øºN7
‘»Dâ®»?9çb>¥8Ø»:ë8ã9å8œ28À–¼4€9¸F3Þ8«2È8’—1×8Ó™0Ú8û¼$Ô<¾#Ï<ªE"óªE4 ÷=ѽò=;„¾¾Ç=óÜE ;ü¾F!é¾î²="Š¿æÅF#¥¿ÛÞ=$ÿÍá=%ä¿Á/'ƒÀ´«(¤À¬c)Ø «»*ÐÀ§¯,禪-úÀ.õ œ8 9œ š:š¼ñ(Ì)T¯)ru_b¬Ö)OTñ)>,ö)-0*!
õøéìØÛÊͽÀ¬¯Ÿ¢vy]`PSCF ùüáäÔ×¾Á£¦Žvy[^,­,FI,/dÙ-\ì-ÿòõÜßtó/üPM This module provides two utility macros for testing custom derives. They canÁüQNK be used together to eliminate some of the boilerplate required in order toÁü 30 declare and test custom derive implementations.Á4ê/4û/ TokenStream2Ád±ª0Ø »1parse2Á4ã •"3 parse_strÁLë —"4ãå85ç\™Á6parseÁ,³ª7þõ “"7Ä•ždÇ݃km]TT®DIJü»PM The `decl_derive!` macro declares a custom derive wrapper. It will parse theÁüŒOL incoming `TokenStream` into a `synstructure::Structure` object, and pass itÁäÜ into the inner function.ÁùúüýMJ Your inner function should take a `synstructure::Structure` by value, andÁüËHE return a type implementing `synstructure::MacroResult`, for example:Áú“Åü RO fn derive_simple(input: synstructure::Structure) -> proc_macro2::TokenStream {ÁÄó unimplemented!()ÁÆúü– 41 fn derive_result(input: synstructure::Structure)ÁüË 0- -> syn::Result<proc_macro2::TokenStream>ÁÄ‚
Ûú,
Æ
“Å©
ú\­
 # UsageÁ¹
úÔ½
 ### Without AttributesÁ
“Åüà
XU fn derive_interesting(_input: synstructure::Structure) -> proc_macro2::TokenStream {Áì¹  quote::quote! { ... }Á,× ÆÝ úüá 0- # const _IGNORE: &'static str = stringify! {Áü’ 63 decl_derive!([Interesting] => derive_interesting);Á  # };Á “ÅÚ ú¼Þ  ### With AttributesÁ “Å”þ  # fn main() {}Áü‘
XŸýìê
€þÆŽúü’0ÀþüÃVS decl_derive!([Interesting, attributes(interesting_ignore)] => derive_interesting);Á¹ÿ“Å«úü¯&# ### Decl Attributes & Doc CommentsÁ“Å”ÞüñXŸýìÊ€þÆîúüò0Àþ”£ decl_derive! {ÁĶ [Interesting] =>ÁÜÏ #[allow(some_lint)]Áüë" /// Documentation CommentsÁÔŽ derive_interestingÁƹÿ“ÅÀúüÄOL *This macro is available if `synstructure` is built with the `"proc-macro"`Ál”
feature.*Áì×´¹úunknownÁ¬ÕúwasiÁ”ìüÔ+ü¸Hü´M»© ´‡ü«tü¢(|¢“" Ë É  Ì   §, ˆ8derivesÁ<‰& 8¼,,  ˜ ¥, 8derive_tÁ& ¢8¯£
¦*©, ¬ ­ ¾+ ® ¯ ½, ° ± », ²8è& ¸8¯¹
¼
¿, Á8†1& Ç8õ
*Î Ñ Æ+ Û Ü 8¬ ŒÝ î , ï8݆, ø ù ƒ, ú8œ‡
+   §8«,’  ¦8non_snake_caseÁt˜, ± ² À+ ³ ´ ¿, µ  ½, ·8è,¸
¾
Á8Ë8 Ï, Ò8݆ Ú 8´ è& é, ë8'ñ8È 'ù8ç(, 8,•'š8È '¢8ç ° À8, Ä8'Ê8È 'Ò8þõ'Ù Û, Ü8'â8È 'ê8ã ÷ ø ú8´ ù ü 'Ž8í$'8 4'œ8Í'¤8«¦ ¨ ª8» ©*¬ ¯ œ 8, Ë8'Ñ8÷'Ü8¿ å è æ8» ç ê Š'8í$†'Š8 '8Í4”'š8«œ ž  8¾ Ÿ*¢, ¥8'«8\­'¸8à ŠÏ, Æ8†1 Ì Î8¾ Í$ Ð'ê8í'ð8 'ø8Í'8  8° * Œ ô 'ª8í'°8å'¹8'¿8intoÁ Å Ú8° Æ Ç8to_compile_errorÁ„È Ø Ù'®8í'´8 '¼8Í'Ä8Æ É Ë8° Ê*Í Ð ¨ 'æ8í'ì8å'õ8'û8à’  8°  ƒ8Ž“„„  % ÇÜÖ$üÌLI The `decl_attribute!` macro declares a custom attribute wrapper. It willÁü™MJ parse the incoming `TokenStream` into a `synstructure::Structure` object,Áüç(% and pass it into the inner function.Áúü”74 Your inner function should have the following type:ÁÌú“ÅŒØ fn attribute(Áüê'$ attr: proc_macro2::TokenStream,Áü’+( structure: synstructure::Structure,Áü¾# ) -> proc_macro2::TokenStream {ÁÄâÛúÆ< “Åú\ Îüú< “Åì¥  fn attribute_interesting(Áüà (% _attr: proc_macro2::TokenStream,Áüì ,) _structure: synstructure::Structure,Áü™!#‚™ì½!€þ,Û!Æá!úüå!0Àþü–"<9 decl_attribute!([interesting] => attribute_interesting);ÁDÓ"¹ÿ<Ü"“Åä"úüè"Oâ„l¸#º…ì×´Ý#úâ…¬ù#úõ…$üø#+üÜ#HüØ#M»© ´«$üÏ#tüÆ#(|Æ$ . ò$ õ, ø$ ¯%  ù$ Š%, ú$8Lû$& „%8¼,…%*Œ%, % % ¡%+ % %  %, “% ”% ž%, •%8è,%& %8¯œ%
Ÿ%
¢%, ¤%8†1,¥%& ª%8õ
$«%*±% ´% ò,+ ¾% ¿% Ô%8« ¤À%, Þ% ß% í%+ à% á% ì%, â% ã% ê%, ä%8è,å%
ë%
î%8ø%8 ü%, ÿ%8L€& ‰& î&8$—&& &, &8,ž&'£&8È 4¥&'«&8ç\­&$ ¸&8´ Æ&& Ç&, É&8,Ê&'Ï&8È 4Ñ&'×&8ç\Ù&$ ä&(ð&, ó&8,ô&'ù&8È 4û&''8ç\ƒ' ' ì,8,', £'8,¤''©'8È 4«''±'8þõ,³''¸' º', »'8,¼''Á'8È 4Ã''É'8ã\Ë' Ö' ×' Ù'8´ Ø' Û' â,'í'8í$ï''ó'8 4õ''û'8Í4ý''ƒ(8«…( ‡( ‰(8» ˆ(*(8,Ž(, ”(8,•('š(8÷Lœ('¥(8¿<§( ®( ±( ¯(8» °( ³( Ç+'É(8í$Ë('Ï(8 4Ñ('×(8Í4Ù('ß(8«á( ã( å(8¾ ä(*ç( ê( *, „)8,…)'Š)8\Œ)'—)8Ã\™) ¤) ‡*, Â)8†1,Ã) È) í) 'É)8í$Ë)'Ï)8å<Ñ)'Ø)8$Ú)'Þ)8à’$à) ä) é)8$å)$ ê)8¾ ì)'³*8í$µ*'¹*8 4»*'Á*8Í4Ã*'É*8Ë* Î* Ð*8° Ï**Ò* Õ* µ+ 'ï*8í$ñ*'õ*8å<÷*'þ*8$€+'„+8à’$†+ Š+ Ÿ+8° ‹+ Œ+8Ž“+ + ž+$ È+'Ú+8í$Ü+'à+8 4â+'è+8Í4ê+'ð+8ò+ õ+ ÷+8° ö+*ù+ ü+ Ô, ',8í$”,'˜,8å<š,'¡,8$£,'§,8à’$©, ­, Â,8° ®, ¯,8Ž“„°, À, Á,% ó,ÄÎ4üø,NK Run a test on a custom derive. This macro expands both the original structÁüÇ-NK and the expansion to ensure that they compile correctly, and confirms thatÁü–.NK feeding the original struct into the named derive will produce the writtenÁ\å. output.Áñ.úüõ.HE You can add `no_build` to the end of the macro invocation to disableÁü¾/MJ checking that the written code compiles. This is useful in contexts whereÁüŒ0KH the procedural macro cannot depend on the crate where it is used duringÁTØ0 tests.Áã0ú\ç0Îüó0ú<÷0“Åüÿ074 fn test_derive_example(_s: synstructure::Structure)Áü·174 -> Result<proc_macro2::TokenStream, syn::Error>Á,ï1üüõ1GD Ok(quote::quote! { const YOUR_OUTPUT: &'static str = "here"; })Á,½2ÆÃ2ú|Ç2ØÎü×2#•áüû2! test_derive_example {ÁÌ3 struct A;Ál·3ÈÌÄÅ3ÐÐüÞ396 const YOUR_OUTPUT: &'static str = "here";Ál˜4ÈÌL¦4¹Ø,°4Æ<¶4“Å(|¾4®9 ç4 A í4 Ÿ5, î48Ð $ï4& ó48õ
$ô4 ù4 …5, û4 ü4 5, ý48´ þ4& ÿ48¯€5
ƒ58expandsÁ<‡58toÁ5 5 ž5, ”5 •5 5, 58º —5& ˜58¯™5
œ5*¡5 ¤5 7 ®5 7
+ ¼5 ½5 Î58«,¾5 Ã5 Í58LÄ58 Ü58ensure_compilesÁ|ß5 î5 ï5 ñ5 ­6, ƒ6 „6 ‡6, …68´ †6
ˆ6, š6 6 ž6, œ68º 6
Ÿ6, ¼68,½6'Â68œ \Ä6 Ï6 Ð6 €7, Ñ68Ð $Ò6 ×6 à6, Ù6 Ú6 Ý6, Û68´ Ü6
Þ68òµ<â68„¶ê6 í6 ö6, ï6 ð6 ó6, ñ68º ò6
ô68no_buildÁDø6% 7% 7 ™7 Ô7 , š78Ð $7& Ÿ78õ
$ 7 ¥7 ±7, §7 ¨7 ®7, ©78´ ª7& «78¯¬7
¯78òµ<³78„¶»7 ¾7 Ê7, À7 Á7 Ç7, Â78º Ã7& Ä78¯Å7
È78¢ºDÌ7*Ö7 Ù7 ÿ@ ã7 ù@k8ñ78´ õ7 ÷7, ù78,ú7'ÿ78È 48'‡88Ø ,‰8 Ž8 8 ˜8, 8 8 •8, “88´ ”8
8% ™88§88parsedÁ4«8 ²8, ´88,µ8'º88È 4¼8'Â88ªõ4Ä8'Ê8 Ì8, Í88,Î8'Ó88È 4Õ8'Û88ã\Ý8 è8 é8 ë88´ ê8 ý884þ8 „9 ¬:'…98í$‡9'98¨49 “9 ”9 «: 7#Failed to parse input to `#[derive(Áüª9%$ Ï9'å98í$ç9'ë98ÔLí9 ö9 ÷9 ý9, ø98Ð $ù9$ þ97)]`Á,”:$ ™:% ­:8¼:8raw_resÁ<À: È:, Ê:8Ð $Ë: Ï: ï:, Ð:8,Ñ:'Ö:8÷LØ:'á:8æ ã: æ: î: ç:8ô½4è:% ð:8þ:8ÿ­; †;, ˆ;8,‰;'Ž;8\;';8°\; ¨; °;8«Á<©; Â;84Ã; É; ô<'Ê;8í$Ì;'Ð;8¨4Ò; Ø; Ù; ó< 7&Procedural macro failed for `#[derive(Áüï;($ —<'­<8í$¯<'³<8ÔLµ< ¾< ¿< Å<, À<8Ð $Á<$ Æ<7…Á,Ü<$ á<% õ<8„=8
expected_toksÁlˆ= =, ˜=8,™='ž=8È 4 ='¦=8Ø ,¨= ­= ®= ·=, °= ±= ´=, ²=8º ³=
µ=% ¸=8Æ= É=, Ê=8,Ë='Ð=8È 4Ò='Ø=8ûôdÚ=8ç='ê=8Àì='ï=8stringÁ4ñ='÷=8ToStringÁDù= >'>8L„> > > Ž>8ÿ­>¤> §>, ¨>8,©>'®>8È 4°>'¶>8ûôd¸>8Å>'È>8ÀÊ>'Í>8·Ç4Ï>'Õ>8ÏÇD×> ß>'à>8Lâ> ë> ú> ì>8±Ålí> ˆ? ï@8Á
,š? Ÿ?  ? à@7=\
test_derive failed:
expected:
```
{}
```
got:
```
{}
```\nÁü¡??$ à?, ö?8,÷?'ü?8çtþ? Œ@ @ @8±ÅlŽ@$ œ@, ²@8,³@'¸@8çtº@ È@ Í@ É@8ÿ­Ê@$ Î@% á@% €Aܺ4Ó)<d<üÜ4-Lß4ÜÝ ÜÓ) Ýó1£9; é4;
<$ê4tokensÁ4ð4ü­83l°8Þß ÞÎI ß
£9 Ã8
=ÿ­¾8æ Ó8üä:Mtç:?à à
?ÄHªBªBö­B€9÷<®B÷<9)
-ÜnL ? FŠJö:
>setÁú:Dˆ;üö=Etù=áâ áÄH âÄHÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
£93 Ž>
@à’$ˆ>÷$>ü´N\”·Nã ãÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙŒ3¸œ ãŒ3¥BCBC ÕNÍìŒ3 ÊNÍ츜 ÍN–"¸œ£9lO¸œ£9˜"Œ3 ŽO
AŒ3¸œoptÁÐN± åN[]WYüÔV!8ää§,EdEüüV-LÿVåæ å§, æó1£9D ‰WD
E8$ŠWòÌ4WÄÝWë GG„+HIJâWôåXüüWC@ Returns a reference to the underlying `syn` AST node which thisÁäÄX `BindingInfo` referencesÁìXç ç„+ ë ®GF ðXF
Hë $ñXü®] ü¤Y:7 Generates the pattern fragment for this field binding.ÁãYúlëY
# ExampleÁ<ýY“ÅÔ‰Z # use synstructure::*;Áü¨Z2/ let di: syn::DeriveInput = syn::parse_quote! {Á„ßZ
enum A {ÁüôZ  B{ a: i32, b: i32 },Áœ™[ C(u32),ÁL±[¹Ø4¿[ };ÁüÊ[  let s = Structure::new(&di);Áï[ú|÷[ assert_eq!(Áü‹\85 s.variants()[0].bindings()[0].pat().to_string(),Á„È\
quote! {ÁÜÝ\ ref __binding_0Á¬ý\ }.to_string()Á4—] );Á<¢]“ŵ]è è„+ó1F ¹]F
Ië $º]ü«d4ü³^FC Returns a list of the type parameters which are referenced in thisÁŒþ^ field's type.Á”_údœ_ # CaveatÁ­_úüµ_JG If the field contains any macros in type position, all parameters willÁü„`GD be considered bound. This is because we cannot determine which typeÁüÐ`(% parameters are bound by type macros.Áý`úl…aîÖ<—a“ÅÔ£a‘×üÂa2µ×Äùa struct A<T, U> {ÁÌ–b a: Option<T>,ÁŒ´b b: U,ÁLÊb¹Ø4ØbÜØüãb$! let mut s = Structure::new(&di);ÁŒcú|”c¡Ùü¨c=: s.variants()[0].bindings()[0].referenced_ty_params(),Áüêc%" &[&quote::format_ident!("T")]Á4”dÖÚ<Ÿd“Ť²dé é„+ªBªBö­B€9÷<®B÷<9)
-ÜnL ë  FŠJF ÇdF
Jë $Èdü©nAl¬nêë ê®G ëÄHÎI Án
KÂ,ºnDÉnÜâo„éoë MMÌ/ˆÊ™ð®y¬²NOúoŒˆp4ˆpLLÎI´£pD£pLL ë ÄHüÆp+ë QQÌ/RS¶LMRSËpüåq%\èqìí ìÌ/ í F£9P ôqP
Rë $ùqidÁÿqü²t0„µtî îÌ/ ë ¾F¾F;¿FmacÁÂï®Àt£9P ÆtP
Së $Ëtà ÑtÄ»xë UU±.VXYZ[\_dhmoqrtvÀxüÚxVÝx“-Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¢ã¦å±.TT
Vë Æ
áxÃ4öxDyd|V<closure_kind>ÁW<closure_signature>ÁW<upvars>ÁWWVWΨÎL­NüÀ„,ü‡„41 Returns a slice of the bindings in this Variant.ÁDÇ„ï ï±. ï
„+T ЄT
Xë $Ñ„üÎ…8ü‘…85 Returns a mut slice of the bindings in this Variant.ÁdÕ…ð ð±. ðÏëT â…T
Yë $ç…ü¿‡#ü¯†B? Returns a `VariantAst` object which contains references to theÁüö†DA underlying `syn` AST node which this `Variant` was created from.ÁƇñ ñ±.“-T ʇT
Zë $ˇüÈ&üˆ=: True if any bindings were omitted due to a `filter` call.Á„ʈò ò±.T ÛˆT
[ë $܈üÒ ü«‰VS Generates the match-arm pattern which could be used to match against this Variant.Á†ŠúlŽŠîÖ< Š“ÅÔ¬Š‘×üËŠ2µ×„‚‹ð×Ä—‹ B(i32, i32),Áœ´‹³ØLÌ‹¹Ø4Ú‹ÜØüå‹ ìØŠŒú|’Œ¡Ùü¦Œ*' s.variants()[0].pat().to_string(),Á|ÕŒ quote!{ÁüéŒ30 A::B(ref __binding_0, ref __binding_1,)Á¬¡¸ÚÖÚ“ÅÙó ó±.ó1T ÝT
\ë  ‘\èè]€é]é]]\]Çœ ¹‚¥–\èè^€é^é^^\^ÇœÍõü½ ~üÆ™IF Generates the token stream required to construct the current variant.Á”šúüœšGD The init array initializes each of the fields in the order they areÁüèš&# written in `variant.ast().fields`.Á“›úl››îÖ<­›“ÅÔ¹›‘×üØ›2µ×œð×䤜 B(usize, usize),ÁÔÅœ C{ v: usize },ÁL䜹Ø4òœÜØüýœ ìØ¢ú¡Ùü¾A> s.variants()[0].construct(|_, i| quote!(#i)).to_string(),Á„žú|Œž¬òü ž! A::B(0usize, 1usize,)Á¬Æž¸Ú4àžÖÚëžú|óž¡Ùü‡ŸA> s.variants()[1].construct(|_, i| quote!(#i)).to_string(),ÁÍŸú|ÕŸ¬òôéŸ A::C{ v: 0usize, }Á¬Œ ¸Ú4¦ ÖÚ<± “ÅLÄ õ õ±.¸œó1T`¥aa` Ô T’Ó ΠÍ쾜 Ñ ô“"¸œ ô®GFÌŒ¡ô¸œþ˜"¾œ ¤¡c¾œD²¡
_ë ¸œ¾œ$Õ Ù¢fWˆŠ·¤_èèb€ébébb_•§_èèc€écécc_Çžü„±yüÿ©VS Runs the passed-in function once for each bound field, passing in a `BindingInfo`.ÁüÚªEB and generating a `match` arm which evaluates the returned tokens.Á¤«úü¬«IF This method will ignore fields which are ignored through the `filter`Á\ú« method.ÁЬúl’¬îÖ<¤¬“ÅÔ°¬‘×üϬ2µ×„†­ð×Ä›­ñœ¸­³ØLЭ¹Ø4Þ­ÜØüé­ ìØŽ®ú|–®¡Ùüª®MJ s.variants()[0].each(|bi| quote!(println!("{:?}", #bi))).to_string(),Áü®ú|„¯¬òü˜¯85 A::B(ref __binding_0, ref __binding_1,) => {ÁüÕ¯1. { println!("{:?}", __binding_0) }Áü‹°1. { println!("{:?}", __binding_1) }ÁlÁ°È̬Ӱ¸Ú4í°ÖÚ<ø°“Å$‹±ø ø±.¸œó1Te£fef –±T’Ó ±Íìõà “±ö÷“"¸œ öððóòŽóôÂõöº÷ÖPêêur¯¹÷ä˱ö÷¸œþ‡˜"õà æ±cõÃDô±
dë ¸œõÃ$—±±Ñhúüõ÷4­³dèèg€égéggd­Äü¦»§ü©´IF Runs the passed-in function once for each bound field, passing in theÁü÷´JG result of the previous call, and a `BindingInfo`. gene
*„ü»‚ò‰üÑŒ,ü–Œ63 Returns a slice of the variants in this Structure.ÁDØŒ “0 
±.w áŒw
|ë $âŒüá8ü¢:7 Returns a mut slice of the variants in this Structure.ÁdèŠ Š“0 ŠÚËw õw
}ë ü°$üÂŽCÏÔüŠ! `Structure` was created from.Á· “0²Æw »w
~ë ü¾&üóFC True if any variants were omitted due to a `filter_variants` call.Á„ÅŒ Œ“0w Öw
ë ü›™yüV´ÿüë‘C@ and generating `match` arms which evaluate the returned tokens.Á³’úü»’LI This method will ignore variants or fields which are ignored through theÁüŒ“*' `filter` and `filter_variant` methods.Á»“úlÓîÖ<Õ““ÅÔá“‘×ü€”2µ×„·”ð×ÄÌ”ñœé”³ØL¹Ø4ÜØüš• ìØ¿•ú|Ç•¡ÙüÛ•?½™Ÿ–ú|§–¬òü»–8„„üø–1Ç„ü®—1ƒ…lä—ÈÌüö—'·²ü¢˜1Ç„lؘÈ̬꘸Ú4„™ÖÚ<“Å$¢™ “0¸œó1w£ ­™w’Ó §™ׇ ª™Ž“"¸œ ððóòŽóôÂõöº÷ÖPêêur¯¹Žä♎¸œìÕ˜"õà ý™›‰D‹š
ë ¸œõÃ$®™± ¸™íïñóüÛ¤§üšœIÉüèœHE result of the previous call, and a `BindingInfo`. generating `match`Áüµ0- arms which evaluate to the resulting tokens.ÁêúüòLíÏüÞ*ÄÐòžúüúžC@ If a variant has been ignored, it will return the `init` value.ÁŸúlÊŸîÖ<ÜŸ“ÅÔ蟑×ü‡ 2µ×„¾ ð×ÄÓ ñœð ³ØLˆ¡¹Ø4–¡ÜØü¡¡ ìØÆ¡ú|Ρ¡Ùüâ¡DA s.fold(quote!(0), |acc, bi| quote!(#acc + #bi)).to_string(),Á«¢ú|³¢¬òüÇ¢8„„ü„£-ŽŽl¶£ÈÌüÈ£'·²üô£ 0 + __binding_0Ál˜¤È̬ª¤¸Ú4ĤÖÚ<Ϥ“Å$⤠“0·Õ¸œó1wš£ ð¤w’Ó ç¤ï ê¤ í¤“"¸œó1 ððóòŽóôÂõöº÷ÖPêêur¯¹ü®¥)¸œàÞ˜"ŠÖ ֥ȒD䥨’Dù¥
ƒë ¸œ·ÕŠÖ$ñ¤¼Þb›± „¥ü½°ü–¨C@ Runs the passed-in function once for each variant, passing in aÁüÞ¨JG `VariantInfo`. and generating `match` arms which evaluate the returnedÁ\­© tokens.Á½©úüÅ©JG This method will ignore variants and not bind fields which are ignoredÁü”ª63 through the `filter` and `filter_variant` methods.ÁϪúlתîÖ<骓ÅÔõª‘×ü”«2µ×„Ë«ð×Äà«ñœý«³ØL•¬¹Ø4£¬ÜØü®¬ ìØÓ¬ú|Û¬¡Ùäï¬ s.each_variant(|v| {Áü­&# let name = &v.ast().ident;Áü»­/, quote!(println!(stringify!(#name)))Á¼ï­ }).to_string(),Á‹®ú|“®¬òü§®8„„üä®'$ println!(stringify!(B))Ál¯ÈÌü¢¯'·²üί'$ println!(stringify!(C))Álú¯È̬Œ°¸Ú4¦°ÖÚ<±°“Ådİ “0¸œó1wˆ£ˆ ×°w’Ó Ѱׇ Ô°“"¸œ ¦¦¨¨Ã©üªÆ
«¬é;usÖ.ˆ
+䌱¸œ©é˜"õà §±›‰Dµ±
ë ¸œõÃ$ذ± â°äæèêü˽hü‘´OL Filter the bindings created by this `Structure` object. This has 2
Ôj
Fˆ" ®Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÞ=Þ=¥¿ß= where_tokenÁà= \§ðšsm’›(£9w ´®w
œë $µ®boundÁ,îˆHdß®¸$¯é°œèè€é霣9§Æ£9T®³œè螀éžéžžœžÜEÝEÞEMßEˆàEáEBareFnÁâEˆãEäEØiåEˆæEçE ImplTraitÁèEˆéEêE¯jëEˆìEíE¢kîEˆïEðENeverÁñEˆòEóElôEˆõEöEŸl÷EˆøEùEPtrÁ úEˆûEüEÊ
ýEˆþEÿEÙ €FˆFF TraitObjectÁ ƒFˆ„F…Fï
†Fˆ‡FˆFõn‰Fˆ Ó´[ƒ5£9 ¡
¡
¥
baseÁŒ
šI¼²'‡ÕïøÈÖJÖJ RandomStateÁ×Jk0ÁˆØJk1Áˆ‰ÌkqÇËŸŠJ  âÅ  ‰Åò´œè蟀éŸéŸŸœŸŒÈ£9üÖÁ?ü‹ÁFC This method is a no-op, underscore consts are used by default now.Á„ÝÁ¯ ¯“0šÏw îÁw
 ë $óÁ_enabledÁDùÁüíÒSü°ÂKH > NOTE: This methods' features are superceded by `Structure::gen_impl`.Á€ÃúüˆÃKH Creates an `impl` block with the required generic type fields filled inÁüØÃ" to implement the trait `path`.ÁÿÃúü‡ÄFC This method also adds where clauses to the impl requiring that allÁüÒÄ:7 referenced type parmaeters implement the trait `path`.Á‘Åú¼™Å # Hygiene and PathsÁµÅúü½ÅIF This method wraps the impl block inside of a `const` (see the exampleÁü‹ÆEB below). In this scope, the first segment of the passed-in path isÁüÕÆKH `extern crate`-ed in. If you don't want to generate that `extern crate`Áä¥Ç item, use a global path.ÁÆÇúüÎÇIF This means that if you are implementing `my_crate::Trait`, you simplyÁüœÈKH write `s.bound_impl(quote!(my_crate::Trait), quote!(...))`, and for theÁüìÈJG entirety of the definition, you can refer to your crate as `my_crate`.Á»ÉúdÃÉ¿ÜÔÉúüÜÉKáÂü¬ÊGµÝüøÊ(†Þ¥Ëúd­Ë¾¬¾ËúüÆËDA Panics if the path string parameter is not a valid `TraitBound`.ÁÌúl—ÌîÖ<©Ì“ÅԵ̑×üÔÌ2µ×´‹Í€€Œ¦Í €̼Í»€LÚ͹Ø4èÍÜØüóÍ$ðßœÎúü¤Î0Ï“ÙÎú|áΡÙüõÎ2´‚¬¬Ïð‚¼ÆÏ¢å|âϬòÜöÏ«ƒü–Ð#уü¾Ð3ÿƒüöÐ2/ where Option<U>: krate::Trait,Áü­Ñ)é…ŒÛÑœ†ìñÑ·†Œ“Ò®Ìt©Ò솬¼Ò¸Ú4ÖÒÖÚ<áÒ“ÅTôÒ° °“0úõúó1w¡¢£¢£ ™ÓwÍìú ÿÒÍìõú ŒÓcúD‚ÓcõúDÓ
¡ë úõú$šÓõ
š¾“Í¥¾ac\^üºåZüèÔKôθÕúüÀÕK×ÏüÖ)& to implement the unsafe trait `path`.Á¾ÖúüÆÖFçÐü‘×:¸ÑÐ×ú¼Ø×‰Òô×úüü×I¸ÒüÊØEŒÓü”ÙKÜÓääÙ±Ô…ÚúüÚIåÔüÛÚK¹Õü«ÛJÖúÛúd‚ܿܓÜúü›ÜKáÂüëÜGµÝü·Ý(†ÞäÝúdìݾ¬ýÝúü…ÞDá×ÎÞúlÖÞîÖ<èÞ“ÅÔôÞ‘×ü“ß2µ×´Ê߀€Œåß €Ìûß»€L™à¹Ø4§àÜØü²à$ðßÛàúüãà0Ï“˜áú| á¡Ùü´á96 s.unsafe_bound_impl(quote!(krate::Trait), quote!{Á¬òáð‚¼Œâ¢å|¨â¬òܼ⫃üÜâ#уü„ã:7 unsafe impl<T, U> krate::Trait for A<T, U>ÁüÃã2çÚüúã)é…Œ¨äœ†ì¾ä·†Œàä®Ìtöä솬‰å¸Ú4£åÖÚ<®å“ÅŒÁå± ±“0úõúó1w¡¥¦¦¥ íåwóÝ Óå…Þ àå—ÞDÖå§ÞDãå
¤ë úõú$îåõ
‘“͜ÂJLNPüÔôUüÂçKôÎ’èúüšèK×Ïüêè"­Ð‘éúü™é;8 This method will not add any where clauses to the impl.ÁÙéú¼áé‰Òýéúü…êI¸ÒüÓêEŒÓüëKÜÓäíë±ÔŽìúü–ìIåÔüäìK¹Õü´íJÖƒîúd‹î¾¬œîúü¤îDá×íîúlõîîÖ<‡ï“ÅÔ“ï‘×ü²ï2µ×´éŒ„ð €Ìšð»€L¸ð¹Ø4ÆðÜØüÑð$ðßúðúü‚ñ0Ï“·ñú|¿ñ¡ÙüÓñ41 s.unbound_impl(quote!(krate::Trait), quote!{Á¬Œòð‚¼¦ò¢å|Âò¬òÜÖò«ƒüöò#уüžó52 impl<T, U> krate::Trait for A<T, U> {ÁìØó·†Œúó®Ìtô솬£ô¸Ú4½ôÖÚ<Èô“ÅdÛô² ²“0úõúó1w¡¨©¨© ‚õwóÝ èô…Þ õô—ÞDëô§ÞDøô
§ë úõú$ƒõõ
ýÅ“ÍÆJLNPü›„\üâöKôβ÷úüº÷K×ÏüŠø)·Þ¸øúüÀø;ÿç€ùú¼ˆù‰Ò¤ùúü¬ùI¸ÒüúùEŒÓüÄúKÜÓä”û±Ôµûúü½ûIåÔü‹üK¹ÕüÛüJÖªýúd²ý¾¬ÃýúüËýDá×”þúlœþîÖ<®þ“ÅÔºþ‘×üÙþ2µ×´ÿ€€Œ«ÿ €ÌÁÿ»€Lßÿ¹Ø4íÿÜØüøÿ$ðß¡€úü©€0ϓހú|怡Ùüú€;8 s.unsafe_unbound_impl(quote!(krate::Trait), quote!{Á¬ºð‚¼Ô¢å¬òÜ„‚«ƒü¤‚#уüÌ‚<9 unsafe impl<T, U> krate::Trait for A<T, U> {Á샷†Œ¯ƒ®ÌtŃ솬؃¸Ú4òƒÖÚ<ýƒ“Ål‰„œ¢„³ ³“0úõúó1w¡«¬«¬ ЄwóÝ ¶„…Þ Ä—ÞD¹„§ÞDÆ„
ªë úõú$Ñ„õ
ÌÉ“Í×ÉJLNPü¶†©l¹†´ ´“0ó1ó1ó1Íþó1w Іw
­ë $цõ
$߆“Í$ú†¬
4•‡¸$²‡üåÉ7üÚ’EB Generate an impl block for the given struct. This impl block willÁü¤“DA automatically use hygiene tricks to avoid polluting the caller'sÁüí“GD namespace, and will automatically add trait bounds for generic typeÁ|¹” parameters.ÁÍ”údÕ” # SyntaxÁæ”úüî”OL This function accepts its arguments as a `TokenStream`. The recommended wayÁü•HE to call this function is passing the result of invoking the `quote!`Á
macro to it.Á¤–úl¬–
```ignoreÁ¼¾– s.gen_impl(quote! {ÁüÚ–LI // You can write any items which you want to import into scope here.Áü«—IF // For example, you may want to include an `extern crate` for theÁüù—FC // crate which implements your trait. These items will only beÁüĘHE // visible to the code you generate, and won't be exposed to theÁÔ‘™ // consuming crateÁܰ™ extern crate krate;ÁЙúüØ™JG // You can also add `use` statements here to bring types or traitsÁ´§š // into scope.ÁTš //ÁüÑšHE // WARNING: Try not to use common names here, because the stableÁüž›MJ // version of syn does not support hygiene and you could accidentallyÁüð›.+ // shadow types from the caller crate.Áü£œ$! use krate::Trait as MyTrait;ÁÌœúüÔœLI // The actual impl block is a `gen impl` or `gen unsafe impl` block.Áü¥@= // You can use `@Self` to refer to the structure's type.Áüê$! gen impl MyTrait for @Self {Áü“ž fn f(&self) { ... }ÁL·ž¹Ø4Åž })Á<О“ÅÜžúüäžFC The most common usage of this trait involves loading the crate theÁü¯ŸIF target trait comes from with `extern crate`, and then invoking a `genÁ„ýŸ
impl` block.Á úlš 
# HygieneÁ¬ úü´ IF This method tries to handle hygiene intelligently for both stable andÁü‚¡B? unstable proc-macro implementations, however there are visibleÁ„É¡