base_url 0.0.9

A Url type which strictly cuts out errors related to parsing and host suitability after creation at the cost of some flexibility
Documentation
# BaseUrl

A library for the programming language [Rust](https://www.rust-lang.org).

This is a thin wrapper over the [Url](https://crates.io/crates/url) crate which eliminates the potential
for errors related to valid Url which cannot be a base by checking that the Url can be a base on 
creation. As such, a BaseUrl never fails when doing things like calling ```set_path()```

## Usage

In any Rust project managed by Cargo add the following to your Cargo.toml ```[dependencies]``` section:
```
base_url="0.0.8"
```
The package exposes base_url which defines the BaseUrl structure at it's root and also re-exports the 
content of the rust-url crate
```rust
extern crate base_url;
use base_url::BaseUrl;
use base_url::Url;
```
BaseUrl can be created by converting from a String or a Url, these conversions are implemented using
the traits found in the [try_from](https://crates.io/crates/try_from) crate.

## Features

There are 2 features which can be opted into ```robot_conversions``` and ```sitemap_conversions```.  
Each of these features adds a conversion into the important types of the crates ```robotparser``` and 
```sitemap``` respectively.

If you wish to add your own conversions (for a crate you don't own at least), look at those 
implementations given in ```src/conversions.rs``` as well as the dependency hierarchy in 
```Cargo.toml```

## What's Missing?

This is at version 0.0.8 for a reason, there are things to be added before I'm comfortable claiming 
this library is at a proper first version.  
Tests should be added, even though this is mostly just a thin wrapper over the Url type proving
that CannotBeBase errors are truly gone when using the library is something which should be done  
Finally there are some functions which are still missing, anything which requires me to reimplement the ```parse()```
function isn't being touched until I really need to, notably ```join()``` isn't available yet.