Mercurial > hg
view rust/hg-core/src/utils/files.rs @ 42484:f305f1d7d559
rust-filepatterns: add comment about Windows path handling
As I replied to the Phabricator message, this is wrong. And I even suspect
it wouldn't compile because of multiple type mismatches.
I think, in Rust where type system is rock solid, we can live with UTF-8
strings except for the bottom storage layer and the top UI/command layer.
We'll still have to get around undecodable characters not to be lost, but
I think it's okay to drop such filenames from match result if they don't
match in UTF-8 world, not in Latin-1 world.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 15 Jun 2019 10:58:53 +0900 |
parents | 9609430d3625 |
children | cad3dde7a573 |
line wrap: on
line source
use std::path::Path; pub fn get_path_from_bytes(bytes: &[u8]) -> &Path { let os_str; #[cfg(unix)] { use std::os::unix::ffi::OsStrExt; os_str = std::ffi::OsStr::from_bytes(bytes); } #[cfg(windows)] { // TODO: convert from Windows MBCS (ANSI encoding) to WTF8. // Perhaps, the return type would have to be Result<PathBuf>. use std::os::windows::ffi::OsStrExt; os_str = std::ffi::OsString::from_wide(bytes); } Path::new(os_str) }