JustFrog
@JustFrog

Как подключить и использовать json конфиг в rust?

привет!
я бы хотел подключить json конфиг и записать его в константу, чтобы обращаться к нему из любой точки приложения
попытался сделать что-то типо такое, но оно не работает :(
#[derive(serde::Deserialize, Debug)]
struct Cfg {
	webhook: &'static str
}
pub const CONFIG: Cfg = serde_json::from_str(
	std::fs::read_to_string("../config.json").as_ref().unwrap()
).unwrap();
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
bingo347
@bingo347
Crazy on performance...
В константах как не странно можно использовать только константы.
Варианта 2:
1. Написать процедурный макрос, который прочитает нужный JSON в компайл-тайм и сгенерирует код константы, так кстати и саму структуру можно генерировать.
2. Зашить байты JSON в бинарь через макрос include_bytes!, а парсить при старте программы или в lazy_static.

Но вообще у меня есть ощущение, что Вы в принципе неправильно решаете свою задачу. Константы - это по своей сути компайл-тайм сущности, а смысл конфига обычно - получить параметры в ран-тайм.
Скорее всего Вам достаточно будет простого lazy_static
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы