Size: a a a

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

2020 November 27

p

polunin.ai in Rust — русскоговорящее сообществo
никакого копирования при этом не будет происходит.
источник

H

Hirrolot in Rust — русскоговорящее сообществo
Union type punning и на стеке работает
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
он не копирует
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
держи transmute
а он не работает для дженериков, в том то и прикол.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
он не копирует
но он для дженериков не работает, а мне нужно чтобы работало для дженериков.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Hirrolot
Union type punning и на стеке работает
в расте есть юнионы из си? О.о
вот это поворот. спасибо.
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
polunin.ai
но он для дженериков не работает, а мне нужно чтобы работало для дженериков.
ну тогда делай

src as *const T as *const U


без ptr::read
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
polunin.ai
в расте есть юнионы из си? О.о
вот это поворот. спасибо.
но зачем юнион если можно просто кастануть указатель?
источник

D

Denis in Rust — русскоговорящее сообществo
потому что ему, очевидно, нужен не указатель
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
но зачем юнион если можно просто кастануть указатель?
потому что у меня T и U а не *T и *U
источник

D

Denis in Rust — русскоговорящее сообществo
иначе бы и вопроса не возникло
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
polunin.ai
потому что у меня T и U а не *T и *U
зачем тебе U если есть *U?
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
Denis
иначе бы и вопроса не возникло
я боюсь что он щас себе уб на ровном месте устроит с юнионами и остальным шенаниганом. трансмут не просто так ограничен
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Αλεχ Zhukovsky
зачем тебе U если есть *U?
потому что T и U - user defined types, которыми оперирует пользователь. он передает мне T, я его в кишках трансмьючу в U, че-то делаю, затем отдаю юзеру T обратно.
источник

D

Denis in Rust — русскоговорящее сообществo
polunin.ai
потому что T и U - user defined types, которыми оперирует пользователь. он передает мне T, я его в кишках трансмьючу в U, че-то делаю, затем отдаю юзеру T обратно.
так может ты что-то можешь делать с &U или даже &mut U?
источник

r

red75prime in Rust — русскоговорящее сообществo
polunin.ai
в расте есть юнионы из си? О.о
вот это поворот. спасибо.
Только для Copy типов. Впрочем, трансмутить Drop и Clone типы - плохая идея.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Denis
так может ты что-то можешь делать с &U или даже &mut U?
не могу, иначе бы уже сделал
источник

ΑZ

Αλεχ Zhukovsky in Rust — русскоговорящее сообществo
ну трансмуть в *U, делай что тебе нужно юзая *U ты не можешь?
источник

D

Denis in Rust — русскоговорящее сообществo
polunin.ai
не могу, иначе бы уже сделал
ну так у тебя тогда почти наверняка там этот твой U уже сто раз копируется, и один лишний трансмут-копи погоды не сделает
источник

D

Denis in Rust — русскоговорящее сообществo
ты ведь понимаешь, что если ты передаёшь U в какую-то функцию, то, по факту, он копируется?
источник