Путь можно превратить в строку, отказавшись от проверки кодировки
07.06.2026У владельца пути появился метод, отдающий путь как строку сразу, без промежуточного преобразования и без проверки, что путь вообще выражается текстом.
Почему нельзя просто преобразовать
Путь на многих системах хранится как байты, и выражать его текстом необязательно. Преобразование может не удаться — и тогда что делать, должен решить вызывающий код: сообщить об ошибке или подменить символы.
Пока метода не было, писали так: взять путь, попросить строку, при неудаче обработать ошибку вручную. Для каждого вызова — своя обработка, и в половине случаев она сводилась к панике с надеждой, что путь корректный.
Как ведёт себя метод
Метод документирует компромисс явно: при отладке он прерывается, если путь не выражается текстом, а при выпуске подставляет символ замены и продолжает.
То есть в отладочной сборке ошибка обнаружится сразу, а в выпуске программа не упадёт. Для кода, который работает с путями от пользователя, это ровно то поведение, которое нужно: в разработке видно проблему, в работе — нет аварии.
Оригинал
stabilize PathBuf::into_string; реализация — rust-lang/rust#156204
Упоминаний: 1 · Просмотров: 2