fluent-syntax 0.9.2

Parser/Serializer tools for Fluent Syntax.
Documentation
use fluent_syntax::unicode::unescape_unicode;
use std::borrow::Cow;

fn is_cow_borrowed<'a>(input: Cow<'a, str>) -> bool {
    if let Cow::Borrowed(_) = input {
        true
    } else {
        false
    }
}

#[test]
fn unescape_unicode_test() {
    assert!(is_cow_borrowed(unescape_unicode("foo")));

    assert_eq!(unescape_unicode("foo"), "foo");
    assert_eq!(unescape_unicode("foo \\\\"), "foo \\");
    assert_eq!(unescape_unicode("foo \\\""), "foo \"");
    assert_eq!(unescape_unicode("foo \\\\ faa"), "foo \\ faa");
    assert_eq!(
        unescape_unicode("foo \\\\ faa \\\\ fii"),
        "foo \\ faa \\ fii"
    );
    assert_eq!(
        unescape_unicode("foo \\\\\\\" faa \\\"\\\\ fii"),
        "foo \\\" faa \"\\ fii"
    );
    assert_eq!(unescape_unicode("\\u0041\\u004F"), "AO");
    assert_eq!(unescape_unicode("\\uA"), "");
    assert_eq!(unescape_unicode("\\uA0Pl"), "");
    assert_eq!(unescape_unicode("\\d Foo"), "� Foo");
}