pub struct RelativeReferenceBuilder<'uri> { /* private fields */ }
Expand description

A builder type for [RelativeReference].

You must use the RelativeReferenceBuilder::path function before building as relative references always have a path. Everything else is optional.

Implementations

Sets the authority part of the relative reference.

If the given authority is not a valid authority (i.e. the conversion fails), an error is stored internally and checked during the RelativeReferenceBuilder::build function. The error state will be rewritten for any following calls to this function.

It is optional to specify an authority.

Examples
use uriparse::RelativeReferenceBuilder;

let mut builder = RelativeReferenceBuilder::new();
builder.authority(Some("example.com")).path("/my/path");
let reference = builder.build().unwrap();
assert_eq!(reference.to_string(), "//example.com/my/path");

Consumes the builder and tries to build a RelativeReference.

This function will error in one of three situations:

  • One of the components specified in the builder is invalid.
  • A path was not specified in the builder.
  • While all individual components were valid, their combination as a relative reference was invalid.
Examples

First error type (invalid path):

use uriparse::RelativeReferenceBuilder;

let mut builder = RelativeReferenceBuilder::new();
builder.path("this is an invalid path %%%");
assert!(builder.build().is_err());

Second error type (path not specified):

use uriparse::RelativeReferenceBuilder;

let builder = RelativeReferenceBuilder::new();
assert!(builder.build().is_err());

Third error type (first segment in schemeless path cannot contain a ':'):

use uriparse::RelativeReferenceBuilder;

let mut builder = RelativeReferenceBuilder::new();
builder.path("my:/path");
assert!(builder.build().is_err());

Sets the fragment part of the relative reference.

If the given fragment is not a valid fragment (i.e. the conversion fails), an error is stored internally and checked during the RelativeReferenceBuilder::build function. The error state will be rewritten for any following calls to this function.

It is optional to specify a fragment.

Examples
use uriparse::RelativeReferenceBuilder;

let mut builder = RelativeReferenceBuilder::new();
builder.path("/my/path").fragment(Some("fragment"));
let reference = builder.build().unwrap();
assert_eq!(reference.to_string(), "/my/path#fragment");

Constructs a new builder with nothing set.

Sets the path part of the relative reference.

If the given path is not a valid path (i.e. the conversion fails), an error is stored internally and checked during the RelativeReferenceBuilder::build function. The error state will be rewritten for any following calls to this function.

It is required to specify an path. Not doing so will result in an error during the RelativeReferenceBuilder::build function.

Examples
use uriparse::RelativeReferenceBuilder;

let mut builder = RelativeReferenceBuilder::new();
builder.path("/my/path");
let reference = builder.build().unwrap();
assert_eq!(reference.to_string(), "/my/path");

Sets the query part of the relative reference.

If the given query is not a valid query (i.e. the conversion fails), an error is stored internally and checked during the RelativeReferenceBuilder::build function. The error state will be rewritten for any following calls to this function.

It is optional to specify a query.

Examples
use uriparse::RelativeReferenceBuilder;

let mut builder = RelativeReferenceBuilder::new();
builder.path("/my/path").query(Some("query"));
let reference = builder.build().unwrap();
assert_eq!(reference.to_string(), "/my/path?query");

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

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.