Size: a a a

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

2021 June 23

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Уже запилен. Это реально единственный способ без внесения изменений в компилятор.
источник

Э

Эрик in Rust — русскоговорящее сообщество
Просто кастуй лайфтаймы трансмутом, если уверен в том, что эти лайфтаймы сойдутся.
источник

VL

Vital L in Rust — русскоговорящее сообщество
а есть ли какая нибудь либа с рефлексией с чем-то похожим?
источник

Э

Эрик in Rust — русскоговорящее сообщество
А если не уверен, но ты напишешь unsound код, который писать не стоит.
источник

Э

Эрик in Rust — русскоговорящее сообщество
У раста нет рантайма, рефлексии тоже нет поэтому.
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Разве что можно еще impl_universal_type_id!() заменить на процмакрос
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Ты опять за свое. У раста есть рантайм.
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Посмотри какая функция вызывается при старте скомпиленного rustc экзешника. Это не твой fn main()
источник

Э

Эрик in Rust — русскоговорящее сообщество
Нет у раста такого рантайма, с помощью которого можно построить рефлексию.
источник

VL

Vital L in Rust — русскоговорящее сообщество
Видимо имел ввиду, что в нем нет ничего с человеческими названиями
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Ну в общем, даже если и появится такая либа, то в ней тоже будет отключен TypeId для типов с лайфтаймами.
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Это ведь не недоработка а сознательное решение.
источник

Э

Эрик in Rust — русскоговорящее сообщество
Да сколько можно говорить, что лайфтаймов не существует.
источник

VL

Vital L in Rust — русскоговорящее сообщество
Угу
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
При чем тут это? Речь же о конкретных решениях конкретных проблем.
источник

Э

Эрик in Rust — русскоговорящее сообщество
Ну так конкретное решение конкретных проблем — это трансмут лайфтаймов, если ты гарантируешь, что они сойдутся. Любой Type<'a> совпадает байтами с Type<'static>, потому что лайфтаймов нет.
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Окей, а если ты хочешь предоставить безопасный интерфейс для пользователей?
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Так чтоб им не приходилось трансмутировать.
источник

Э

Эрик in Rust — русскоговорящее сообщество
crossbeam::scoped, пожалуйста, там завёрнуты трансмуты лайфтаймов в сейфовую функцию.
источник

Э

Эрик in Rust — русскоговорящее сообщество
Вот только функция scoped сама по себе принимает лайфтаймы и только поэтому они сходятся.
источник