diff rust/chg/src/message.rs @ 44693:61fda2dbc522

rust-chg: leverage impl trait at argument position Differential Revision: https://phab.mercurial-scm.org/D8401
author Yuya Nishihara <yuya@tcha.org>
date Sat, 11 Apr 2020 00:21:37 +0900
parents 90e05b304902
children 426294d06ddc
line wrap: on
line diff
--- a/rust/chg/src/message.rs	Mon Apr 13 01:19:09 2020 -0400
+++ b/rust/chg/src/message.rs	Sat Apr 11 00:21:37 2020 +0900
@@ -113,11 +113,9 @@
 ///
 /// Panics if key or value contains `\0` character, or key contains '='
 /// character.
-pub fn pack_env_vars_os<I, P>(vars: I) -> Bytes
-where
-    I: IntoIterator<Item = (P, P)>,
-    P: AsRef<OsStr>,
-{
+pub fn pack_env_vars_os(
+    vars: impl IntoIterator<Item = (impl AsRef<OsStr>, impl AsRef<OsStr>)>,
+) -> Bytes {
     let mut vars_iter = vars.into_iter();
     if let Some((k, v)) = vars_iter.next() {
         let mut dst = BytesMut::with_capacity(INITIAL_PACKED_ENV_VARS_CAPACITY);
@@ -143,17 +141,11 @@
     dst.put_slice(v.as_bytes());
 }
 
-fn decode_latin1<S>(s: S) -> String
-where
-    S: AsRef<[u8]>,
-{
+fn decode_latin1(s: impl AsRef<[u8]>) -> String {
     s.as_ref().iter().map(|&c| c as char).collect()
 }
 
-fn new_parse_error<E>(error: E) -> io::Error
-where
-    E: Into<Box<dyn error::Error + Send + Sync>>,
-{
+fn new_parse_error(error: impl Into<Box<dyn error::Error + Send + Sync>>) -> io::Error {
     io::Error::new(io::ErrorKind::InvalidData, error)
 }