fluent-locale 0.3.2

A library for parsing, serializing, manipulating and negotiating locales and language tags.
Documentation
#![feature(test)]

extern crate fluent_locale;
extern crate test;

use fluent_locale::negotiate_languages;
use fluent_locale::Locale;
use test::Bencher;

#[bench]
fn bench_locale(b: &mut Bencher) {
    let locales = [
        "en-US", "fr", "de", "en-GB", "it", "pl", "ru", "sr-Cyrl", "sr-Latn", "zh-Hant", "zh-Hans",
        "ja-JP", "he-IL", "de-DE", "de-IT",
    ];

    b.iter(|| {
        for locale in &locales {
            let _ = Locale::new(*locale, None);
        }
    });
}

#[bench]
fn bench_negotiate(b: &mut Bencher) {
    let requested = vec!["de", "it", "ru"];
    let available = vec![
        "en-US", "fr", "de", "en-GB", "it", "pl", "ru", "sr-Cyrl", "sr-Latn", "zh-Hant", "zh-Hans",
        "ja-JP", "he-IL", "de-DE", "de-IT",
    ];

    b.iter(|| {
        negotiate_languages(
            &requested,
            &available,
            None,
            &fluent_locale::NegotiationStrategy::Filtering,
        );
    });
}