Size: a a a

2021 January 10

MB

Mikail Bagishov in Rust Async
Tux
так а что мешает там Sync вывести?
Компилятор не настолько умный. И не факт что он вообще теоретически способен его в автоматическом режиме вывести.
источник

MB

Mikail Bagishov in Rust Async
https://docs.rs/sync_wrapper/0.1.0/sync_wrapper/
Вот эта штука должна помочь
источник

T

Tux in Rust Async
Mikail Bagishov
dyn Future + Sync это плохой баунд
хм, а иначе рекурсию через хранимый обработчик Fn нельзя провернуть: чтобы сделать мульти чтение нужно читать Fn::as_ref а не FnMut::as_mut, а оно требует Sync
источник

MB

Mikail Bagishov in Rust Async
Tux
хм, а иначе рекурсию через хранимый обработчик Fn нельзя провернуть: чтобы сделать мульти чтение нужно читать Fn::as_ref а не FnMut::as_mut, а оно требует Sync
Я скинул штуку, которая усмирит компилятор.
источник

MB

Mikail Bagishov in Rust Async
Если у трейта нет ни одного &self-метода, то накладывать Sync баунд на его трейт-объекты заведомо избыточно
источник

T

Tux in Rust Async
unsafe impl<T: Send> Sync for SyncWrapper<T> {}
хм, что-то как-то стрёмно выглядит.
источник

T

Tux in Rust Async
почему нет? там их целых три
источник

MB

Mikail Bagishov in Rust Async
Tux
unsafe impl<T: Send> Sync for SyncWrapper<T> {}
хм, что-то как-то стрёмно выглядит.
Благодаря тому, что там нет метода &SyncWrapper -> &T, то это корректно
источник

MB

Mikail Bagishov in Rust Async
Tux
почему нет? там их целых три
У trait Future всего один метод и он берет Pin<&mut Self>
источник

MB

Mikail Bagishov in Rust Async
Если это твой внутренний код, то можешь попробовать просто дописать +Sync к dyn Future. мб сработает, а мб и не сработает.
источник

T

Tux in Rust Async
ой, я там async_trait использую для лаконичности, там не впишешь)
источник

MB

Mikail Bagishov in Rust Async
Mikail Bagishov
Благодаря тому, что там нет метода &SyncWrapper -> &T, то это корректно
Самое простое известное мне объяснение корректности: этот тип просто подмножество std::sync::Mutex (а именно мьютекс без метода lock())
источник

T

Tux in Rust Async
так это мне результат исполнения метода нужно будет оборачивать в этот раппер?
источник
2021 January 11

H

Hirrolot in Rust Async
а кто знает почему UnboundedReceiver из токио теперь не реализует stream?
источник

H

Hirrolot in Rust Async
я в ченджлогах не нашёл ничего про это
источник

V

Vetro in Rust Async
Hirrolot
а кто знает почему UnboundedReceiver из токио теперь не реализует stream?
Потому что в tokio-stream теперь враппер
источник

V

Vetro in Rust Async
источник

AV

Artem Vorotnikov in Rust Async
Hirrolot
а кто знает почему UnboundedReceiver из токио теперь не реализует stream?
вынесли в tokio-stream потому что трейт не успели завезти в std
источник

RP

Roman Proskuryakov in Rust Async
Не успели? А подвижки есть?
источник

ph

pl 🦑 hk in Rust Async
источник