Size: a a a

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

2020 October 17

Э

Эрик in Rust — русскоговорящее сообществo
И тогда твой юзер получает типы Ref<T>, где внутри указатель на какую-то твою арену, и арена переживёт этот указатель всегда.
источник

MS

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

Э

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

MS

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

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
@iccsf мне кажется ты не можешь мне помочь.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Mikola Summer Duck
@iccsf мне кажется ты не можешь мне помочь.
Мне кажется, ты пишешь какой-то антирастовый код.
источник

MS

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

D

Denis in Rust — русскоговорящее сообществo
Эрик
Ты просто пытаешься рантайм сделать, но в расте нет рантайма. Чтобы иметь лайфтаймы во время работы программы, а не во время компиляции, нужен рантайм.
что значит нет рантайма? а кто тред-локалы создаёт и дропает?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Denis
что значит нет рантайма? а кто тред-локалы создаёт и дропает?
OS и библиотечный код, который просто скрыт за макросами. Да, это рантайм, но это не неявный рантайм, как в языках с GC, просто немного спрятанный.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Но чувак не хочет оборачивать юзер-код в свои макросы, он хочет чтобы юзер просто функции вызывал.
источник

MS

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

Э

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

Э

Эрик in Rust — русскоговорящее сообществo
А если там внутри кроме ссылок есть всякие Struct<'a>, то просто ошибку кидать и говорить, что не поддерживается такое.
источник

MS

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

Э

Эрик in Rust — русскоговорящее сообществo
А если юзеру таки надо использовать эту структуру как структуру, а не как фигню с указателями внутри, то тут надо уже весь код, который с этим работает оборачивать в хитрые macro-by-example с магией или просто процедурку на всю функцию вешать, где с этим делом работается.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Но всё это слишком сложно писать, проще заставить юзера пихать всё в Arc.
источник

MS

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

Э

Эрик in Rust — русскоговорящее сообществo
Mikola Summer Duck
А если ты не можешь полагаться на системный аллокатор?
#[no_std]
extern crate alloc;
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Аллок это интерфейс к системному аллокатору.
источник

MS

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