Size: a a a

Rust — русскоговорящее сообществo

2020 October 17

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
У меня есть T не удовлетворяющее T: 'static
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Так, в порядке хака:
#[cold]
#[very_cold]
#[no_really_shutup_optimizer]
fn type_id<T>()-> usize {
   type_id::<T> as usize
}
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Переслано от Mikola Summer Duck
intrinsics::type_id::<T> as usize не подходит, кстати.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Mikola Summer Duck
Переслано от Mikola Summer Duck
intrinsics::type_id::<T> as usize не подходит, кстати.
Так тут новая функция создается, не из std
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Хотя колд может и поможет
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
🤔
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Как сделать так, чтобы оптимизатор это не сломал - я сходу не знаю
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
А может быть колд инлайн?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Эти типы хоть какому-то трейту удовлетворяют?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Debug например, или Serialize?
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Mikail Bagishov
Эти типы хоть какому-то трейту удовлетворяют?
Это просто тип который передаётся в функцию foo<'a, T: 'a>(bar: T) -> ()
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Хмм, предлагаешь брать адрес реализации трейта?
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
А это не уб в случае когда трейт больше нигде не используется?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Mikola Summer Duck
Хмм, предлагаешь брать адрес реализации трейта?
Нет, предлагаю "вызывать" его.
if GLOBAL_ATOMIC.load() {
  dbg!("{}", x)
}
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
А еще надо в этом айдишнике использовать size_of и align_of
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Ооооо
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Mikail Bagishov
А еще надо в этом айдишнике использовать size_of и align_of
Зачем?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Теперь оптимизатор сломает код только если у двух типов одинаковый размер и одинаковый impl Debug
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Как еще один уровень защиты.
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Mikail Bagishov
Теперь оптимизатор сломает код только если у двух типов одинаковый размер и одинаковый impl Debug
Аааа чорт mergefunc снова
источник