Mercurial > hg-stable
changeset 43250:98d996a138de
rust-cross-platform: remove `unimplemented!` to get compile-time errors
We should get a compile-time error that there is missing functionality for the
targeted platform instead of the program breaking at runtime.
Differential Revision: https://phab.mercurial-scm.org/D7107
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 16 Oct 2019 17:16:23 +0300 |
parents | 63d440bef72a |
children | 970978975574 |
files | rust/hg-core/src/utils/files.rs rust/hg-core/src/utils/hg_path.rs |
diffstat | 2 files changed, 11 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/rust/hg-core/src/utils/files.rs Fri Oct 11 00:18:34 2019 -0700 +++ b/rust/hg-core/src/utils/files.rs Wed Oct 16 17:16:23 2019 +0300 @@ -21,12 +21,9 @@ 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>. - unimplemented!() - } + // TODO Handle other platforms + // TODO: convert from WTF8 to Windows MBCS (ANSI encoding). + // Perhaps, the return type would have to be Result<PathBuf>. Path::new(os_str) }
--- a/rust/hg-core/src/utils/hg_path.rs Fri Oct 11 00:18:34 2019 -0700 +++ b/rust/hg-core/src/utils/hg_path.rs Wed Oct 16 17:16:23 2019 +0300 @@ -258,11 +258,8 @@ use std::os::unix::ffi::OsStrExt; os_str = std::ffi::OsStr::from_bytes(&hg_path.as_ref().as_bytes()); } - #[cfg(windows)] - { - // TODO: convert from Windows MBCS (ANSI encoding) to WTF8. - unimplemented!(); - } + // TODO Handle other platforms + // TODO: convert from WTF8 to Windows MBCS (ANSI encoding). Ok(os_str.to_os_string()) } @@ -281,11 +278,9 @@ use std::os::unix::ffi::OsStrExt; buf = HgPathBuf::from_bytes(&os_string.as_ref().as_bytes()); } - #[cfg(windows)] - { - // TODO: convert from WTF8 to Windows MBCS (ANSI encoding). - unimplemented!(); - } + // TODO Handle other platforms + // TODO: convert from WTF8 to Windows MBCS (ANSI encoding). + buf.check_state()?; Ok(buf) } @@ -300,11 +295,9 @@ use std::os::unix::ffi::OsStrExt; buf = HgPathBuf::from_bytes(&os_str.as_bytes()); } - #[cfg(windows)] - { - // TODO: convert from WTF8 to Windows MBCS (ANSI encoding). - unimplemented!(); - } + // TODO Handle other platforms + // TODO: convert from WTF8 to Windows MBCS (ANSI encoding). + buf.check_state()?; Ok(buf) }