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