Skip to content

Commit

Permalink
Manually impl Ord, PartialOrd
Browse files Browse the repository at this point in the history
  • Loading branch information
untitaker committed Nov 10, 2015
1 parent b999b7d commit 3e72c19
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion src/lib.rs
Expand Up @@ -138,6 +138,7 @@ use std::str;
use std::path::{Path, PathBuf};
use std::borrow::Borrow;
use std::hash::{Hash, Hasher};
use std::cmp::Ordering;

#[cfg(feature="serde_serialization")]
use std::str::FromStr;
Expand Down Expand Up @@ -227,7 +228,7 @@ pub enum SchemeData {
}

/// Components for URLs in a *relative* scheme such as HTTP.
#[derive(Clone, Debug, PartialOrd, Ord)]
#[derive(Clone, Debug)]
#[cfg_attr(feature="heap_size", derive(HeapSizeOf))]
pub struct RelativeSchemeData {
/// The username of the URL, as a possibly empty, percent-encoded string.
Expand Down Expand Up @@ -295,6 +296,18 @@ impl Hash for RelativeSchemeData {
}
}

impl PartialOrd for RelativeSchemeData {
fn partial_cmp(&self, other: &RelativeSchemeData) -> Option<Ordering> {
self.get_identity_key().partial_cmp(&other.get_identity_key())
}
}

impl Ord for RelativeSchemeData {
fn cmp(&self, other: &Self) -> Ordering {
self.get_identity_key().cmp(&other.get_identity_key())
}
}

impl str::FromStr for Url {
type Err = ParseError;

Expand Down

0 comments on commit 3e72c19

Please sign in to comment.