Files
boc/aamos-ledger-rust/target/debug/deps/libyoke-e00e8f69447c8036.rlib
T

502 lines
234 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 74 `
šØ_ZN4yoke12cartable_ptr12sentinel_for8SENTINEL17h878a6925906b1de4E// 58 `
yoke-e00e8f69447c8036.yoke.e53e37da729f1181-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 235928 `
ELF·˜@@GNUÀrust
x•#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁstable_deref_traitÁê7#JÙ iÕ‰~òÏ-e121373445e25e3fÁ¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁ yoke_deriveÁ×ã„Ô„ýT·+CIƒ•sÙ-ad663b8de2c8c776ÁzerofromÁ“zÂÚ¤‰ÔžˆÁÕÁpâ-ebe6d0d4f33b764dÁzerofrom_deriveÁŸæþÇŽá2?M¥e (-abe85a41d9dcc735Á¤»¤Œ«BoxÁÄ»¤ŒžÆò»¤ŒÏK¡»¤Œüa$ÃtestsÁ, a$•aerasedÁ4œ»¤Œ€
ErasedArcCartÁlß»¤Œ·
ErasedBoxCartÁl$&€ ErasedRcCartÁdý»¤EG€øŒ»¤ŒæÆº»¤Œ—K黤ŒÄ×o»¤Œó×ToOwnedÁ< »¤ í cartable_ptrÁ sentinel_forÁ¥SENTINELÁprivateÁ SealedÁCartablePointerLikeÁRawÁinto_rawÁdrop_rawÁCloneableCartablePointerLikeÁ
addref_rawÁ'aÁ¥Ô¥ôþÔ¥¿!!Œ
!
from_cartableÁ!is_noneÁ&&ã))ƒ,.0eitherÁ22226C0Á6C1Á6¥6å6´;2=º =Ã =¥2Aº AÃ kinda_sorta_danglingÁDDDDDDDKindaSortaDanglingÁK¥KdangleÁDN¥Næ N
into_innerÁDR¥RåR´DV¥VDY¥Yã macro_implsÁ\\\\\copy_yoke_implÁ\impl_copy_typeÁ\unsafe_complex_yoke_implÁ\dÔd¥d'bÁd°\iÔiT1ÁiÍ iT2ÁiÍ i°\pÔp¥pÍ pŸp p°v utilsÁxxtransform_mut_yokeableÁzÔzªzz£zÍ yokeÁ 
YokeÁŒªŒÔŒŒyokeableÁŒcartÁªÔÔטª˜˜Ô˜Ô˜×žªžžÔžÔž¤ª¤¤Ô¤Ô©ª©©Ô©Ô©ï
¯ª¯¯Ô¯Ô¯µªµÔµµattach_to_cartÁ¹¹'deÁµtry_attach_to_cartÁ¼¼¼Òµattach_to_cart_badlyÁÀÒµtry_attach_to_cart_badlyÁÂÂÒŪÅÔÅÅgetÁÉÔÅ backing_cartÁÅinto_backing_cartÁÅ replace_cartÁÍC2ÁÍimpl FnOnce(C) -> C2ÁÅwith_mutÁÐÔÐÐÍ Åwith_mut_returnÁÔÔÔÔ£ÔÍ Åwrap_cart_in_optionÁÚªÚÔÚnew_always_ownedÁÚ
into_yokeableÁ ߪßÔßß new_ownedÁßtry_into_yokeableÁ
åªåÔåå convert_cart_into_option_pointerÁ êªêÔêêä
CloneableCartÁ ð¥
òÔò¥öªöÔööÔöƒüªüÔüü map_projectÁ¡ÔÔümap_project_clonedÁ'thisÁ¡ÔÔütry_map_projectÁ¡ÔÔütry_map_project_clonedÁº¡ÔÔü!map_project_with_explicit_captureÁ˜¡˜¥˜Ô˜Ôü(map_project_cloned_with_explicit_captureÁº¡¥ÔÔü%try_map_project_with_explicit_captureÁ£¡£¥££Ô£Ôü,try_map_project_cloned_with_explicit_captureÁ©º©¡©¥©©Ô©Ô°ª°Ô°°
map_with_cartÁ´¡´´Ô´Ô°map_with_cart_clonedÁ¹º¹¡¹¹Ô¹Ô°try_map_with_cartÁ¿¡¿¿¿Ô¿Ô°try_map_with_cart_clonedÁźšÅÅÅÔÅÔ̪ÌÔÌÌwrap_cart_in_either_aÁÐÌwrap_cart_in_either_bÁÒõ××YokeableÁÙÔÙ°Ù transformÁÙtransform_ownedÁÙmakeÁÙ
transform_mutÁßßÍ ×âÔâ¥â°â â® âÅ âÑ ééÍ ×ìÔì¥ì°ì ì® ìÅ ìÑ óóÍ  zero_fromÁööööööüªüüÔüÔüattach_to_zero_copy_cartÁ CartableOptionPointerÁinnerÁ _cartableÁ ×2
EitherCartÁº à 
ˆ
ˆ2º à ƒ2º à 2 º  Ã  2¤º ¤Ã ¤Ö2¨º ¨Ã ¨×\¬Ô¬°¬ ¬® ¬Å ¬Ñ ²²Í \µÔµ°µ µ® µÅ µÑ »»Í \¾Ô¾°¾ ¾® ¾Å ¾Ñ ÄÄÍ \ÇÔÇ°Ç Ç® ÇÅ ÇÑ ÍÍÍ \ÐÔаРЮ ÐÅ ÐÑ ÖÖÍ \ÙÔÙ°Ù Ù® ÙÅ ÙÑ ßßÍ \ âÔâ°â â® âÅ âÑ èèÍ \
ëÔë°ë ë® ëÅ ëÑ ññÍ \ ôÔô°ô ô® ôÅ ôÑ úúÍ \ ýÔý°ý ý® ýÅ ýÑ ƒƒÍ \
Ô° ® Å Ñ ŒŒÍ \Ô° ® Å Ñ Í \˜Ô˜°˜ ˜® ˜Å ˜Ñ žžÍ \¡Ô¡°¡ ¡® ¡Å ¡Ñ §§Í \ªÔª°ª ª® ªÅ ªÑ °°Í d d® dÅ dÑ Í i i® iÅ iÑ ¼¼Í p p® pÅ pÑ ÂÂÍ %
(
+
;
U
X
[






£
£
®
®
´
´
Ë
û



œ
£
£
§
«
«
«
¯
¸
Á
Ê
Ó
Ü
å
î
÷




¤
­
ïÙ  Ô¥¥1¥1¿cš#¿#ŒÌ#+@{ÐöFŒ"Ë1ØË1ïË1ÌìË1 Ë1؈˜ˆZЋýÔ𫺠à ÐìÃ2µßÃ2Ã2Ã2¿cÃ2é!Ã2Ã2ïÃ2é!KKÃ
Mã
DZù¸øû}·¥ö!è3Œ"è3ÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÔÙÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ«1ÔÙè ø ÔÙ«1ŸÔ¿cŒŒÑõŠ+Ô[
•FªÄc¦7µß¦7¦7¦7íߦ7¦7º¦7ïÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ’4ï¥1ï³4ئ7Ù «1ÔÙ PhantomDataÁFu\»Ÿ«1Ô


¨Œ&YK)öŒ,AðÛ¼ò
õ
.0 žŒ¤¤Œ6RK=V
µ¾ÇÐÙâëôý˜¡ªdÛ¼i
pâ
ì• ˜Œ©Œ¯Œ ¿cŒ"Ø ïÌì Ðìµßé! ö!ÙÄccíߺ

  Ã4*üÐ
 ’4ü¹
7´¹

ž41$ô
ü‘ ã§ ïíe¼îËè¿*’4 ª= Ã4¬Ð
û<Üý<ãfÁ=¨
è «1§ ïíe¼îËè¿*«1ñ ü¶ ;€?ú> ,ô>¤í!ü„!i³4¬!€?D—!_pointerÁ5ˆ$ ü#k³4Ç#€?D²#Ç? -(ÝI  °’L ÉA§ ïíe¼îËè¿*ƒ2Z ¿cÈ®L  ÉA
»8Fu\»Ÿƒ2L 
X µBõú
ûc ˜0âIH Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
³4ŸÈŸÈ ÈErrorÁ O˜éBLÐ Ë1Û  c cˆ¢cµ
 `£cbufÁ `àB¤GS
"ÉA*ÉAµB# ñA.ÉAµBÊ  åBØ“Fàu±ƒŽöEµBƒ‘FµB·C¨ĤN´¤N
ŸBüŠNa ƒ2åBñN#üãMŽË1$ûMñAlüF|œŒPD•P
ƒ2DŒPT•P1 ì ÄÁP´ÁPüF9 ô ‰ ë  A Œ öEI – öE¹ ¹  
·ßñAñAI ¹ Q Æ  39 ù ò! 
ǽá Ö  Û¼äÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]Tdù –] ù – 
òWñAñA
! · Q ½ Y É  § EüäPG ƒ2åB±Q$üÅOìü€P±ù ‹ ù çŸ 
Ë1$ñOƒ2DáOñA,„PöEöEÑöEöEññAöEÝöEÒÄǽȽɽ}ʽ˽NeÁ̽ͽMatchÁBÙe±æµé! ë _Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙŠJcartableÁ¿# left_valÁÐ right_valÁÒ­
Œ„H~üFI§IçôJ&T¤SñAIJS´²SüFü¤S&§IRB ÐS%üüRT$•SŒE,‹SöEöEñAŒ @üF¨§IƒTÛTñAòTÄùT´ùTüFüòT
¸ßñAñAWL*0ĈW´ˆWüFüûV%ñA„ýW\ýW
ƒ2‰X$ŸX(ü´TëüÑTγ4ÆT Ë1L¼TñAÕTàöE!öEñA!ñA¿9µ =süFP¸Q,üFò«RÆT¹YñAÐYÄ×Y´×YüFüÐY¸QMB &”ß[lß[
ƒ2í[$T \ñAü†\S ƒ2åBß\+üü¯Y° Ë1$ YŒE,YñA³Y³4üÍY°ãöE$öEñA$ñA¤Dµ H{üFS¸Q/þTÿ(
Ñ
"
Ë3!
Ù32:
À3!
Ù‹32:¤ 33
Õ
Ê 33&
Ö
œ
Ã2 Ã2%ó5- ‹3Ò‹3Ù ‘3!3)[__self_0Á àXUÇWh…X0 H Ø
*8 H˜YW d t|ˆ˜Y¦³Á˜YÐÝ Ë˜Y3)˜Y83O[in
·ß¼Y¼Yƒˆ À˜Y
3)˜Y8 3O 
[
 in
·ß«Y«Y ƒ
ˆ á
£&,3:AM˜YU˜Y]ó5eó5mt˜Y˜Yó5ˆó5ó5˜«Y!«Y) «Y4È_<¼YؼYà ¼Yëë_ó˜Yæ˜Yî˜Yö˜Yþ˜Y˜Y˜Y ¹
. __self_discrÁH __arg1_discrÁ`àXí
__arg1_0Á àX¡‘`­¡ù\À^2 å
§ ã
³4˜Y!*4(
ç
"
Ë3B JÉA, 8
 µBrw
‡dˆ 
jš
À‹3¸ÀÉA,8µBèí«cùþe 
ì
«#)0 ˆD=˜YE—EMó5U«Y¿ÉAdµBÎÈ_Õ¼YRÉAµBbë_jœ±ªàXàXœÍë_µB±«cßÈ_µBI«cí# Û‘3
ë!3 á ¼‹3
ë!3 Â* Ê éü¡Tû;ü挺ŒÙ ¥ù˜YÁhVó5«Y×ÁhüY*Áh9¬­UùfL¾g
Äœ„œ
ñ4%üóL K4ÅPü¾è3’4ÑÛÑÛ MaybeUninitÁÓÛuninitÁÝÔÛ»ÝÍõƒ«%9’4Ãã
bÚiàêÕÛ
 Úi& ³
 K4 ¾
Pè3’4¼j’4tã
/R¼ÚŒÚ
¼è3%
ë!ÃÛÃÛ ManuallyDropÁÅÛ»¬µÜÀ,%*è3e]a¼jüº „È
ø’4”ÈâQüØŠüÍ’4 úè3Ëm ¼jå è3ï Ëm 3manualÁ=pm`Åm-¼n¿\€¼jì€
ú’4/ŒŒ¥UüÀå ’4Ó¢o˜or7špy¼jìÁ
û’40ŒÍæXüñõ ’4 è3 ¼jy=´q¼jħ 
ö’40ü§ (
ø’4Eà [ü®²³4À÷q³4[ª=Œƒr© BÔr¯ÿrŠ ý¯øÊA ³4há²t(× 2ë°ø¦E³4`³4 ¹ û³45ͱøG³4 ¬³4 thisÁW³4:8ó ó
™" ³4;C²øèœ³4Çv`ü¿vŠÅvˆ± N¹v± ý¸øÊAý<háý<(× / Ýë¹ø¦EÃ4`ÂÃ4 ¹ / ¿ÍºøGÃ4 ¬Ã4 õt
08ó ó
™"¿v Ã48@»øèœ³4žz`ü¿vŠœz± N“z® ýÁøÊA Ó4háÚ{(× 2 ÝëÂø¦EÓ4`ÂÓ4 ¹ / ¿ÍÃøGÓ4 ¬Ó4 õt
08ó ó
™"¿v Ó48@Äøèœ³4ø}`ü¿vŠö}± Ní}® ýÊøÊA ã4há´(× 2 ÝëËø¦Eã4`Âã4 ¹ / ¿ÍÌøGã4 ¬ã4 õt
08ó ó
™"¿v ã48@Íøèœ³4Ò`ü¿vŠÐ±!PDZ ýÓøÊA ó4hᑃ(× 3 ÝëÔø¦Eó4`Âó4 ¹ / ¿ÍÕøGó4 ¬ó4 õt
08ó ó
™"¿v ó48@Öøèœ³4°…`ü¿vŠ®…±!P¥…± ýÜøÊA ƒ5háï†(× 3 ÝëÝø¦Eƒ5`ƒ5 ¹ / ¿ÍÞøGƒ5 ¬ƒ5 õt
08ó ó
™"¿v ƒ58@ßøèœ³4މ`ü¿vŠŒ‰±!Pƒ‰± ýåøÊA “5háÍŠ(× 3 Ýëæø¦E“5`“5 ¹ / ¿ÍçøG“5 ¬“5 õt
08ó ó

ù-¤ST  
 È,µ¸,µ
À¬ "ˆx,Ò
À¡6 !ø,µ.É/ÔS  
àW)#@ÉA)# ((,üø,ü+§­  
¸,½ˆ,½
¼¬
@  'p,œH,œ
Ý¡6 (ø,îÈ µ6ø,òÄø,µ ¡6 ,”¬r“5Ç“5§d§­&€¬à,ü„­UÃÛÃÛ×lÅÛ»¬µÜÀ,%*¬?¬jÜ÷µ  š²j²I‰³ˆ´´´k¬,ø,Ë-ø,Ë$
z¡6³4;,‚ø,À³4 ¡6`,ÔÀ·±K¶·§ø1Ñ, ø6Ûý6Ûø1Ï.1‰¹ø1±Ø õ¸€1Ë ö6@1¾ô¸z ö6˜1Ò K (1ßè1Þ
Ûö6õ¸°1Þ01õ ¸1•ˆ1•
¼ö6?&p1¾H1¾
Ýõ¸)ø1“Ѻ6ø1¿ø1Mõ¸`1¯ö6ô¸kã¹ιVÃÛÃÛ×lÅÛ»¬µÜÀ,%*ö6ö6G¹nµ ÛåẪ·»\â»7ö6ö
ù2¤ST  
 È1µ¸1µ
Àõ¸ "ˆx1Ò
Àö6 !ø1µ.É4ÔS  ‰³)#@ÉA)# &(1üø1ü+ã¹  
¸1½ˆ1½
¼õ¸
@  'p1œH1œ
Ýö6 (ø1îÈ »6ø1òÄø1µ ö6 1”õ¸p“5Å“5¥bã¹&ô¸à1üÀ¹UÃÛÃÛ×lÅÛ»¬µÜÀ,%*õ¸?õ¸jÜ÷µ  Ö¾hþ¾G‰³ÂÀîÀkõ¸,ø1Ë-ø1Ë$
zö6³4;1‚¼ø1À³4 ö6`1ÔúñKðçø6Ñ, ƬŸø6Ï.6‰¿ø6±Ø ¯Å€6Ë 7@6¾®Åk 7˜6Ò K (6ßè6Þ
Û7¯Å°6Þ06õ ¸6•ˆ6•
¼7?&p6¾H6¾
ݯÅ)ø6“ÑÀ6ø6¿ø6M¯Å`6¯7®ÅkŽÆùÅVÃÛÃÛ×lÅÛ»¬µÜÀ,%*77G¹nµ ÛåŒÇªâÇ\È77ö
ù7¤ST  
 È6µ¸6µ
À¯Å "ˆx6Ò
À7 !ø6µ.É9ÔS  ‰³)#@ÉA)# &(6üø6ü+ŽÆ  
¸6½ˆ6½
¼¯Å
@  'p6œH6œ
Ý7 (ø6îÈ Á6ø6òÄø6µ 7 6”¯Åp“5Å“5¥bŽÆ&®Åà6üëÅUÃÛÃÛ×lÅÛ»¬µÜÀ,%*¯Å?¯ÅjÜ÷µ  Ëh©ËG‰³íÌ™Ík¯Å,ø6Ë-ø6Ë$
z7úó496‚Âø6À³4 7`6ÔúñK›Ð¥ º 
 üÍ& ªÛüÍ-
ÂüÑüÑAüÇ3  
$ 5
™"À· üÑP6?ˆüè   z3ü¶R
£ ¸ ÿÑÀ· ¯”ÓêûÑ!ûÑK ÿÑ”ÎÀ·ÿ’ÓèõR±UÄÆÌÒˆÓ,À·Ø4÷%
ÉA´è%dê%
÷c è%6¤ê%.T&
ÉATž&£&
Éà7æ7$ž&
,£&- 
µBüè%A,Œ&
Ù`¬v eìŒ&4½& 
 ÉAœÅ&dÊ&
Ëà7æ7$Å&
tÊ&- 
µBüè%q,·&àÖŸ p _ü·&"üè%‡4ç&
à`NDç&õ&ü™%܈DŒÌ% ¦7, %—E §% Í`Í` DebugStructÁÐ`×µ`Ñ` µ`Ò`
has_fieldsÁµ`ã¹q·Ù›ß¨úòØòØ$ôØ-ÉAKÉAµBô à7ÛÉAµB æ7šÜ±àÏÕ  ÖV‹ÚµB_àÖ'©×ä¯ÚµBíàÖµ›ØTó(ø( Ö$ó(,ø(üÛ(&¼Û(
ÅcÚC ÿ(+‡)üŒ({ˆDŒ¿(ÝØ,“(—E š(‹Ú± K Ö½ÚÛœT¹*¾* Ö$¹*,¾*%\Ç*Í* Ö,Ç*,Í*%̹*
·ß‹Ú‹ÚV+Ø*£üŒ*L$ª*ÝØ,’*ÝØ,™* ‹ÚÕ‹ÚÝÂÞ²‹Úº8¹
;f Ö ÖëæÝ¾Tž-£- Ö$ž-,£-\µ-»- Ö,µ-,»-üž-#\©-
ïßÚÚoMÄ©-Ç-®üÑ,vÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¿ßÀßÁßLessÁÂßÃßÄß~Å߯ßÇßGreaterÁÈßåºÝÈnûê7Üø,ÝØ,à,ÝØ,ç,‹Úe‹ÚG'¹
*û Ö Öy‚àYTý./ Ö$ý.,/\Œ// Ö,Œ/,’/Üý.ˆ/
»ÚiG„ˆ/ž/´üÀ.^‰áœß.ÝØ,Ç.ÝØ,Î.‹Ú»‹Úœ%¹
(U Öí Ö̶ã« d×V 
 æV 
$èVdèV,íV
ë!æ7*<íV|æV  #
™"À· æ7ê!¡NW ôV 
¬ÚY<ÚY
Þà7dâY (üœW伜W
Pà7 üÑY ($ŽZ
üÿVž Œà7æ7
£Z ¢Zü¡R‚ÉÙ ¹2üÓVÐ ¦7$ÌRæ7$ºRÀ· ÃRÚèÀ·Ý掃æÀ¯ÚÙKKÃ
Mã
DZù¸øû}·à73à7æ7ŽŒ± deserializedÁ ¯åW÷å5ÊæËúæ¤æ7CÀ·õdË^
 Ú^
$Ü^ dÜ^,á^¯å %<á^|Ú^ #{
™"úÃæCL è^
€<Ú^
ž$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÚÔ w{

„Ú^ lÚ) dÚa
¬Òa<ÒaÊæ7=é^ [Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ˆê)?ÈXM´­êì
¡$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¦7êì°î ì   ›b

ü”_ä¼”_úæüÉa  $$†bü÷^ž
Œà7æ7üô^¢ Ö¿¦7êì
œ¤°
œbà üä\¸ß ï
& 7 ¼TüÇ^Õ07>½¬ï|–]æ7$„]úà ]Úf•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜°îÚá˜ìPúìæbƒæ¯Ú¨ó5ÿ°îÚ¦7Åïèà7óÚwæ7ôHvø±ûÖèeŽ { ¹ÿ Ã
¯å<Ìë’ìÀÊæÓ¦ïÎæ7Ãúæ¥æ7ÐÚ×úÃìæd¤æd
¹à7æ7 …æà7Û$ûd eQ‰eÀüÍc¼¦7$×dæ7$òcö ƒd±E‘öüôg!Äôg
¼à7æ7êì¢öÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¬öêì$h “h›hÂü¾fݬï|Úgæ7$êfå÷ ûf±FÕ÷ûlrïèÌr
ë!ïè/!'L«r
Üà7W\«r¼rÉü×qe‹ÚüóqÝØDæq à7 ïè¨ Díù¯”úµTàtæ7ðtËüµt;¯ÚÓtÝØ,Ét .æ7 ÞïèßÌü¢=æ7 Ħ7 /ïèa
   ' /9 Al•ŽïèüƒŽ ŒƒŽ
¼ïè4( ¸Ž  LºŽ  æ7d¸Ž [
™"Þæ7t5>üŸ’"ÄŸ’
½ïèD¸’ +$Ï’
üÎŽ Œà7Ô 
ä’ ã’  üÇ0@ Pæ7ÍGüôðü­Ž·
ŒŒÑõŠ+Ô[
•Fà7êÿ¦7õþ ÂÃÛÃÛ×lÅÛ»¬µÜÀ,%*ïèïè[êÿ$±Žõþ.ûþóæ7ïèÀêÿšahŸ±¡õl}õýÎïþe©ÿ(êÿÀõþÇæ7Íô–¨ l–¨ïè?D
÷!ïè/_ ²¨ l¤¨
ßà7úÃ}F„¤¨»¨ü‰§² º¨Ð6³4³§ ¦7d §úà ®§³4) à74 ïèúÃæ|D±F©¨„yñ„úôœÙ­ lß­ïètÞ­¨„, î­ ü»­5ì»­
zà7úãªO6ö­ü†¬ð õ­Ô6’ˆ ¾¬í…d§¬úà µ¬í˜†
úÃÝm6±8š¨„.„ˆòú伞°d£°
Íà7æ7Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙæ7
à¼æ7$ž°$°°ÜŠ ”£°½°ÙüܮጌÑõŠ+Ô[
•Fà7”Š”€¯¦7$÷® nˆŠü¡¹!¼¡¹úæD¹¹$üÙ·Š Œà7³4)#³4é¹Ýü¢·ÇŒŒÑõŠ+Ô[
•Fà7³4$Ê·à7Dº·ïèÆõvúæälÖ¼ïèÔÖ¼Tä¼
Qà70dä¼ö¼Þü»»»à7 Ù»$лïèx9¶ŽüŠÇ!¼ŠÇúæD¢Ç$$¿Ç Û¼æ7ü›Æ³ Œà7”ŠÔÇãüåÅï©‹$ŒÆà7DüÅï蔊}õBúæÃͺÀä
ëçúæä ªÇìò Û¼æ7ï Œà7”Š ÍÇ ùðãþ©‹ùà7öïèà7”Šyõ@
LîÊ '”Š|èÊMl³ËïèÔ³ËTÁ˶Ž, dÁË$•Ë L‘Ë Ö¿à7©‹ ™Ëô°Ë Ö¿à7©‹ ÍË ÞËüŸÉÀ&ßË=”ŠQ”ŠäYÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
à7©‹|ÁÉ©‹$¸Éó5<†Ë©‹aà7ïè®7¶Ž¿”Š'”Š.
L–Ú”Š|Ú)l÷ÝïèìœÞÜœÞ
#æ7 $³Ú”ŠÛæ7l‚Üïèü§Ü*ü§Ü$
$æ7$ÌÜ*ü¼Ú¤ Œà7š#¿#ŒÌ#+@{ÐöFæ7 ßÜüöÜÒ Œà7—™ ÇÞÙÞ V ü³Ù¦éü®Ú²ŒŒÑõŠ+Ô[
•Fà7—™üäÙ!©‹$ÛÙó5T®Úæ7©ïè—™ïèý—™ñBäËŽ˜æ˜ÌïèïèP œÜá '/9ALÜá—™a<æá
%æ7. Læálâ ïèÔâTâ¶Ž> dâôþá Ö¿à7éšüÙát$¾â 'Lºâ Ö¿à7éš^ Òâüá&Óâ=—™Q—™fïè {
î~ Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
à7éš|¿áéš$¶áq —™2à7Åïèõéš/6G7§Ä¶Ž —™c—™jïèqTÅõÊõ Ö$Åõ,Êõ”Åõ,Ðõ
ÙÚH<ÐõlÔ÷<Ô÷Êæ$Ü÷#üþõô¼þõúæÄË÷%L†øæ7Œ†ø,ø
Ùæ72<øüáõÁ Œà7æ7¨ø ¡øüãôÅûüºõî¦7$öôÝØ,ìôÚ$¾õ‹Úyïèà7îæ7ЯÚî?õtAˆ ÖÁâ¢ÊævúæTø£ïèÈ
 ‚”   †”  lˆ”ïèÔˆ”T–”¶Ž,d–”üˆ”,|£”
Ýà7HŒ£”ü†”< )# »8Fu\»Ÿ²t@ HTæ
™"úÃÚϧzƒ Á”  T’—<’—
Þ¡ š—
 .üé”ļé”
Pí¨
¬‰—  +LÁ— æ7üÌ” Œí¨æ7  Û—üƒ’ØÉ Ù   Ú—æ7Jüþ“Ý
ŒŒÑõŠ+Ô[
•Fí¨æ7T«’¦7$œ’úà ¢’í¨Û¬úà ¨ÚTà7ïè£KKÃ
Mã
DZù¸øû}·í¨í¨æ7yú ±¢»Gk¶Žš§ï–¨Çç¨0©úÃUæ7r
 ôœ   øœ  Túœÿœ Ö$úœ ,ÿœÔøœ )#ϧ ".
™"‹ÚϧœU ^   TâŸ<âŸ
Þ¡ êŸ-ü¹Ä¼¹
P—¯¬ÙŸ*L‘ 
æ7Œ‘ ,› ø£
- < üœ Œ—¯æ7 ³  ¬ ü¿šô 5üðœÃ ŒŒÑõŠ+Ô[
•F—¯æ7TüšÝØ\æšÅ® óš—¯ÛnÅ®bË®‹ÚRKKÃ
Mã
DZù¸øû}·—¯¯—¯æ7|¯Ú˜±š»O ÖÞ¿®»‘¯IƯø£à´²Å®| ô°  ø° lú°
ïèÔú°Tˆ±¶Ž
, dˆ±üú°,|•±š§ AŒ•±üø°< )#ϧ#/º–¨ÆEN ³± ø>ø°=

ž$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
µ«Ùy}  üø°=
lµ«!+
´ Tˆ´<ˆ´ç¨: !?´± [Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
þîî¶s
¡$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ت¸ Û Ñ´ æ7 ü߱ļ߱©¬ÿ³
&L·´æ7ü± Œí¨æ7ü¿± Ö¿تî¶«³¿ Ò´üØ®úàð
/"æ7 jüð°â6=DÈ£¹¬‡¯¦7$ø®úà þ®µ«­•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜º¸µ«ñœ¶cúÃò ¨uÚ¦à7×ïèõó5º¸µ«ŸتÜó«!í¨µ«æ7l±»Ž Ž ¹
ç ¶Žš§d–¨C–¶áç¨ï¹ïæ7î©Ëµ«üúÃ!æ7  Œº  º T’º—º Ö$’º,—ºÔº )#ϧ".¿®DM ©º Ø@º 
ž$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
‡²×w{  ܺ l‡² * †½ Tþ¼<þ¼‘¯:!Aªº
[Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
þîäˆs
¡$Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
©±ä®Ä
Ûþ Ͻ  üպļպƯ¬õ¼
 &L­½æ7Œ­½,·½ø£-
 <·½ü¸º Œ—¯æ7
üµº Ö¿©±ä ÌÔà н Ƚ
üº·
%
P
a
WüˆºÈV]dç—Ŭþ·ÝØ\è·Å® õ·‡²•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜®Ä‡²’ÂÅ®ÕË®‹ÚÅó5 ®Ä)‡²®©±Ì´²<—¯+‡²æ7¯Ú5§û±ý»Ž ¥
¹- Ë
 Ör¿®OŒÂÿ‘ÅüƯàø£§´²‡²Å®6
 Ô   lçÂïèÔçÂTõ¶Ž, dõÂüçÂ,|‚Ú§A Œ‚Ã<¡Ã  üØÂtY6)#ϧ\¶Ã ,TœÆ<œÆç¨ ¤Æ
 $üóÃļóé
¬“Æ  &LËÆ æ7üÖà Œí¨æ7  åÆ äÆæ7üŽÀ×$4 ˜3üÐÂ
تTŒÂ¦7$ÆÀ¥<ÔÀ¬ö’л8Fu\»Ÿ ³4í¨Û èÀµ«OÚóà7$ïèB’Ðåó«pí¨_æ7W»captureÁ±z»ËF¶Ž£š§ŸÐ>稩ðæ7Š’Ð
 ®Ì   T´Ì¹Ì Ö$´Ì ,¹Ì<ÀÌ  ü²Ì#[6)#ϧ\ÉÌ ,T¥Ï<¥Ïç¨ ­Ï $üüÌļüÌ©¬œÏ &LÔÏ
æ7ŒÔÏ,ÞÏø£
- <ÞÏüßÌ Œí¨æ7 öÏ ïÏ ü²ÉÄ õÏ 6üªÌÌ تTÌËÝØ\øÉ’Ð<Ê ¬ö’ЪÐÙÐ ¡Êµ«‹Úè’ÐÇó«Rí¨Aæ7#¯ÚB¼zÑÐ}±k»u Ö`¢Öç¨ð©Íø£ó«D’Ð+ ÇÕ '/lÚÕ ïèÔÚÕTèÕ¶Ž ,dèÕüÚÕ,|õÕš§AŒõÕ<”Ö 
üËÕtY
6)#ϧ\©Ö,øBËÕu
–¶H# / AüËÕu
lµ«!+
›Ù T“Ù<“Ùç¨: !C¿Ö [º¸ß ¹ ,ù ÜÙ æ7 üêÖļêÖ©¬ŠÙ
&LÂÙæ7üÍÖ Œí¨æ7üÊÖ Ö¿تî¶«³¿ ÝÙÓæ7
üäÒùô & £VüÃÕš£¹¬ôÔ¦7$£Ó’Ð<±Ó¬ö’ЪÐÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÙÐî¶ ÅÓµ«î£½œ¶?Úà7Ãïèá’Ðó5tº¸}µ«تðó«5í¨$µ«ñæ7%Ñб»»«Ž  ¹
õ ¶Žš§gøÞ$–¶ùç¨a¹æ7©íæ7µ«$’Ð+ òß '/Tøßýß Ö$øß,ýß<„à üöß#[6)#ϧ\à,øDöß$
–¶H# / Aüöß$ lµ«!+ õâ Tíâ<íâç¨:!E™à
[º¸ß ¹
,ù ¾ã  üÄàļÄ੬äâ
 &Lœãæ7Œœã,¦ãø£-
 <¦ãü§à Œí¨æ7
ü¤à Ö¿تî¶ ÌÔà ¿ã ·ã
üÙÜæ%6
G
©Wüîßѧ®µ9£¹¬…ßÝØ\¦Ý’Ð<»Ý§Ö’ÐªÐ†ß Ïݵ«£½Ôœ¶‹Úd’ÐCó53º¸<µ«ÂتŽó«þí¨íµ«°æ7دÚ÷HO½ÑÐÀ±±»7Ž Æ
¹O 
 Ö(‡éã–¶¸ç¨ ¹Æ©°ø£wó«êµ«å’Ðì
 Óÿ  ×ÿ læÿïèÔæÿTôÿ¶Ž, dôÿüæÿ,|š§A Œ ‘€ L €
æ7Œ €,ª€¯å
,  <ª€ü×ÿe   &.:
™"úÃÚƒæ2a j »€ TŒƒ<Œƒç¨ ”ƒ  $üã€Ä¼ã€© ¬ƒƒ  &L»ƒ
æ7üÆ€ Œí¨æ7 
Õƒü¦ý¯Ì Ü ì ü
 Ôƒæ7´jüÏÿتTÐý¦7$Áýúà Çýµ«ÌúîžîàÚbà7ï豃æ*¯ÚHó«Tí¨Cæ7;¿Æ±ˆ»V4 ¶Žš§ì¯å¡”îç¨ñ©ÎÚ(úÃ/æ7)  
  ‘‹
 T“‹˜‹ Ö$“‹
,˜‹LŸ‹æ7ŒŸ‹,©‹¯å-
<©‹ü‘‹  
(
™"Å®‹ÚƒæÑM
V °‹
 TŽ<Ž‘¯ ‰Ž
#ü؋ļ؋Ư
¬ø %L°Ž æ7Œ°Ž,ºŽø£ - <ºŽü»‹ Œ—¯æ7  ÒŽ ËŽ üªˆ¨ö
 ¹4ü‰‹É©±TéˆÝØ\ӈŮ àˆ‡²MÅ®AØôÁ‹Ú1ƒæú¯Ú´²K—¯:æ7¯Ú<¬w±y»Èð Ö¤¯åkÎôK‘¯áƯ¿ø£´²7Å® í— '/ ñ— l€˜
ïèÔ€˜TŽ˜¶Ž
, dŽ˜ü€˜,|›˜š§ AŒ›˜ «˜ Lº˜ æ7Œº˜,Ɲå , <Ęüñ—e   &.:”î#R[ Õ˜ øFñ—f
–¶ž#
/
Aüñ—flµ«!+ ²› Tª›<ª›ç¨:
!GÖ˜[º¸ß ¹, ù ó› æ7 ü𤋮¡› &LÙ›æ7üä˜ Œí¨æ7üᘠֿتî¶«³¿ ô›ü£•Ñàð&7HYDæ7
¿Œüé—¨¯:£¹¬Ô•¦7$Å•úà ˕µ«G£½¸œ¶IúÃ)žî[ÚÝà7ïè,ƒæ¥¯ÚÃó5Cº¸Lµ«Òت¿ó«í¨óµ«Àæ7ôO|ƒË±Í»Ž ƹOÏ
¶ŽÔ𧲝åg”îG–¶Æç¨.¹Ôæ7Ý©ºµ«ëÚúÃæ7ÿ Ø£  Ü£ Tޣ㣠Ö$Þ£,ã£Lê£
æ7Œê£,ô£¯å
- <ô£üÜ£   (ÎôÂ>G û£ øHÜ£!
ŒÂx" . @üÜ£!
l‡²!+
ئ TЦ<Ц‘¯: !Iü£ [®ÄÞ ‘Å ,÷ ¡§  ü§¤Ä¼§¤Ư¬Ç¦
&Lÿ¦æ7Œÿ¦,‰§ø£- 
<‰§üФ Œ—¯æ7ü‡¤ Ö¿©±äÂÌÔà ¢§ š§üØ Ê%HYÅWüԣΦ­´8—Ŭž¡ÝØ\ˆ¡Å® •¡‡²¿¸É’Â!Å®³Øô3‹Ú£ƒæl¯Úó51®Ä:‡²À©±´²ý—¯ì‡²®æ7ׯÚöG`¼±¾»Ž  ¹?
Œ  Öb¯å)Îô ŒÂ®‘¯‘żƯ¨ø£o´²â‡²ÝÅ®öüŽá d“á
Íà7æ7ˆ˜ˆZЋýÔð«æ7
æ7$Žál á£ Ü“á¶áÐüêßÌŒŒÑõŠ+Ô[
•Fà7ÒŽÌ“à¦7$Šà nÆŽ)ü‰å dŽå
Íà7æ7ˆ˜ˆZЋýÔð«æ7
Ñ‘æ7$‰ål›åÚ‘ ÜŽå±åÒüåãÌŒŒÑõŠ+Ô[
•Fà7‰‘ÌŽä¦7$…ä ný)Ö† ŒÈ†Ô³4ц&()Áç» ŒÙ»Õ³4â»&()Á݉ ŒÏ‰Ö³4؉&()Á$™X£Xæü”W ú>L®Wª•D¡W 1$¹YÃYçü¶Xú>,ÒXú>$ÉX -$—[¤”[®[èüÖYØú>$õYú>$åY «1”–[÷9$ß^üØ^.$_  _
™"À· ú>7?œ_éüÁ[ÛüÇ^Uü²\ê³4è[ø—dÕ[À· ã[ø—¦ ú>Œß^ö—¨0±3Ä Ë^ì—ß$´e¾eðüÿd? ­9„™eã™DŒe 0fñüÄe=­9dàe­9$×e )#­92Æfòü‡f?­9$­f­9$f÷ )#­93<šh  šh
™"À· ­97?§hóüÌfÛ³4ófç›dàfÀ· îfå›± MÛ›¬ü—
Mä—

¹à7æ7à7æ7Ã5¢ö¬ö³4
)#üº
)[ê
üÜ Ž¦7
æ7 .©ü¾
%ü¾
"

Ú…æ á
-ã
©Ú½
¿ƒæ »
® ݾž ¾ ‹3‘3+Ã263=D É ‹3‘3+Ã263=D2D\x€×öíýÙýPƒçïÑ$ÿŒZeroFromÁDÕ
ˆ½ 4ˆü²¬ü™jg This crate provides [`Yoke<Y, C>`][Yoke], which allows one to "yoke" (attach) a zero-copy deserializedÁü„ object (say, a [`Cow<'a, str>`](alloc::borrow::Cow)) to the source it was deserialized from, (say, an [`Rc<[u8]>`](alloc::rc::Rc)),ÁüŒif known in this crate as a "cart", producing a type that looks like `Yoke<Cow<'static, str>, Rc<[u8]>>`Áüö*' and can be moved around with impunity.Á¡úü¥fc Succinctly, this allows one to "erase" static lifetimes and turn them into dynamic ones, similarlyÁüŒTQ to how `dyn` allows one to "erase" static types and turn them into dynamic ones.ÁáúüåXU Most of the time the yokeable `Y` type will be some kind of zero-copy deserializableÁü¾ UR abstraction, potentially with an owned variant (like [`Cow`](alloc::borrow::Cow),Áü”
 [`ZeroVec`](https://docs.rs/zerovec), or an aggregate containing such types), and the cart `C` will be some smart pointer likeÁü— Ž [`Box<T>`](alloc::boxed::Box), [`Rc<T>`](alloc::rc::Rc), or [`Arc<T>`](std::sync::Arc), potentially wrapped in an [`Option<T>`](Option).Á¦ úüª da The key behind this crate is [`Yoke::get()`], where calling [`.get()`][Yoke::get] on a type likeÁü
a^ `Yoke<Cow<'static, str>, _>` will get you a short-lived `&'a Cow<'a, str>`, restricted to theÁüñ
pm lifetime of the borrow used during [`.get()`](Yoke::get). This is entirely safe since the `Cow` borrows fromÁüâro the cart type `C`, which cannot be interfered with as long as the `Yoke` is borrowed by [`.get()`](Yoke::get).ÁüÕif [`.get()`](Yoke::get) protects access by essentially reifying the erased lifetime to a safe local oneÁœ¿ when necessary.ÁÓúü×74 See the documentation of [`Yoke`] for more details.Á2D\x€×öíÍýÎÙýßPƒçÎïÑÍŒ½ Å
ˆ½ Ø4ˆFIL¤ÔüË85 Types for optional pointers with niche optimization.ÁúüˆNK The main type is [`CartableOptionPointer`], which is like `Option<Rc>` butÁü×MJ with a niche so that the resulting `Yoke` has a niche. The following fourÁü¥74 types can be stored in the `CartableOptionPointer`:ÁÝú 1. `&T`Á 2. `Box<T>`Á 3. `Rc<T>`Á 4. `Arc<T>`Áœúü OL These four types implement the sealed unsafe trait [`CartablePointerLike`].ÁüðKH In addition, all except `Box<T>` impl [`CloneableCartablePointerLike`],Áü¼@= which allows [`CartableOptionPointer`] to implement `Clone`.Á çl‰ï»8\Û»8§ StableDerefÁ\˜É4 
¤‚€ÌÍo”ìOü„8ü‘ "d” ö=¥  Íì’4 ¡ 
4 
¤º   Ã4ƒ
 „ë  Îìœë ʹʹ|†ü:ü˜85 An object fully representable by a non-null pointer.ÁÑú # SafetyÁâú¼æ Implementer safety:Áþúü‚`] 1. `into_raw` transfers ownership of the values referenced by [`StableDeref`] to the caller,Áüã(% if there is ownership to transferÁüŒWT 2. `drop_raw` returns ownership back to the impl, if there is ownership to transferÁäúüè_\ Note: if `into_raw` returns the sentinel pointer, memory leaks may occur, but this will notÁüÈ  lead to undefined behaviour.ÁéúüíXU Note: the pointer `NonNull<Self::Raw>` may or may not be aligned and it should neverÁüÆVS be dereferenced. Rust allows unaligned pointers; see [`std::ptr::read_unaligned`].Áœ®ʹüØÒ¹ Ò¹ʹ7®À,½À#ʹI®À>½À5ÍìÒ¹†ÁüÞDA The raw type used for [`Self::into_raw`] and [`Self::drop_raw`].Á4­¿ü(üÉ.+ Converts this pointer-like into a pointer.Á4D’Ò¹§ ïíe¼îËè¿*ŽÁ
Ò¹$›üÃ0ü½74 Drops any memory associated with this pointer-like.ÁùúdÛ¹ú”š Caller safety:Á±úü¹EB 1. The pointer MUST have been returned by this impl's `into_raw`.Áüƒ(% 2. The pointer MUST NOT be dangling.ÁŸÃ³4
Ò¹ ü÷Bü÷?< An object that implements [`CartablePointerLike`] that alsoÁü·EB supports cloning without changing the address of referenced data.ÁýúdÛ¹Žú¼’ü¹ªúü®KH 1. `addref_raw` must create a new owner such that an additional call toÁüú41 `drop_raw` does not create a dangling pointerÁü¯GD 2. `addref_raw` must not change the address of any referenced data.Áäˆʹü÷éÒ¹œ¦ʹ(ÀÊʹ4ÀÊ)ü¬2ìÀ Clones this pointer-like.ÁâúÛ¹ûú”ƒãÚúü¢E‹Äüì(Úğó4
Ò¹ äâÔ¥Íì«1 ë¥1ç
üÞ0Ô¥‚Í î¥1ê"$D• š «1ü¶ ¥1€?
Ô«1lü„!(DŽ!€?³4
Ô«1Ç?½üÏ"9Ô¥‚Í ß"¥1  Û"ü#*T§#€?³4
Ô«1Ç? üÌLB""Íìƒ2 ÑLƒ2œúLË1#$%äãM$ñMË1!!
#ƒ2üÅO0lÓOƒ2Ë1!!
$ƒ2•M˜%ìüRü·QC@ Returns whether this instance is `None`. From the return value:ÁÿQúü‡R'$ - If `true`, the instance is `None`Áü³R63 - If `false`, the instance is a valid `SelectedRc`Á<ƒSÅ ÅË1! S!
%ƒ2$ŒSüÔSK''ÙÐ ÙSéМ‹TË1("(”´T$·TÆ ÆË1³4& ¼T&
(ƒ2$ÁTü£XU**ÙÐ ¨Xƒ2äÛXË1+Ù+ ¼Y,YÇ ÇË1Ë1) Y)
+ƒ2$—Yüä]s--ÙÐ ð]ßÕä«^ïƒ2lÊ^Ë1 ü_T//ÙÐ ©_Ììƒ2$×_éМÞ_Ë1!ü¶`T11ÙÐ Â` ƒ2$ð`éМ÷`Ë1 üË&# Types to enable polymorphic carts.Áçï23r,
¶4üØ#è34NN
Q4 7üæ0¥SSƸ ëôßè3TUê!ë!U \RR’4¬ÀÉ Éè3 É’4R ÉR
U’4ü©3¥WWƸ ®ôßè3X÷!Xüñ!Ê Êè3 Ê’4V þV
X’4üê/¥ZZƸ ïôßè3["[”®Ë Ëè3³4Y Y
[4ýÙ\]ýP\]ƒ×ldñÃÛ\_µ ÿ\`|ÐT$åŒì2 "܆t“ ¢ Œ ¨ ©*« ® 3+ ¸ ¹ À8Ý8 Ê8  Ö Ü ×8(Þ á8'æ8° ï Š8+   œ8Ý4–8 ¦8®  ¸ ½8(¿8'Æ8° Ï ê8+ ô õ ü8Ý8"4†8 8Å $  §8õt$•& 8$'Ÿ8°(©8 ± Ì8õt$¿+ Ö × Þ8Ý8 è8Ñ  ø8 ù ú û Ž ü:Ôý88$„$ ˆ8± Š& 8 8$,˜8 ª& «:7<­ µ8
· º:Í » ½84¿ Å Ú Æ:Í Ç8Ê8'Ò8°$ Û å ƒ8± ó ô ù8% ŠÜŽt› ª ½  ° ·, ±8´²& ´8´µ*¹ ¼ º 
8"8 Ñ:ÔÒ Ô8ý Þ:Ôß á8
ã, ç8´è ë ´  8!8° 8$‡ % 8ò t™  §  ¨  © % ª % » üõ
%Ä‚  Š ¡ ¢*¤ § ,8 ±8  ½ Æ ¾:Ô¿8(È Ë:ÔÌ8'Ó8° Ü ˆ8" Í þ Ï
Ð Ñ ü 88×
Ú888æ
é88'ô8°8 8® |– ¥ ª8(¬8'³8° ¼ ã8" ­ Ù8¿8µ Ã& Æ
È88'Ó8° Ü Þ ó ß88å
è88 ô8castÁ ù ú% û88  8×ld•'¡8æ £ ¦ «8% ¬8µ ¾'Á8readÁ Ç Ë8µ È8"8 õ8Å  ü 8÷& 8'8°4‰(8$”  µ8 debug_assertÁ ³ ´ ã8š'¼ ¾8$¿'Ã8° Ë Ì ÍÏ8š'Ù Û8 à á â% ä8ò8µ ö ú ü8÷8
8,†8'8°48
œ8,8% §8µ8 ¹ »8×l'É8æ Ë Î Ó8÷% Ô8"4“ š «8µ œ'Ÿ8ôô ¥ ©8µ ¦8 À8Ñ  Ð8 Ñ Ò Ó æ Ô:ÔÕ8Ø8$ à8± â& ã8 å8$8 & ƒ:7<… 8
 :Í  84—  ² ž:Í Ÿ8¢8'ª8°$ ³ ½ 8'Ð8¾
'×8Î
´Ù ï ÷8$ ô8± ö% ˆü˜MÔe¥fef‚Í ¨«1gÙ«1g¤µ¡6h³´µÛÜÝÞßµ³´¤df¹ddÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ«1ÔÛüÕuÔjè kø mkmjÍìø6åÍìý6ø6lÙø6l¤óý6<nÙý6n¤—
”­K¾
xýÙýPƒ»8\úˆ»8ˆ×ld–ÃÛr,³é!ŠöœÏñóÌ–åü/×dÅÉ|×»Ì쑼‹m„¨^ü¾OüÅ+üï;8 A Cow-like borrowed object "yoked" to its backing data.Á«úü¯GD This allows things like zero copy deserialized data to carry aroundÁü÷QN shared references to their backing buffer, by "erasing" their static lifetimeÁüÉ2/ and turning it into a dynamically managed one.Áüúü€C@ `Y` (the [`Yokeable`]) is the object containing the references,ÁüÄFC and will typically be of the form `Foo<'static>`. The `'static` isÁü‹ RO not the actual lifetime of the data, rather it is a convenient way to mark theÁüÞ (% erased lifetime and make it dynamic.Á
úü‹
ZW `C` is the "cart", which `Y` may contain references to. After the yoke is constructed,Áüæ
YV the cart serves little purpose except to guarantee that `Y`'s references remain validÁüÀ da for as long as the yoke remains in memory (by calling the destructor at the appropriate moment).Á¥ úü© `] The primary constructor for [`Yoke`] is [`Yoke::attach_to_cart()`]. Several variants of thatÁüŠ
YV constructor are provided to serve numerous types of call sites and `Yoke` signatures.Áä
úüè
c` The key behind this type is [`Yoke::get()`], where calling [`.get()`][Yoke::get] on a type likeÁüÌañªü®c` lifetime of the borrow used during `.get()`. This is entirely safe since the `Cow` borrows fromÁü’a^ the cart type `C`, which cannot be interfered with as long as the `Yoke` is borrowed by `.getÁüôa^ ()`. `.get()` protects access by essentially reifying the erased lifetime to a safe local oneÁœÖÄ®êúüîli Furthermore, there are various [`.map_project()`][Yoke::map_project] methods that allow turning a `Yoke`ÁüÛc` into another `Yoke` containing a different type that may contain elements of the original yokedÁü¿A> value. See the [`Yoke::map_project()`] docs for more details.Áúü…\Y In general, `C` is a concrete type, but it is also possible for it to be a trait object.Áâú
# ExampleÁôúüøQN For example, we can use this to store zero-copy deserialized data in a cache:ÁÊú ```rustÁ¬Ú # use yoke::Yoke;Á´ð # use std::rc::Rc;Á܇ # use std::borrow::Cow;Áü£74 # fn load_from_cache(_filename: &str) -> Rc<[u8]> {ÁüÛ! # // dummy implementationÁüýKH # Rc::new([0x5, 0, 0, 0, 0, 0, 0, 0, 0x68, 0x65, 0x6c, 0x6c, 0x6f])Á # }ÁÑúüÕIF fn load_object(filename: &str) -> Yoke<Cow<'static, str>, Rc<[u8]>> {ÁüŸ52 let rc: Rc<[u8]> = load_from_cache(filename);ÁüÕOL Yoke::<Cow<'static, str>, Rc<[u8]>>::attach_to_cart(rc, |data: &[u8]| {Áü¥52 // essentially forcing a #[serde(borrow)]ÁüÛ>; Cow::Borrowed(bincode::deserialize(data).unwrap())Á })Á«úü¯/, let yoke = load_object("filename.bincode");Áüß'$ assert_eq!(&**yoke.get(), "hello");Áü‡52 assert!(matches!(yoke.get(), &Cow::Borrowed(_)));Á ```ÁªÍìà7 ÕÍìæ7 îŽÙà7Ž¤Ø¦7Š+Ô[
•FLNÜOQüñŒŒïè<ñ"$ñ"ŒŒæ7üÿ#“ª½£ „$Í£ $Ùà7¤‡$¿cæ7„ $¿cà7Û%¦7—Àcjl$uwà$ü™%Dœ%ÌÍΠ̦7 Í c cˆ¢cµ
 `£c¸D `àB¤GS
ΈD  %
à7æ7$¡%±ìküù&Œªšš½£ þ&Í£ 'Ùà7¤³'œÄcà7œÛ”ò'¦7Åc[]`b·'Ñ'üŒ(D(ÏÐÑ Ï¦7 Рc cˆ¢cµ
 `£c¸D `àB¤GS
шD˜ “(˜
à7æ7$”(±­mü‹)zªŸ Ÿ ½£ )Í£ “)¡Ùà7¡¤¼)¢µßà7¢Û¹«Lû)¦7£·ß£acfhÀ)Ú)üŒ*"*ÒÓ Ò¦7 Ó¦7ž ’*ž
£à7æ7$“*¹
¼nüÜ*lª¥¦¦¥½£ á*Í£ ä*§Ùà7§¤†+¨à7¨ÛÅ+¦7PRUWŠ+¤+üÎ+|ªª««ª½£ Ó+Í£ Ö+¬Ùà7¬¤€,­íßà7­ÛНT¿,¦7®ïß®acfh„,ž,üÑ,B\Ô,ÔÕ Ô¦7 Õ¦7Äà© à,©
®à7æ7$á,¹
€püË-nª°±±°½£ Ð-Í£ Ó-²Ùà7²¤ö-³ºà7³Ûµ.¦7´»´[]`bú-”.üÀ.2Ã.Ö× Ö¦7 צ7‰á¯ Ç.¯
´à7æ7$È.¹
qüŸ<aª¸¸½£ ¤<Í£ ½<·Ùà7·¤§<æ7\À<…æ<ø<¦7¹¼ÀÂQS«<\^ü¡R£ü‡=EB Construct a [`Yoke`] by yokeing an object to a cart in a closure.ÁÑ=úüÙ=QN The closure can read and write data outside of its scope, but data it returnsÁü¯><9 may borrow only from the argument passed to the closure.Áð>úüø>RO See also [`Yoke::try_attach_to_cart()`] to return a `Result` from the closure.ÁÏ?úü×?UR Call sites for this function may not compile pre-1.61; if this still happens, useÁü±@41 [`Yoke::attach_to_cart_badly()`] and file a bug.Áê@útò@ # ExamplesÁ…Aú<A‡¢¬™A´³AŸ›ÜÎA¾›üîA7ã›üªB!¤œüÐBKÏœ< C£¬Cúü´CIÀü‚D5“žü¼DOÒžüE5«ŸüÊE>êŸTF± ,œFÄ ¦Fúü®FB? let yoke: Yoke<Cow<str>, _> = load_object("filename.bincode");ÁüõF'˜¡ü¡G5É¡<ÛG‡¢çGúüïG;8 Write the number of consumed bytes to a local variable:Á¯Hú<·H‡¢¬ÃH´ÝHŸ›ÜøH¾›ü˜I7ã›üÔI!¤œüúI?< # Rc::new([0x5, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0, 0, 0])Á<¾J£ÊJúœÒJ fn load_object(Á¼êJ filename: &str,Áü†K52 ) -> (Yoke<Cow<'static, str>, Rc<[u8]>>, usize) {ÁüÀK5“žüúK$! let mut bytes_remaining = 0;Áü£L30 let bytes_remaining = &mut bytes_remaining;ÁüÛLGD let yoke = Yoke::<Cow<'static, str>, Rc<[u8]>>::attach_to_cart(Á|§M rc,ÁÜ»M |data: &[u8]| {ÁüÛMEB let mut d = postcard::Deserializer::from_bytes(data);Áü¥NEB let output = serde::Deserialize::deserialize(&mut d);ÁüïN?< *bytes_remaining = d.finalize().unwrap().len();Áü³O.+ Cow::Borrowed(output.unwrap())ÁtæO },ÁTùO );ÁüˆP  (yoke, *bytes_remaining)Á,­PÄ ·Púü¿PC@ let (yoke, bytes_remaining) = load_object("filename.postcard");Áü‡Q'˜¡ü³Q5É¡üíQ# assert_eq!(bytes_remaining, 3);Á<•R‡¢t¨Ræ7À·¦7µººµ÷… ·R»–"À· »…æüÒUJ»À·ÌŘ"à7»Ûä€Vݳ<¼V
¹à7æ7À·²s±¼sz|ÖUüä\Ôü©ZRO Construct a [`Yoke`] by yokeing an object to a cart. If an error occurs in theÁü€[@= deserializer function, the error is passed up to the caller.ÁÅ[úüÍ[U—¶ü§\85 [`Yoke::try_attach_to_cart_badly()`] and file a bug.Á”ë\æ7úìﵽ¾¾½µÍìêì þ\Íìúà ]¿–"úà ¿…æü»]U¿úÃÔɘ"Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
à7¿Ûêìüé]'ݳ<°^
¼à7æ7êìúÃøx±yâäÞà¿]üÍcŽü¢b# Use [`Yoke::attach_to_cart()`].ÁÊbúüÒbda This was needed because the pre-1.61 compiler couldn't always handle the [`FnOnce`] trait bound.Ál»c¤Ôcæ7Á Á…æà7ÁÛ¦7µµ
Àà7æ7{± {Šdü¾f«üe'$ Use [`Yoke::try_attach_to_cart()`].Á»eúüÃedúÊl¬fÄÅfæ7Ä Ä…æÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
à7ÄÛêì¬ïµÃõ¢É Þf
Âà7æ7êì |±|!#‚güŸh+ªÆÈÆÈ½£ ¤hÍ£ ½hÇÙà7Ǥ§h¦7ÉËÌÍÐÔÙAC«hLNü×q;üÑh1. Obtain a valid reference to the yokeable dataÁ‡iúüiMJ This essentially transforms the lifetime of the internal yokeable data toÁ
be valid.ÁüóiJG For example, if you're working with a `Yoke<Cow<'static, T>, C>`, thisÁüÂj# will return an `&'a Cow<'a, T>`Áêjúlòj䙄kú\Œk횬œk´¶kŸ›ÜÑk¾›üñk7ã›ü­l!¤œüÓlKÏœ<£m£,¯mü¹mKH # fn load_object(filename: &str) -> Yoke<Cow<'static, str>, Rc<[u8]>> {Áü‰n74 # let rc: Rc<[u8]> = load_from_cache(filename);ÁüÅnQN # Yoke::<Cow<'static, str>, Rc<[u8]>>::attach_to_cart(rc, |data: &[u8]| {Áü›o@= # Cow::Borrowed(bincode::deserialize(data).unwrap())Ádào # })Á<ño£ýoúü…pC@ // load_object() defined in the example at the top of this pageÁüÍpBƹü”q$! assert_eq!(yoke.get(), "hello");Á<½q‡¢ÞqÊ Ê¦7 Êà7ÊÛÅâqÅ Ö$êqüµt üÂr(% Get a reference to the backing cart.Áïrúü÷rXU This can be useful when building caches, etc. However, if you plan to store the cartÁüÔs\Y separately from the yoke, read the note of caution below in [`Yoke::into_backing_cart`].Ád¼tØ Ø¦7 Øæ7Å ÉtÅ©×$Êtü¢#üöt@= Get the backing cart by value, dropping the yokeable object.Á»uúüÃu]Z **Caution:** Calling this method could cause information saved in the yokeable object butÁü¥v[X not the cart to be lost. Use this method only if the yokeable object cannot contain itsÁ¤…w own information.Ážwúl¦w䙸wúüÀwYV Good example: the yokeable object is only a reference, so no information can be lost.Ážxú<¦x‡¢œ²x use yoke::Yoke;ÁÊxúüÒx&# let local_data = "foo".to_owned();ÁüýxKH let yoke = Yoke::<&'static str, Box<String>>::attach_to_zero_copy_cart(ÁìÍy Box::new(local_data),Á4ïy );Áüúy# assert_eq!(*yoke.get(), "foo");Á¢zúĪz // Get back the cartÁüÇz(% let cart = yoke.into_backing_cart();Áôôz assert_eq!(&*cart, "foo");Á<—{‡¢£{úü«{@= Bad example: information specified in `.with_mut()` is lost.Áð{ú<ø{‡¢Ì„| use std::borrow::Cow;Áœ¢|Þߺ|úüÂ|&‡à”í| let mut yoke =Áü„}IF Yoke::<Cow<'static, str>, Box<String>>::attach_to_zero_copy_cart(ÁüÒ}! Box::new(local_data),ÁTø}€Âü‡~" assert_eq!(yoke.get(), "foo");Á®~úü¶~  // Override data in the cartÁÌÛ~ yoke.with_mut(|cow| {Áüù~# let mut_str = cow.to_mut();ÁÄ¡ mut_str.clear();Áü¾  mut_str.push_str("bar");Á });Áüï" assert_eq!(yoke.get(), "bar");Á–€úÄž€ùáü»€(›âüè€)& assert_eq!(&*cart, "foo"); // WHOOPS!Á<‡¢Œ©¦7æ7ÅÅ
Ìà7æ7Ø}üLüå74 Unsafe function for replacing the cart with anotherÁ¡‚úü©‚<9 This can be used for type-erasing the cart, for example.Áê‚údò‚Û¹ƒƒúü‹ƒTQ - References from the yokeable `Y` should still be valid for the lifetime of theÁìäƒ returned cart type `C`.Á†„úüŽ„^[ For the purpose of determining this, `Yoke` guarantees that references from the YokeableÁüñ„b_ `Y` into the cart `C` will never be references into its stack data, only heap data protectedÁüØ…eb by `StableDeref`. This does not necessarily mean that `C` implements `StableDeref`, rather thatÁü†eb any data referenced by `Y` must be accessed through a `StableDeref` impl on something `C` owns.Á¬‡úü´‡gd Concretely, this means that if `C = Option<Rc<T>>`, `Y` may contain references to the `T` but notÁ¤ ˆ anything else.Áü¹ˆ[X - Lifetimes inside C must not be lengthened, even if they are themselves contravariant.Áü™‰XU I.e., if C contains an `fn
fn slice(Áü½¢)& y: Yoke<&'static [u8], Rc<[u8]>>,Áüë¢:7 ) -> Result<Yoke<&'static str, Rc<[u8]>>, Utf8Error> {Áüª£@= y.try_map_project(move |bytes, _| str::from_utf8(bytes))Á,ï£Ä <ù£‡¢…¤úü¤9ÛÖˤú<Ó¤‡¢üߤ!Ïüœ…¥–ý´¥Ÿ›ü¸¥&‚ì,㥜Ôüí¥*óפœ¦ð‚Ôµ¦ bytes_1: &'a [u8],ÁÔÔ¦ÙØ,ó¦Ä ý¦úä…§˜Ùü¦§*¿ÙüÕ§:Œíü”¨A> bar.try_map_project(|bar, _| str::from_utf8(bar.bytes_1))Á,ڨĠä¨ú,쨜Ôüö¨5ˆÛü°© ÈÛüÕ©1óÛ”‹ª®Ü\¢ªÊÜ,²ªœÔü¼ª/îÜüðª<¨Ý”±«®Ü\È«ÊÜ,Ø«œÔüâ«1™Þü˜¬-ÕÞ\ʬÊÜ,Ú¬œÔüä¬1©ß|š­äßü®­8þß\ë­Ààüû­0Öà\°®ÊÜ<À®£<Ì®‡¢|ß®¦7úã¹ü¡ŒŽŒŽü†ã ï®³É ò®Íìî¶ õ®Ùí¨¤²¯–"úÃà7Û»8Fu\»Ÿ ³4üÓ¯úüö˜"Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
í¨Ûî¶üº°&
à7æ7í¨úÃî¶ž±žBEHKEH¶¯ׯüº·¿üØ´JG This is similar to [`Yoke::try_map_project`], however it does not moveÁü§µR÷äþµúü†¶aáåüì¶IÍæ´Á·µèÅ®—Åüº¡üé ß·“é â·Íìä å·Ù—¯¤©¸øËlʸ–"Å® ºà7Û»8Fu\»Ÿ ³4üä¸Å®Ñû˜"Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
—¯ÛäÂüÒ¹&
à7æ7º—¯Å®äÂ$ï·±(¤,Ø·adgjdg­¸è¸üŽÀ³üÕ½PM This is similar to [`Yoke::map_project`], but it works around older versionsÁüª¾NK of Rust not being able to use `FnOnce` by using an explicit capture input.Áüý¾B? See [#1061](https://github.com/unicode-org/icu4x/issues/1061).ÁÄ¿úüÌ¿=: See the docs of [`Yoke::map_project`] for how this works.Áü•À!¦7’Мà7œÛ’л8Fu\»Ÿ œ³4í¨œÛتü¡¥ššü†ã ·ÀÍì’Ð ºÀÙí¨¤¬Â