Skip to content

Commit 716acff

Browse files
committed
Remove heterogeneous ordering for SocketAddr
1 parent 27fc7e5 commit 716acff

File tree

1 file changed

+15
-55
lines changed

1 file changed

+15
-55
lines changed

src/libstd/net/addr.rs

+15-55
Original file line numberDiff line numberDiff line change
@@ -702,53 +702,13 @@ impl PartialOrd for SocketAddrV4 {
702702
}
703703
}
704704

705-
#[stable(feature = "socketaddr_ordering", since = "1.45.0")]
706-
impl PartialOrd<SocketAddr> for SocketAddrV4 {
707-
fn partial_cmp(&self, other: &SocketAddr) -> Option<Ordering> {
708-
match other {
709-
SocketAddr::V4(v4) => self.partial_cmp(v4),
710-
SocketAddr::V6(_) => Some(Ordering::Less),
711-
}
712-
}
713-
}
714-
715-
#[stable(feature = "socketaddr_ordering", since = "1.45.0")]
716-
impl PartialOrd<SocketAddrV4> for SocketAddr {
717-
fn partial_cmp(&self, other: &SocketAddrV4) -> Option<Ordering> {
718-
match self {
719-
SocketAddr::V4(v4) => v4.partial_cmp(other),
720-
SocketAddr::V6(_) => Some(Ordering::Greater),
721-
}
722-
}
723-
}
724-
725705
#[stable(feature = "socketaddr_ordering", since = "1.45.0")]
726706
impl PartialOrd for SocketAddrV6 {
727707
fn partial_cmp(&self, other: &SocketAddrV6) -> Option<Ordering> {
728708
Some(self.cmp(other))
729709
}
730710
}
731711

732-
#[stable(feature = "socketaddr_ordering", since = "1.45.0")]
733-
impl PartialOrd<SocketAddr> for SocketAddrV6 {
734-
fn partial_cmp(&self, other: &SocketAddr) -> Option<Ordering> {
735-
match other {
736-
SocketAddr::V4(_) => Some(Ordering::Greater),
737-
SocketAddr::V6(v6) => self.partial_cmp(v6),
738-
}
739-
}
740-
}
741-
742-
#[stable(feature = "socketaddr_ordering", since = "1.45.0")]
743-
impl PartialOrd<SocketAddrV6> for SocketAddr {
744-
fn partial_cmp(&self, other: &SocketAddrV6) -> Option<Ordering> {
745-
match self {
746-
SocketAddr::V4(_) => Some(Ordering::Less),
747-
SocketAddr::V6(v6) => v6.partial_cmp(other),
748-
}
749-
}
750-
}
751-
752712
#[stable(feature = "socketaddr_ordering", since = "1.45.0")]
753713
impl Ord for SocketAddrV4 {
754714
fn cmp(&self, other: &SocketAddrV4) -> Ordering {
@@ -1213,11 +1173,13 @@ mod tests {
12131173
let v4_1 = "224.120.45.1:23456".parse::<SocketAddrV4>().unwrap();
12141174
let v4_2 = "224.210.103.5:12345".parse::<SocketAddrV4>().unwrap();
12151175
let v4_3 = "224.210.103.5:23456".parse::<SocketAddrV4>().unwrap();
1216-
let v6_1 = "[2001:db8:f00::1002]:1234".parse::<SocketAddrV6>().unwrap();
1217-
let v6_2 = "[2001:db8:f00::2001]:1234".parse::<SocketAddrV6>().unwrap();
1218-
let v6_3 = "[2001:db8:f00::2001]:2345".parse::<SocketAddrV6>().unwrap();
1176+
let v6_1 = "[2001:db8:f00::1002]:23456".parse::<SocketAddrV6>().unwrap();
1177+
let v6_2 = "[2001:db8:f00::2001]:12345".parse::<SocketAddrV6>().unwrap();
1178+
let v6_3 = "[2001:db8:f00::2001]:23456".parse::<SocketAddrV6>().unwrap();
12191179

12201180
// equality
1181+
assert_eq!(v4_1, v4_1);
1182+
assert_eq!(v6_1, v6_1);
12211183
assert_eq!(v4_1, SocketAddr::V4(v4_1));
12221184
assert_eq!(v6_1, SocketAddr::V6(v6_1));
12231185
assert_eq!(SocketAddr::V4(v4_1), SocketAddr::V4(v4_1));
@@ -1229,22 +1191,20 @@ mod tests {
12291191

12301192
// compare different addresses
12311193
assert!(v4_1 < v4_2);
1232-
assert!(v4_1 < SocketAddr::V4(v4_2));
1233-
assert!(SocketAddr::V4(v4_1) < v4_2);
1234-
assert!(SocketAddr::V4(v4_1) < SocketAddr::V4(v4_2));
12351194
assert!(v6_1 < v6_2);
1236-
assert!(v6_1 < SocketAddr::V6(v6_2));
1237-
assert!(SocketAddr::V6(v6_1) < v6_2);
1238-
assert!(SocketAddr::V6(v6_1) < SocketAddr::V6(v6_2));
1195+
assert!(v4_2 > v4_1);
1196+
assert!(v6_2 > v6_1);
12391197

12401198
// compare the same address with different ports
12411199
assert!(v4_2 < v4_3);
1242-
assert!(v4_2 < SocketAddr::V4(v4_3));
1243-
assert!(SocketAddr::V4(v4_2) < v4_3);
1244-
assert!(SocketAddr::V4(v4_2) < SocketAddr::V4(v4_3));
12451200
assert!(v6_2 < v6_3);
1246-
assert!(v6_2 < SocketAddr::V6(v6_3));
1247-
assert!(SocketAddr::V6(v6_2) < v6_3);
1248-
assert!(SocketAddr::V6(v6_2) < SocketAddr::V6(v6_3));
1201+
assert!(v4_3 > v4_2);
1202+
assert!(v6_3 > v6_2);
1203+
1204+
// compare different addresses with the same port
1205+
assert!(v4_1 < v4_3);
1206+
assert!(v6_1 < v6_3);
1207+
assert!(v4_1 > v4_3);
1208+
assert!(v6_1 > v6_3);
12491209
}
12501210
}

0 commit comments

Comments
 (0)