Files
guba-indicator/rust/target/debug/deps/libsync_wrapper-883cbc50b8c77ef5.rmeta

73 lines
19 KiB
Plaintext
Raw Normal View History

rust
<EFBFBD>H#rustc 1.93.1 (01f6ddf75 2026-02-11)<29><02><05><11><><EFBFBD>GȬx<C8AC>92X<32>l-5bed970bceb2abc5<63> futures_core<72><65>1d9<64>%<25><>r<EFBFBD>`<60><><EFBFBD><EFBFBD>-cc2616aefd3bf110<31><02>.g<>:<3A><>Ld<4C><64>q<EFBFBD>T<EFBFBD>d-f090014afa110f38<33><02>L<><4C><EFBFBD><EFBFBD><EFBFBD>l<EFBFBD>E,<07>R<EFBFBD><52>-3d16dd14375d91ab<61><02>ZF<5A>P<EFBFBD><50>v<EFBFBD><76><EFBFBD>]<5D>d9uu-4d8b4da6b4ab36bd<62><02><11>b';<3B><>ݕ<EFBFBD><DD95>+<2B><>74-cda84f9d48ee8a39<33>rustc_std_workspace_core<72><65><EFBFBD><EFBFBD><EFBFBD>7]<5D><><EFBFBD><1F>}^-d51aa419dcaa4806<30> hashbrown<77>\<5C><01><><EFBFBD>Y8 <0A> <0B>9!~-828ad423d679028a<38>rustc_std_workspace_alloc<6F>)Z<7F><5A>T+@<15>U<EFBFBD><15><><EFBFBD>-456872f450a959d9<64>
std_detect<EFBFBD><EFBFBD><<03>dpܞ.P\aܘ<61>L-20f4fe7d6fc49ef1<66>rustc_demangle<6C> $<24><><EFBFBD><EFBFBD><EFBFBD>.<2E>u
@<40><>!-8707d0f6cef74754<35>windows_targets<74>aG<61>"T<>S<EFBFBD><53><02><>i-a000ab9e204fd71e<31>cfg_if<69>S]<5D><><EFBFBD><EFBFBD>]<5D><>8RH<52><48>-be85b4d8c54eea3b<33><02> <0C><08><><EFBFBD><EFBFBD>N<EFBFBD>}<7D>]<5D><>y^-a8029966e34624a3<61><02> 
 SyncWrapper<65>
 <02> <02><02><02> get_mut<75> get_pin_mut<75> 
into_inner<EFBFBD><02><02><02><02>> <02> <02>
SyncFuture<EFBFBD>#F<>#inner<65>&<01>&<02> &<01>*<01>*<02>*<02> - /<02>/<02>
SyncStream<EFBFBD>2S<>2<01>5<01>5<02> 5<01> 9<01>9<02>9<02> < 
><02>><02>     - - - 1 1 1 < < < @ @ @ <01>  <01><02> <04>.<05>3<EFBFBD><02><01>`<01>
<01><01>
<01><01>
<01> <01><>##<01>%<01><1D>0&\~5<><01><01>`##<01>%<01><1D>0&\~5<><01> E22<01>4<01><05><>X<EFBFBD><58><EFBFBD><EFBFBD><01><01>`22<01>4<01><05><>X<EFBFBD><58><EFBFBD><EFBFBD><01>   /#>2  *#92<01>(<01>`<01><01><01><>E,<2C>\<5C>
 <01>  <0C><04><01><>><01>
$<24><00> ,<2C><01> d<02>4̅
 <01> &<01>
1<00> 8? #2<02><02>$<24><01>]<02>,<2C><01>`<02><01>`<02>L<><01>`Pin<69><1C><01><><02>4<><01><> |<<3C><01>~ <02>$<24><01><> <0C><><04>;<00><>LI A mutual exclusion primitive that relies on static type information only<6C><1C><02><00><><05> This library is inspired by [this discussion](https://internals.rust-lang.org/t/what-shall-sync-mean-across-an-await/12020/2).<2E><02><1C> <0C> <0C>8<02>l<> <0C>7(https://developer.actyx.com/img/logo.svg<76><00><>*<01><>C<02><1C> <0C> <0C>8<02><00><> <0C>7+https://developer.actyx.com/img/favicon.ico<63><00><>-<01><>I #2<02>n<02>o<01>]<02>n<01>`<02><17><01>`<02>n<01>`<01>j<01><><02>i<01><> |h<01>~ <02>g<01><> <03><>i<1C><17><17>D<><17>t<><17>(<17><17><17><17><17><00><>L<01><1C><02><00><>a^ In some cases synchronization can be proven statically: whenever you hold an exclusive `&mut`<60><00><> ^[ reference, the Rust type system ensures that no other part of the program can hold another<65><00><>
`] reference to the data. Therefore it is safe to access it even if the current thread obtained<65><00><> c` this reference via a channel. Whenever this is the case, the overhead of allocating and locking<6E><00><> <9 a [`Mutex`] can be avoided by using this static version.<2E><1C> <02><00><> c` One example where this is often applicable is [`Future`], which requires an exclusive reference<63><00><> _\ for its [`poll`] method: While a given `Future` implementation may not be safe to access by<62><00><>^[ multiple threads concurrently, the executor can only run the `Future` on one thread at any<6E><00><>_\ given time, making it [`Sync`] in practice as long as the implementation is `Send`. You can<61><00><>]Z therefore use the static mutex to prove that your data structure is `Sync` even though it<69><00><> contains such a `Future`.<2E><1C><02>l<>
# Example<6C><1C><02><<3C> ```<60><00><>" use sync_wrapper::SyncWrapper;<3B><00><> use std::future::Future;<3B><1C><02><00><> struct MyThing {<7B><00><>EB future: SyncWrapper<Box<dyn Future<Output = String> + Send>>,<2C>,<2C> }<7D><1C><02><00><> impl MyThing {<7B><00><>XU // all accesses to `self.future` now require an exclusive reference or ownership<69>,<2C><01><1C><02><00><>  fn assert_sync<T: Sync>() {}<7D><1C><02><00><> assert_sync::<MyThing>();<3B><<3C><01><1C><02><00><>C@ [`Mutex`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html<6D><00><>FC [`Future`]: https://doc.rust-lang.org/std/future/trait.Future.html<6D><00><>PM [`poll`]: https://doc.rust-lang.org/std/future/trait.Future.html#method.poll<6C><00><>B? [`Sync`]: https://doc.rust-lang.org/std/marker/trait.Sync.html<6D>\<5C><02><01><><01> <0C><00>
<04>.<05>3<EFBFBD><02> <0B>
<13>P<02> <0B>
  <01> ^` <0C>  <00> <0B><><02><00>% <0C><00>
<00><>"<00><>:7 Creates a new static mutex containing the given value.<2E><1C><02>t<> # Examples<65><1C><02><<3C><01><00><>"<01><1C><02><00><>%" let mutex = SyncWrapper::new(42);<3B><<3C><01><1C><02> <0B>
 <01> <02><13><06><>#<00><>0- Acquires a reference to the protected value.<2E><1C><02><00><>_\ This is safe because it requires an exclusive reference to the mutex. Therefore this method<6F><00><>_\ neither panics nor does it return an error. This is in contrast to [`Mutex::get_mut`] which<63><00><>]Z returns an error if another thread panicked while holding the lock. It is not recommended<65><00><>_\ to send an exclusive reference to a potentially damaged value to another thread for further<65>|<7C> processing.<2E><1C><02><00><>[X [`Mutex::get_mut`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html#method.get_mut<75><1C><02>t<><01>&<1C><02><<3C><01><00><>"<01><1C><02><00><>)& let mut mutex = SyncWrapper::new(42);<3B><00><>  let value = mutex.get_mut();<3B>|<7C> *value = 0;<3B><00><>$! assert_eq!(*mutex.get_mut(), 0);<3B><<3C><01><<3C>A A<>
 A<>  <0C> <01> $<24><00><>&7<00><>74 Acquires a pinned reference to the protected value.<2E><1C> <02><00><> 63 See [`Self::get_mut`] for why this method is safe.<2E><1C> <02>t<> <01>&<1C> <02><<3C>!<01><00><>!<01><00><>! use std::pin::Pin;<3B><00><>!# use std::task::{Context, Poll};<3B><1C>!<02><00><>!&# use pin_project_lite::pin_project;<3B><00><>""<01><1C>"<02><00><>" pin_project! {<7B><00><>"! struct FutureWrapper<F> {<7B><00><># #[pin]<5D><00><>#" inner: SyncWrapper<F>,<2C>L<># }<7D>,<2C>#<01><1C>#<02><00><>#1. impl<F: Future> Future for FutureWrapper<F> {<7B><00><>$  type Output = F::Output;<3B><1C>$<02><00><>$SP fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {<7B><00><>%74 self.project().inner.get_pin_mut().poll(cx)<29>L<>%<01>3,<2C>%<01><<3C>%<01>\<5C>&B<01><><01><><01><01><><02> <01>U$]J<><4A><<3C><><EFBFBD> B<>
<01><><01><><01><01><><02> <01>U$]J<><4A><<3C><><EFBFBD> B<>  <0C>& <01> $<24>&4<>&<closure_kind><3E><closure_signature><3E><upvars><3E><01>  <00>
 <00> <00><>-<00><>'74 Consumes this mutex, returning the underlying data.<2E><1C>'<02><00><>'_\ This is safe because it requires ownership of the mutex, therefore this method will neither<65><00><>(YV panic nor does it return an error. This is in contrast to [`Mutex::into_inner`] which<63><00><>)]<01>*<00><>)_<01>+|<7C>*<01>+<1C>*<02><00><>*a^ [`Mutex::into_inner`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html#method.into_inner<65><1C>+<02>t<>+<01>&<1C>+<02><<3C>,<01><00><>,"<01><1C>,<02><00><>,)<01>-<00><>,'$ assert_eq!(mutex.into_inner(), 42);<3B><<3C>-<01>T<>-<02>
<EFBFBD>  <01> $<24>-<00><>.&<02><00>% <0C>.<00>
 <00><>. <02><00>% <0C>/<00>
<01>`<00><>/3<1C>/CDE C<>
D<01>`<01>`<02><01>`<02> <01>]<01>`buf<75><01>]I<19><>̖<EFBFBD><CC96>E<01><><01><><01><><02><01><><02><01><><01><><02><01><><02><00>(<28>*<2A><>é<01>9<01><><01><><01><><02> <00><19><>E=<3D>z <0C>/ <01> $<24>/<02> <0C>/<00><>/+<02><00>% <0C>0<01><01> <<3C>0<00>
<01>!<00><>0<<3C>0<01>
 <01> <0B><>0"<02>!!<00>% <0C>0<00>
"<01>"̙1$<24>1<02> <0B>
  "<01> <02>,<2C>1Đ3<00><>1 `Future` which is `Sync`.<2E><1C>1<02>t<>1<01>&<1C>2<02><<3C>2<01><00><>20- use sync_wrapper::{SyncWrapper, SyncFuture};<3B><1C>2<02><00><>2 let fut = async { 1 };<3B><00><>2# let fut = SyncFuture::new(fut);<3B><<3C>3<01>T<>3<01>$$<01><><01> <0C>3<00> <1D>0&\~5<>%<00><>3,<2C>3##  <01><02> <04>.<05>3<EFBFBD><01> <0B><>3<01>''<00>E <0C>3<01><><01> 4<>3<00> ()<00><>3<1C>3<02> <0B> && (<01> <01>,<2C>3<00><>4T<>4<02> <0B> && )<01> $<24>4<00><>5)<01>++<00>E <0C>5<00>F4<46>5<00> ,-<01><><01><>-!\<5C>54<>5**<01> <01><><03><>5I$<24>5FGH<01><><01><><01><01><><02> <01>U$]J<><4A><<3C><><EFBFBD> F<>  G<01>~<01>~|<01>~waker<65><01>~<01>~ local_waker<65><01>~<01>~ext<78><01>~<01>~_marker<65><01>~<01>~_marker2<72><01>~Ш<>s<EFBFBD>ʷ<EFBFBD>H<01><><01><><01><><02><01><><02><01><><01><><02><00> <09><><EFBFBD>x<EFBFBD>w<01> <01><>* <0C>5* -<01> $<24>5cx<63><14>5<1C>6-<01>7.<01>7.<01>7..-.<01> <01>9 <00>  <00> <01>9<EFBFBD><39>7<02>00<00>% <0C>7<00> 1<01>`1<00><>73<1C>7IJK I<> J<01>`<01>`<02><01>`<02> <01>]<01>`<01>><01>]I<19><>̖<EFBFBD><CC96>K<01>@/ <0C>7/ 1<01> $<24>7<02> <0C>7<00><>9<00><>8 `Stream` which is `Sync`.<2E><1C>8<02>t<>8<01>&<1C>8<02><<3C>8<01><00><>8! use sync_wrapper::SyncStream;<3B><00><>8 use futures::stream;<3B><1C>9<02><00><>9# let st = stream::iter(vec![1]);<3B><00><>9! let st = SyncStream::new(st);<3B><<3C>9<01><02><1C>9 <0C>9 <0C>98<02><<3C>9 <0C>97futures<65>L<>9<00><>9T<>:<01>33<01><><01> <0C>:<00> <05><>X<EFBFBD><58><EFBFBD><EFBFBD>4<00><>:,<2C>:22  <01><02> <04>.<05>3<EFBFBD><01> <0C><>:,<02><1C>: <0C>: <0C>:8<02><<3C>: <0C>:7<01>OL<>:ܰ:<01>66<00>Q <0C>:E<01> <00><>:<00> 78<00><>:<1C>;<02> <0C> 55 7<01> <01>,<2C>;<00><>;T<>;<02> <0C> 55 8<01> $<24>;<00><><E<02><1C>< <0C>< <0C><8<02><<3C>< <0C><7<01>OL<><ܟ<<01>::<00>Q <0C><<00>R<EFBFBD><52><<00> ;<FG<L<>=$<24>=99<01> F<><46>=TL<>=LMN<01><><01><><01><01><><02> <01>U$]J<><4A><<3C><><EFBFBD> L<>  M<01>~<01>~|<01>~<01>H<01>~<01>~<01>H<01>~<01>~<01>I<01>~<01>~<01>I<01>~<01>~<01>I<01>~Ш<>s<EFBFBD>ʷ<EFBFBD>N<01><><01><><01><><02><01><><02><01><><01><><02><00> <09><><EFBFBD>x<EFBFBD>w<01><><01><><01><><02><01><><01><><02><01><><02>i<><69>Py<50>.<2E><01> F9 <0C>=9 <<01> $<24>=<01>J<14>=<1C>><<01>7=<01>7=<01>7==<=<01> <01>9 <00>  <00> <01>9<EFBFBD><39>?<02><1C>> <0C>> <0C>?8<02><<3C>> <0C>>7<01>OL<>><00><>><02>??<00>% <0C>?<00> @<01>`@<00><>?3<1C>?OPQ O<> P<01>`<01>`<02><01>`<02> <01>]<01>`<01>><01>]I<19><>̖<EFBFBD><CC96>Q<01>@> <0C>?> @<01> $<24>?<02> <0C>?<17><17>+  <0C>/<14>/ <0C>5 <14>6&<17>+ <0C>71<14>77<17>< <0C>=B<14>=HkL <0C>?R<14>?X&5'6https://doc.rust-lang.org/std/future/trait.Future.html<6D>4https://doc.rust-lang.org/std/marker/trait.Sync.html<6D>Mutex::get_mut<75> Self::get_mut<75><02> <02>Mutex::into_inner<65>this discussion<6F>Nhttps://internals.rust-lang.org/t/what-shall-sync-mean-across-an-await/12020/2<>4https://doc.rust-lang.org/std/sync/struct.Mutex.html<6D><02><02><01>[<01>[<01>\<02> <01>\<02><01>\<01>\<01>\<02><01><><02><01>]<01>[<01>[<01>\<01>\<02><02> <01>\<01>\<02><01><01>\<01>]<02><01>`<01><><01>J<01><01><01><01><01><01><01><01><01><01><01><01><01><01><01> <01> <01> <01> <01><01><01><01>J<01>K<01>J<01>J<01>K<01><><01><>®O<>B<1C><><EFBFBD>'<27> <0B><>Em (<28><>ә<EFBFBD> <0C>4G<34>-,%!<21>1<EFBFBD><31><EFBFBD>"?<3F>lt<6C><74>L%*A<>4<EFBFBD><34>{<7B><17><>^_cʧ<63><68><D28F><EFBFBD>8<EFBFBD>[<08>it<69>v<17><01><><EFBFBD>'<01><>Nj<EFBFBD><C78B><EFBFBD><EFBFBD>PV<>tfa [fגB<D792><42>٫<EFBFBD>w[$<24>K<>G=<3D><>8Gup<75>l<EFBFBD><00><><EFBFBD>~ 7<><16><>2)<29><><EFBFBD>Ǭ<EFBFBD><C7AC>8<EFBFBD>f<EFBFBD><66>v y<<3C><>;<3B>A*SQB <0C> <0A><>ٓg<67><C29D>AZ<41><5A><1D><>9z_[Vް<56>$D<><44>D+F<><46><EFBFBD><EFBFBD>.6<08>4;x<02><><EFBFBD><EFBFBD>-<14>9<EFBFBD>B0 <0C><><EFBFBD><EFBFBD>…I<C285><49><EFBFBD>$˞R<CB9E><07><><EFBFBD><EFBFBD>c<EFBFBD>.[<5B>a}<7D>:<08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>0<EFBFBD>h<EFBFBD><07>7<EFBFBD><37><EFBFBD>B
<06>EW=]S<><53><EFBFBD> !<21><>:<3A><><EFBFBD>Wx|B<00>-<00>-<00>-<2D> <01>|&
<00><12><00> <14><17>6<1C><00>? <00> <20> <00> ;
!~"<22>"#H#<23>#<00>#<23>#^%<25>%&<26> &M(<28>()O)<29>)*,*<2A>+$,<00>,<2C> Q<00><00>n <00> l"<00>"<00>#<00>%;(<00>(<00>)},%        
   
 <18> r<00><00>l<17><00>2<00> !/"<00>"#^#<00>#$&<26>'Q(%)e)*B*<00>,<2C>:
@
C
H
J
Q
W
]
d
k
m
s
y
[<12><12><12><12><12><12><13><17>2<1C><1E><1E>
: x <20> <20> <20> <20> 7!m"z"<22>"<22>"#D#<23>#<23>#<23>#<23>#Z%<25>%<25>%&<26>&<(I(<28>(<28>( )K)<29>)<29>)
*'*<2A>+,<2C>,<2C>,>-B-G-L-R-X-]-c-i-n-t-z--<2D>-<2D>-<2D>-<2D>-=
M
T
Z
a
h
p
v
^<12><12><00><12>V<17>m<00> z <20> <00> <20> +"o"~"<00>"#H#<00>#<23>#<23>#<00>%&<26>'>(M())O)<00>)*,*<00>,<2C>,A-E-J-P-V-[-a-g-l-r-x-}-<2D>-<2D>-<2D>-<2D>-<2D>-'<12><12><12><12><12><12><13><17><1C><1E><1E><1E> T <20> <20> <20> <20> $!D"w"<22>"<22>"#1#q#<23>#<23>#<23>#>%<25>%<25>%&<26>&(F([(<28>()8)x)<29>)**<2A>+<2B>+r,<2C>,$-~<12><12><12><12><12><13>~<1B><1B><1E><1E><1E> A | <20> <20> <20> !1"q"<22>"<22>"<22>")#i#<23>#<23>#<23>#2%p%<25>%<25>%<25>&(@(S(<28>()0)p)<29>)**<2A>+<2B>+_,<2C>,-9<12><00><12><00><13><17><1C><1E><00>$ l <00> <20> (!V"<00>"<22>"5#u#<23>#<00>#B%<25>%<25>%<00>&%(_(<28>(<)|)<29>)*<2A>+<2B>+{,(-t<00>m<17><00>3<00> !0"#_# $&<26>'&)f)C*<00>,Ru<00>n<17><00>4<00> ! #`#
$ &')g)D*<00>,`<00>Z<17><1A>q <00> <00> #L#<00>#^% &)S)0*<2A>+<00>,<00>#-:q<00><00><00><00><00><00> <00> y"#<00>#&H(
) *<00>,<00>R#<00><00><00><00><13><17><00>+ <00> /!<#|#I%<00>&C)<29>)<00>+/-<2D> <00><00><00>? <00> )"<00>"<00>#<00>%<00>'<00>(<00>)],Gd"3(;X"'(<28><02><02><02><02><02> .29@DKR`rv<03><03><03><03><03><03><03><03><03><03><03><03><03><03><03><03><03><03> "&-4EMTX_fmqx<04><04><04><04><04><04><04><04><04><04><04><04><04><04><04><04><04><04><04><04><04>Jg"6(<00><12><12><00>o <00> <00>"<22>"<00>#<23>#<00>%<00>(<28>(<00>)<29>)~,<2C>-<2D> /<00><00>t <00> <00>"<00>#<00>%<00>(<00>)<00>,<17><17><02> O<>B<1C><>ɫX<C9AB><58><EFBFBD>W<EFBFBD><57>d@@@=@-@T@<40> ODHT R<00><02><><00><>/1C@<40><01><>N<00><05><1F>\!<21>D<00>8<EFBFBD><06><>M>0<>h<EFBFBD><07>7<EFBFBD>#<00><>.6<08>4;<00><>w<EFBFBD>9}S5<01><>Nj<EFBFBD><C78B><EFBFBD> <00><>&<26> <0C>j<EFBFBD>E<00><>~ 7<><00><><EFBFBD> <0C>g<EFBFBD>I<00><><68><D28F><EFBFBD>2p<32>5<EFBFBD><35><EFBFBD>l); <0C>j<EFBFBD><6A>/V1 [fגB<D792><42> <00>>ԁ<>n<EFBFBD>r.<00>9<EFBFBD>B0 v<17><01><><EFBFBD>'
<00> <0A><>ٓg<00>A3<41><33><EFBFBD>`<60>+<1D><>9z<00><>}|<1D>L<00><><0E>"q<>'tLnjǽ<>%O<>B<1C><><EFBFBD><00><>w<EFBFBD>΄U4<00><>$˞R<CB9E>S<><53><EFBFBD> !<21><>P<00>PV<>tfa <17>Π<EFBFBD>rK<00><>B<>+<2B>;<00>V1<56><14><>(RXa#$<24><>%3m (<28><><EFBFBD><16><>2)<29><><EFBFBD>D<><44>D+F<><46>_[Vް<56>$,%!<21>1<EFBFBD><31><EFBFBD><00><> <0C>4G<34>-%*A<>4<EFBFBD><34>{<00><>v4<01>HM<00>t<EFBFBD>97<39>߃8Ǭ<><C7AC>8<EFBFBD>f<EFBFBD>Y<>޾<EFBFBD>5<EFBFBD>:<00>a}<7D>:<08><>!K<>G=<3D><>8x<02><><EFBFBD><EFBFBD>-<><C29D>AZ<41><5A>'<27> <0B><>E<00><><EFBFBD><EFBFBD>…I<C285><00><>B?<3F><><07>$7<><37><EFBFBD>['@<05>@<40>G2,<00><><EFBFBD><EFBFBD><EFBFBD>:<3A><>"I <03>LN<4C>S0<00><>qt<71>W<EFBFBD> A;<3B>A*SQB 
<06>EW=]O<00>~h<><68>%<25><>G:<3A><><EFBFBD>Wx|BQ٫<>w[$<24><00><>7<00><>8\<5C><>!B<00><17><>^_c<5F>,<13>(ẟ<>=<00><><EFBFBD><EFBFBD>c<EFBFBD>.[ p4<70>b<EFBFBD>k<EFBFBD><6B>?]<5D><>u6<75>98<>[<08>it<69> Gup<75>l<EFBFBD><00><00>ed<65>q<EFBFBD><71><EFBFBD>HqM<71>s]<5D><>-"?<3F>lt<6C><74>LT<><54><1C><00>*1<><31>u<><75><EFBFBD>6%<25>"<22><><14><CMsxD&fF<00>v y<<3C><>Ϳ]#<23>d$<C<00><>WH<57><48>;<3B>&<00><1E>v<13><>J@+}<7D><><EFBFBD>2
<01><><EFBFBD>{&O)<29>nW OF6+Y93w=f@\d*Q09@<40>E<12><>iy<69>z<EFBFBD><7A><EFBFBD><EFBFBD>r<><72>=$Az?c<><63>
<EFBFBD><EFBFBD>f rb<13>
g<EFBFBD><EFBFBD><EFBFBD>)<29><10><><EFBFBD><EFBFBD><06><><EFBFBD>.G!<21>v e<><65>J<EFBFBD>-<2D><><EFBFBD><EFBFBD>b<EFBFBD><62>jFs<46><73><EFBFBD>M<EFBFBD>W&bl3XxHP<48><50>
<01><><EFBFBD>{&O)<29>nW OFdC:\Users\dxzq\.cargo\registry\src\mirrors.ustc.edu.cn-38d0e5eb5da2abae\sync_wrapper-1.0.2\src\lib.rs<72> <20><><EFBFBD><EFBFBD>)'5$<24><>%<25><>Ӱ<EFBFBD><0F>IF<49>f<EFBFBD>Cp<43><70>{<7B><00>@<40>@<40>CD+2GELG"M<04>DJ  #Mb_ad=d`_`^#FY!DGQC? '* )5ddbd` '.%) *<; !(+'&'
6%X<
>D<d^bdf '., #_*#:. % 1$!#0# ,PN":"$"/#0# H[N": E>L<11>Sv<53>M<EFBFBD><14>[<5B><>&Gx86_64-pc-windows-msvc<76><00><> <0C>l<1C>zV-<2D>Y<> sync_wrapper<65>-883cbc50b8c77ef5<66>O<EFBFBD>B<1C><><EFBFBD><0E><><06> <00>SR<00>3<00>A5A5A<01>?R<>ARR<>R<><00>AA<>A<>A<>A<>A<>?<3F>~@<00>(((A<00>?~33fRf<00>3Af<00>?<02><01>rust-end-file