rocket_cors 0.5.1

Cross-origin resource sharing (CORS) for Rocket.rs applications
Documentation
# CHANGELOG

## 0.5.1 (2019-11-13)

There are no new features.

- Fix build issues with Rocket 0.4.2
- Fix clippy lints with latest nightly

## <a name="0.5.0"></a>0.5.0 (2019-05-27)

There is no change since `0.5.0-beta1`.

### Breaking Changes

- The [`Cors`]https://lawliet89.github.io/rocket_cors/rocket_cors/struct.Cors.html struct can no
    longer be constructed. Instead, you will now construct the options for Cors directly or through
    deserialization using the
    [`CorsOptions`]https://lawliet89.github.io/rocket_cors/rocket_cors/struct.CorsOptions.html
    struct. Then, you can construct `Cors` for use in Fairings or manual responses using the
    [`CorsOptions::to_cors`]https://lawliet89.github.io/rocket_cors/rocket_cors/struct.CorsOptions.html#method.to_cors
    method.
- The
    [`AllowedOrigins`]https://lawliet89.github.io/rocket_cors/rocket_cors/type.AllowedOrigins.html
    type has been modified. It is now a typedef of `AllOrSome<Origins>` where
    [`Origins`]https://lawliet89.github.io/rocket_cors/rocket_cors/struct.Origins.html is now
    a struct supporting exact matches or regex matches.

### Migrating existing Code

- Existing use of
    [`AllowedOrigins::some`]https://docs.rs/rocket_cors/0.4.0/rocket_cors/type.AllowedOrigins.html#method.some
    to create exact matches can be replaced simply with
    [`AllowedOrigins::some_exact`]https://lawliet89.github.io/rocket_cors/rocket_cors/type.AllowedOrigins.html#method.some_exact
    instead.
- Replace all construction of `Cors` struct with `CorsOptions` instead. Then, you can create the
    `Cors` struct for use in Fairings using the
    [`CorsOptions::to_cors`]https://lawliet89.github.io/rocket_cors/rocket_cors/struct.CorsOptions.html#method.to_cors
    method

    ```diff
    -fn main() {
    +fn main() -> Result<(), Error> {
        let (allowed_origins, failed_origins) = AllowedOrigins::some(&["https://www.acme.com"]);
        assert!(failed_origins.is_empty());

        // You can also deserialize this
    -    let options = rocket_cors::Cors {
    +    let cors = rocket_cors::CorsOptions {
            allowed_origins: allowed_origins,
            allowed_methods: vec![Method::Get].into_iter().map(From::from).collect(),
            allowed_headers: AllowedHeaders::some(&["Authorization", "Accept"]),
            allow_credentials: true,
            ..Default::default()
    -    };
    +    }
    +    .to_cors()?;

        rocket::ignite()
            .mount("/", routes![cors])
    -        .attach(options)
    +        .attach(cors)
            .launch();
    +
    +    Ok(())
    }
    ```