Auto merge of #31751 - gkoz:os_str_path_cmp, r=aturon
This commit is contained in:
commit
43ddfbdfb2
@ -411,6 +411,44 @@ impl Ord for OsStr {
|
||||
fn cmp(&self, other: &OsStr) -> cmp::Ordering { self.bytes().cmp(other.bytes()) }
|
||||
}
|
||||
|
||||
macro_rules! impl_cmp {
|
||||
($lhs:ty, $rhs: ty) => {
|
||||
#[stable(feature = "cmp_os_str", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialEq<$rhs> for $lhs {
|
||||
#[inline]
|
||||
fn eq(&self, other: &$rhs) -> bool { <OsStr as PartialEq>::eq(self, other) }
|
||||
}
|
||||
|
||||
#[stable(feature = "cmp_os_str", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialEq<$lhs> for $rhs {
|
||||
#[inline]
|
||||
fn eq(&self, other: &$lhs) -> bool { <OsStr as PartialEq>::eq(self, other) }
|
||||
}
|
||||
|
||||
#[stable(feature = "cmp_os_str", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialOrd<$rhs> for $lhs {
|
||||
#[inline]
|
||||
fn partial_cmp(&self, other: &$rhs) -> Option<cmp::Ordering> {
|
||||
<OsStr as PartialOrd>::partial_cmp(self, other)
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "cmp_os_str", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialOrd<$lhs> for $rhs {
|
||||
#[inline]
|
||||
fn partial_cmp(&self, other: &$lhs) -> Option<cmp::Ordering> {
|
||||
<OsStr as PartialOrd>::partial_cmp(self, other)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl_cmp!(OsString, OsStr);
|
||||
impl_cmp!(OsString, &'a OsStr);
|
||||
impl_cmp!(Cow<'a, OsStr>, OsStr);
|
||||
impl_cmp!(Cow<'a, OsStr>, &'b OsStr);
|
||||
impl_cmp!(Cow<'a, OsStr>, OsString);
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl Hash for OsStr {
|
||||
#[inline]
|
||||
|
@ -2004,6 +2004,13 @@ impl AsRef<Path> for OsStr {
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "cow_os_str_as_ref_path", since = "1.8.0")]
|
||||
impl<'a> AsRef<Path> for Cow<'a, OsStr> {
|
||||
fn as_ref(&self) -> &Path {
|
||||
Path::new(self)
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl AsRef<Path> for OsString {
|
||||
fn as_ref(&self) -> &Path {
|
||||
@ -2046,7 +2053,7 @@ impl<'a> IntoIterator for &'a Path {
|
||||
fn into_iter(self) -> Iter<'a> { self.iter() }
|
||||
}
|
||||
|
||||
macro_rules! impl_eq {
|
||||
macro_rules! impl_cmp {
|
||||
($lhs:ty, $rhs: ty) => {
|
||||
#[stable(feature = "partialeq_path", since = "1.6.0")]
|
||||
impl<'a, 'b> PartialEq<$rhs> for $lhs {
|
||||
@ -2060,14 +2067,76 @@ macro_rules! impl_eq {
|
||||
fn eq(&self, other: &$lhs) -> bool { <Path as PartialEq>::eq(self, other) }
|
||||
}
|
||||
|
||||
#[stable(feature = "cmp_path", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialOrd<$rhs> for $lhs {
|
||||
#[inline]
|
||||
fn partial_cmp(&self, other: &$rhs) -> Option<cmp::Ordering> {
|
||||
<Path as PartialOrd>::partial_cmp(self, other)
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "cmp_path", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialOrd<$lhs> for $rhs {
|
||||
#[inline]
|
||||
fn partial_cmp(&self, other: &$lhs) -> Option<cmp::Ordering> {
|
||||
<Path as PartialOrd>::partial_cmp(self, other)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl_eq!(PathBuf, Path);
|
||||
impl_eq!(PathBuf, &'a Path);
|
||||
impl_eq!(Cow<'a, Path>, Path);
|
||||
impl_eq!(Cow<'a, Path>, &'b Path);
|
||||
impl_eq!(Cow<'a, Path>, PathBuf);
|
||||
impl_cmp!(PathBuf, Path);
|
||||
impl_cmp!(PathBuf, &'a Path);
|
||||
impl_cmp!(Cow<'a, Path>, Path);
|
||||
impl_cmp!(Cow<'a, Path>, &'b Path);
|
||||
impl_cmp!(Cow<'a, Path>, PathBuf);
|
||||
|
||||
macro_rules! impl_cmp_os_str {
|
||||
($lhs:ty, $rhs: ty) => {
|
||||
#[stable(feature = "cmp_path", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialEq<$rhs> for $lhs {
|
||||
#[inline]
|
||||
fn eq(&self, other: &$rhs) -> bool { <Path as PartialEq>::eq(self, other.as_ref()) }
|
||||
}
|
||||
|
||||
#[stable(feature = "cmp_path", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialEq<$lhs> for $rhs {
|
||||
#[inline]
|
||||
fn eq(&self, other: &$lhs) -> bool { <Path as PartialEq>::eq(self.as_ref(), other) }
|
||||
}
|
||||
|
||||
#[stable(feature = "cmp_path", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialOrd<$rhs> for $lhs {
|
||||
#[inline]
|
||||
fn partial_cmp(&self, other: &$rhs) -> Option<cmp::Ordering> {
|
||||
<Path as PartialOrd>::partial_cmp(self, other.as_ref())
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "cmp_path", since = "1.8.0")]
|
||||
impl<'a, 'b> PartialOrd<$lhs> for $rhs {
|
||||
#[inline]
|
||||
fn partial_cmp(&self, other: &$lhs) -> Option<cmp::Ordering> {
|
||||
<Path as PartialOrd>::partial_cmp(self.as_ref(), other)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl_cmp_os_str!(PathBuf, OsStr);
|
||||
impl_cmp_os_str!(PathBuf, &'a OsStr);
|
||||
impl_cmp_os_str!(PathBuf, Cow<'a, OsStr>);
|
||||
impl_cmp_os_str!(PathBuf, OsString);
|
||||
impl_cmp_os_str!(Path, OsStr);
|
||||
impl_cmp_os_str!(Path, &'a OsStr);
|
||||
impl_cmp_os_str!(Path, Cow<'a, OsStr>);
|
||||
impl_cmp_os_str!(Path, OsString);
|
||||
impl_cmp_os_str!(&'a Path, OsStr);
|
||||
impl_cmp_os_str!(&'a Path, Cow<'b, OsStr>);
|
||||
impl_cmp_os_str!(&'a Path, OsString);
|
||||
impl_cmp_os_str!(Cow<'a, Path>, OsStr);
|
||||
impl_cmp_os_str!(Cow<'a, Path>, &'b OsStr);
|
||||
impl_cmp_os_str!(Cow<'a, Path>, OsString);
|
||||
|
||||
#[stable(since = "1.7.0", feature = "strip_prefix")]
|
||||
impl fmt::Display for StripPrefixError {
|
||||
|
Loading…
x
Reference in New Issue
Block a user