Всем привет
Какой есть наиболее правильный способ парсить конфигурационный файл независимо от того, откуда был вызван cargo run?
Файл всегда находится в корне крэйта. Можно конечно как дополнительный аргумент командной строки прокинуть путь к конфигу, но хотелось бы без этого обойтись.
Постановку вопроса неплохо бы уточнить.
> Файл всегда находится в корне крэйта
То есть речь идёт про исходники приложения, и, вероятно, какой-то дефолтный/примерочный конфиг в дереве с исходниками.
> парсить конфигурационный файл
Эта операция будет выполняться уже в рантайме, т.е. никаких исходников в общем случае уже нет. И крейта никакого нет. И пути к корню крейта тоже нет.
> откуда был вызван cargo run
Это лишь один из способов запуска приложения, но не единственный. Если нужно по какой-то причине именно для cargo run
, то я бы посмотрел в сторону переменных окружения, которые карга выставляет для дочерних процессов. Но, понятно, что если сначала собрать через cargo build
а потом запустить бинарь, этот способ уже не прокатит.
В общем, надо отталкиваться от задачи, которую хорошо бы конкретизировать.