Как стать автором
Обновить
1
0
Vladyslav Batyrenko @mvlabat

Rustacean

Отправить сообщение

Неплохой релиз! Среди прочего особенно приятно видеть инфраструктурных спонсоров для Rust :)

Спасибо большое за ответы. Вроде бы все прояснилось теперь :)
Понял еще, что несколько путал эффекты от статических переменных (static), 'static -типов и 'static в качестве времени жизни — это создавало больше всего конфуза в понимании кода

Все же думаю, что статика никакой роли на выделение переменных на стеке не влияет. Насколько я понимаю, 'static в расте означает то, что не только размер, но еще и расположение значения в памяти будет уже известно на этапе компиляции. В куче можно разместить что-либо, лишь положив это в Box, Rc либо какой-то другой смарт-указатель. Меня просто немного сбила с толку формулировка "static-типы", но вижу, что и в коде используется 'static в качетсве lifetime bound, что как бы намекает… Последний уточняющий вопрос: значит ли данное ограничение, что составить дерево из произвольного количества компонент на основе, например, пользовательского input'а с таким подходом будет невозможно?


Кстати, енамы со значениями так же будут иметь известный размер, так как по факту это обычные union-ы, размер которых принимает наибольшее значение размера его варианта (+ тег).

Спасибо за статью, очень познавательно!
У меня появилось 2 вопроса.


  1. 'static-типы — здесь идет речь про lifetime, или же это какое-то отдельное понятие? Значит ли это ограничение, что все дерево должно быть определено уже на этапе компиляции?
  2. У меня сложилось впечатление, что если моделью захочется оперировать несколькими разными функциями, то и придется создавать несколько разных полей в структуре Component. Или с данным подходом можно будет менять ссылку с одного замыкания на другое? Меня настораживает, что если я захочу усложнить логику приложения, расширяя список функций, которыми я смогу взаимодействовать с моделью, то мне придется каждый раз менять объявление структуры компонента, добавляя в нее новые поля для замыканий.

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность