Struct uriparse::uri::URIBuilder[][src]

pub struct URIBuilder<'uri> { /* fields omitted */ }

A builder type for [URI].

You must use the URI::scheme and URI::path functions before building as URIs always have a scheme and path. Everything else is optional.

Methods

impl<'uri> URIBuilder<'uri>
[src]

Important traits for &'a mut R

Sets the authority part of the URI.

If the given authority is not a valid authority (i.e. the conversion fails), an error is stored internally and checked during the URIBuilder::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::URIBuilder;

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

Consumes the builder and tries to build a URI.

This function will error in one of three situations:

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

Examples

First error type (invalid path):

use uriparse::URIBuilder;

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

Second error type (scheme and/or path were not specified):

use uriparse::URIBuilder;

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

Third error type (URI with no authority cannot have path starting with "//"):

use uriparse::URIBuilder;

let mut builder = URIBuilder::new();
builder.scheme("urn").path("//path");
assert!(builder.build().is_err());

Important traits for &'a mut R

Sets the fragment part of the URI.

If the given fragment is not a valid fragment (i.e. the conversion fails), an error is stored internally and checked during the URIBuilder::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::URIBuilder;

let mut builder = URIBuilder::new();
builder.scheme("urn").path("path").fragment(Some("fragment"));
let uri = builder.build().unwrap();
assert_eq!(uri.to_string(), "urn:path#fragment");

Constructs a new builder with nothing set.

Important traits for &'a mut R

Sets the path part of the URI.

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

It is required to specify a path.

Examples

use uriparse::URIBuilder;

let mut builder = URIBuilder::new();
builder.scheme("urn").path("path");
let uri = builder.build().unwrap();
assert_eq!(uri.to_string(), "urn:path");

Important traits for &'a mut R

Sets the query part of the URI.

If the given query is not a valid query (i.e. the conversion fails), an error is stored internally and checked during the URIBuilder::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::URIBuilder;

let mut builder = URIBuilder::new();
builder.scheme("urn").path("path").query(Some("query"));
let uri = builder.build().unwrap();
assert_eq!(uri.to_string(), "urn:path?query");

Important traits for &'a mut R

Sets the scheme part of the URI.

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

It is required to specify a scheme.

Examples

use uriparse::URIBuilder;

let mut builder = URIBuilder::new();
builder.scheme("urn").path("path");
let uri = builder.build().unwrap();
assert_eq!(uri.to_string(), "urn:path");

Trait Implementations

impl<'uri> Clone for URIBuilder<'uri>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'uri> Debug for URIBuilder<'uri>
[src]

Formats the value using the given formatter. Read more

impl<'uri> Default for URIBuilder<'uri>
[src]

Returns the "default value" for a type. Read more

impl<'uri> Eq for URIBuilder<'uri>
[src]

impl<'uri> PartialEq for URIBuilder<'uri>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

impl<'uri> Send for URIBuilder<'uri>

impl<'uri> Sync for URIBuilder<'uri>