пытался имплементить Deref для Wrapper но что-то ничего не выходит...
А что такое Wrapper?
pub struct Wrapper(AtomicU16)
Репр транспарент и трансмут по идее
как-то ансейфно для такого простого случая имхо
Ну можешь сделать impl Wrapper<T> { pub fn transmute(self: Arc<Wrapper<T>>) -> Arc<T> { /* тут военные преступления */ } }
А точно нужно превращать вообще? Куда-то передать его хочется?
ну походу превратить уже и правда не выйдет, но я контроллирую и код в который это хочется передать, так что теперь думаю в сторону "функция принимает Arc<I> where I: Deref<Target = AtomicU16>", но тут мне не нравится как минимум то, что сам AtomicU16 не дереференсится в себя (если я ничего не путаю)
Можно такой ерундой обмазаться какой-нибудь https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=9c0020b62fe131f6b29a45d45cfe7856
неплохо обмазано👍
Обсуждают сегодня