From d655083ef898ee74dbde2543f0f0e27dffa3175d Mon Sep 17 00:00:00 2001 From: David McGillicuddy Date: Thu, 6 Jan 2022 12:30:19 +0000 Subject: [PATCH] replace str_split_once to lower msrv to 1.50.0 --- README.md | 2 +- actix-tls/CHANGES.md | 2 +- actix-tls/src/connect/host.rs | 16 ++++++++++++---- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a7cb8560..bd76918b 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ See `actix-server/examples` and `actix-tls/examples` for some basic examples. ### MSRV -This repo's Minimum Supported Rust Version (MSRV) is 1.46.0. +This repo's Minimum Supported Rust Version (MSRV) is 1.50.0. ## License diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index e491f0af..a643d708 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2021-xx-xx - +- Remove use of `str::split_once` to lower MSRV to 1.50.0 and update the README to correctly report that ## 3.0.0 - 2021-12-26 * No significant changes since `3.0.0-rc.2`. diff --git a/actix-tls/src/connect/host.rs b/actix-tls/src/connect/host.rs index c4ff9a01..13780751 100644 --- a/actix-tls/src/connect/host.rs +++ b/actix-tls/src/connect/host.rs @@ -27,25 +27,25 @@ pub trait Host: Unpin + 'static { impl Host for String { fn hostname(&self) -> &str { - self.split_once(':') + str_split_once(self, ':') .map(|(hostname, _)| hostname) .unwrap_or(self) } fn port(&self) -> Option { - self.split_once(':').and_then(|(_, port)| port.parse().ok()) + str_split_once(self, ':').and_then(|(_, port)| port.parse().ok()) } } impl Host for &'static str { fn hostname(&self) -> &str { - self.split_once(':') + str_split_once(self, ':') .map(|(hostname, _)| hostname) .unwrap_or(self) } fn port(&self) -> Option { - self.split_once(':').and_then(|(_, port)| port.parse().ok()) + str_split_once(self, ':').and_then(|(_, port)| port.parse().ok()) } } @@ -69,3 +69,11 @@ mod tests { assert_connection_info_eq!("example.com:false:false", "example.com", None); } } + +// `str::split_once` is stabilized in 1.52.0 +fn str_split_once(str: &str, delimiter: char) -> Option<(&str, &str)> { + let mut splitn = str.splitn(2, delimiter); + let prefix = splitn.next()?; + let suffix = splitn.next()?; + Some((prefix, suffix)) +}