Struct RiAbsoluteStr Copy item path  Source  pub struct RiAbsoluteStr<S> {  }Expand description A borrowed slice of an absolute IRI without fragment part.
This corresponds to absolute-IRI rule  in RFC 3987 
(and absolute-URI rule  in RFC 3986 ).
In other words, this is RiStr  without fragment part.
If you want to accept fragment part, use RiStr .
§ Valid values 
This type can have an absolute IRI without fragment part.
assert! (IriAbsoluteStr::new("https://example.com/foo?bar=baz" ).is_ok());
assert! (IriAbsoluteStr::new("foo:bar" ).is_ok());
assert! (IriAbsoluteStr::new("foo:" ).is_ok());
assert! (IriAbsoluteStr::new("foo:/" ).is_ok());
assert! (IriAbsoluteStr::new("foo://" ).is_ok());
assert! (IriAbsoluteStr::new("foo:///" ).is_ok());
assert! (IriAbsoluteStr::new("foo:////" ).is_ok());
assert! (IriAbsoluteStr::new("foo://///" ).is_ok());
 
Relative IRI is not allowed.
assert! (IriAbsoluteStr::new("foo/bar" ).is_err());
assert! (IriAbsoluteStr::new("/foo/bar" ).is_err());
assert! (IriAbsoluteStr::new("//foo/bar" ).is_err());
assert! (IriAbsoluteStr::new("" ).is_err()); 
Fragment part (such as trailing #foo) is not allowed.
assert! (IriAbsoluteStr::new("https://example.com/foo?bar=baz#qux" ).is_err()); 
Some characters and sequences cannot used in an absolute IRI.
assert! (IriAbsoluteStr::new("<not allowed>" ).is_err());
assert! (IriAbsoluteStr::new("%" ).is_err());
assert! (IriAbsoluteStr::new("%GG" ).is_err()); 
Creates a new string without validation.
This does not validate the given string, so it is caller’s
responsibility to ensure the given string is valid.
§ Safety 
The given string must be syntactically valid as Self type.
If not, any use of the returned value or the call of this
function itself may result in undefined behavior.
Returns the string length.
Returns whether the string is empty.
Returns Ok(()) if the IRI is normalizable by the RFC 3986 algorithm.
§ Examples 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("HTTP://example.COM/foo/%2e/bar/.." )? ;
assert! (iri.ensure_rfc3986_normalizable().is_ok());
let  iri2 = IriAbsoluteStr::new("scheme:/..//bar" )? ;
assert! (!iri.ensure_rfc3986_normalizable().is_err()); 
Returns true if the IRI is already normalized.
This returns the same result as self.normalize().to_string() == self,
but does this more efficiently without heap allocation.
§ Examples 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("HTTP://example.COM/foo/./bar/%2e%2e/../baz?query" )? ;
assert! (!iri.is_normalized());
let  normalized = iri.normalize().to_dedicated_string();
assert_eq! (normalized, "http://example.com/baz?query" );
assert! (normalized.is_normalized()); 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("scheme:/.///foo" )? ;
assert! (iri.is_normalized()); 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("scheme:relative/..//not-a-host" )? ;
assert! (!iri.is_normalized());
let  normalized = iri.normalize().to_dedicated_string();
assert_eq! (normalized, "scheme:/.//not-a-host" ); 
Returns true if the IRI is already normalized.
This returns the same result as
self.ensure_rfc3986_normalizable() && (self.normalize().to_string() == self),
does this more efficiently without heap allocation.
§ Examples 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("HTTP://example.COM/foo/./bar/%2e%2e/../baz?query" )? ;
assert! (!iri.is_normalized_rfc3986());
let  normalized = iri.normalize().to_dedicated_string();
assert_eq! (normalized, "http://example.com/baz?query" );
assert! (normalized.is_normalized_rfc3986()); 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("scheme:/.///foo" )? ;
assert! (!iri.is_normalized_rfc3986()); 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("scheme:relative/..//not-a-host" )? ;
assert! (!iri.is_normalized_rfc3986());
let  normalized = iri.normalize().to_dedicated_string();
assert_eq! (normalized, "scheme:/.//not-a-host" ); 
Returns true if the IRI is already normalized in the sense of
normalize_but_preserve_authorityless_relative_path  method.
This returns the same result as
self.normalize_but_preserve_authorityless_relative_path().to_string() == self,
but does this more efficiently without heap allocation.
§ Examples 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("HTTP://example.COM/foo/./bar/%2e%2e/../baz?query" )? ;
assert! (!iri.is_normalized_but_authorityless_relative_path_preserved());
let  normalized = iri
    .normalize_but_preserve_authorityless_relative_path()
    .to_dedicated_string();
assert_eq! (normalized, "http://example.com/baz?query" );
assert! (normalized.is_normalized()); 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("scheme:/.///foo" )? ;
assert! (iri.is_normalized_but_authorityless_relative_path_preserved()); 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("scheme:relative/..//not-a-host" )? ;
assert! (iri.is_normalized_but_authorityless_relative_path_preserved()); 
Returns the normalized IRI.
§ Notes 
For some abnormal IRIs, the normalization can produce semantically
incorrect string that looks syntactically valid. To avoid security
issues by this trap, the normalization algorithm by this crate
automatically applies the workaround.
If you worry about this, test by
RiAbsoluteStr::ensure_rfc3986_normalizable  method or
Normalized::ensure_rfc3986_normalizable  before using the result
string.
§ Examples 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("HTTP://example.COM/foo/./bar/%2e%2e/../baz?query" )? ;
let  normalized = iri.normalize().to_dedicated_string();
assert_eq! (normalized, "http://example.com/baz?query" ); 
Returns the normalized IRI, but preserving dot segments in relative path
if the authority component is absent.
This normalization would be similar to that of WHATWG URL Standard 
while this implementation is not guaranteed to stricly follow the spec.
Note that this normalization algorithm is not compatible with RFC 3986
algorithm for some inputs.
Note that case normalization and percent-encoding normalization will
still be applied to any path.
§ Examples 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("HTTP://example.COM/foo/./bar/%2e%2e/../baz?query" )? ;
let  normalized = iri
    .normalize_but_preserve_authorityless_relative_path()
    .to_dedicated_string();
assert_eq! (normalized, "http://example.com/baz?query" ); 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("scheme:relative/../f%6f%6f" )? ;
let  normalized = iri
    .normalize_but_preserve_authorityless_relative_path()
    .to_dedicated_string();
assert_eq! (normalized, "scheme:relative/../foo" );
 
Returns the proxy to the IRI with password masking feature.
§ Examples 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("http://user:password@example.com/path?query" )? ;
let  masked = iri.mask_password();
assert_eq! (masked.to_dedicated_string(), "http://user:@example.com/path?query" );
assert_eq! (
    masked.replace_password("${password}" ).to_string(),
    "http://user:${password}@example.com/path?query"
 ); 
Returns the scheme.
The following colon is truncated.
§ Examples 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("http://example.com/pathpath?queryquery" )? ;
assert_eq! (iri.scheme_str(), "http" ); 
Returns the authority.
The leading // is truncated.
§ Examples 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("http://example.com/pathpath?queryquery" )? ;
assert_eq! (iri.authority_str(), Some ("example.com" )); 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("urn:uuid:10db315b-fcd1-4428-aca8-15babc9a2da2" )? ;
assert_eq! (iri.authority_str(), None ); 
Returns the path.
§ Examples 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("http://example.com/pathpath?queryquery" )? ;
assert_eq! (iri.path_str(), "/pathpath" ); 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("urn:uuid:10db315b-fcd1-4428-aca8-15babc9a2da2" )? ;
assert_eq! (iri.path_str(), "uuid:10db315b-fcd1-4428-aca8-15babc9a2da2" ); 
Returns the query.
The leading question mark (?) is truncated.
§ Examples 
use  iri_string::types::{IriAbsoluteStr, IriQueryStr};
let  iri = IriAbsoluteStr::new("http://example.com/pathpath?queryquery" )? ;
let  query = IriQueryStr::new("queryquery" )? ;
assert_eq! (iri.query(), Some (query)); 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("urn:uuid:10db315b-fcd1-4428-aca8-15babc9a2da2" )? ;
assert_eq! (iri.query(), None ); 
Returns the query in a raw string slice.
The leading question mark (?) is truncated.
§ Examples 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("http://example.com/pathpath?queryquery" )? ;
assert_eq! (iri.query_str(), Some ("queryquery" )); 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("urn:uuid:10db315b-fcd1-4428-aca8-15babc9a2da2" )? ;
assert_eq! (iri.query_str(), None ); 
Returns the authority components.
§ Examples 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("http://user:pass@example.com:8080/pathpath?queryquery" )? ;
let  authority = iri.authority_components()
    .expect("authority is available" );
assert_eq! (authority.userinfo(), Some ("user:pass" ));
assert_eq! (authority.host(), "example.com" );
assert_eq! (authority.port(), Some ("8080" )); 
use  iri_string::types::IriAbsoluteStr;
let  iri = IriAbsoluteStr::new("urn:uuid:10db315b-fcd1-4428-aca8-15babc9a2da2" )? ;
assert_eq! (iri.authority_str(), None ); 
Source § Conversion from an IRI into a URI.
Percent-encodes the IRI into a valid URI that identifies the equivalent resource.
If you need more precise control over memory allocation and buffer
handling, use MappedToUri  type.
§ Examples 
use  iri_string::format::ToDedicatedString;
use  iri_string::types::{IriAbsoluteStr, UriAbsoluteString};
let  iri = IriAbsoluteStr::new("http://example.com/?alpha=\u{03B1}" )? ;
let  uri: UriAbsoluteString = iri.encode_to_uri().to_dedicated_string();
assert_eq! (uri, "http://example.com/?alpha=%CE%B1" ); 
Converts an IRI into a URI without modification, if possible.
This is semantically equivalent to
UriAbsoluteStr::new(self.as_str()).ok().
§ Examples 
use  iri_string::types::{IriAbsoluteStr, UriAbsoluteStr};
let  ascii_iri = IriAbsoluteStr::new("http://example.com/?alpha=%CE%B1" )? ;
assert_eq! (
    ascii_iri.as_uri().map(AsRef::as_ref),
    Some ("http://example.com/?alpha=%CE%B1" )
);
let  nonascii_iri = IriAbsoluteStr::new("http://example.com/?alpha=\u{03B1}" )? ;
assert_eq! (nonascii_iri.as_uri(), None ); 
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
Immutably borrows from an owned value. 
Read more Formats the value using the given formatter. 
Read more Formats the value using the given formatter. 
Read more Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.
This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more This method returns an ordering between 
self and 
other values if one exists. 
Read more Tests less than (for 
self and 
other) and is used by the 
< operator. 
Read more Tests less than or equal to (for 
self and 
other) and is used by the
<= operator. 
Read more Tests greater than (for 
self and 
other) and is used by the 
>
operator. 
Read more Tests greater than or equal to (for 
self and 
other) and is used by
the 
>= operator. 
Read more The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. 
Read more Uses borrowed data to replace owned data, usually by cloning. 
Read more The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Immutably borrows from an owned value. 
Read more Mutably borrows from an owned value. 
Read more Converts the given value to a 
String. 
Read more