2023-01-18 22:05:17
Маленькое улучшение бота.
Если в прошлой версии конфиг парсился из TOML файла с помощью serde.
То теперь это делается через явное объявление экземпляра структуры в специальном модуле config.rs.
(см. скрин).
Почему?
Чтобы конфиг и его значения размещались на стэке, а не в куче.
В чём проблема размещаться на стэке через парсинг `TOML` файла?
Так как значения из конфига тянутся с помощью парсера, то и разместить их на стэке не получится, ведь это происходит в рантайме.
Причём даже если зашивать конфиг на компайл тайме, то всё равно аллокация идёт в куче.
Так как даже для того же Vec<_> нет способов заранее предсказать длину из конфига, чтобы на выходе дать [_; _].
Или есть?
Возможное решение - макросы.
Так как они выполняются на компайл тайме.
Но зачем, а главное н@###?
Вот именно.
Мне и .rs файла за глаза, к тому же благодаря объявлению вида &[i64] мне даже не нужно указывать длину массива,
Rust это сделает за меня.
Такие пироги
2.8K viewsedited 19:05