rdftk_core 0.2.2

This crate provides the core RDF data model; concrete implementations for Statements and Literals, along with a Resource type that provides a builder-like experience for models.
Documentation
use rdftk_core::qname::QName;
use std::str::FromStr;

#[test]
fn new_qname() {
    let qname = QName::new("foo").unwrap();
    assert_eq!(qname.to_string(), ":foo".to_string());
    assert_eq!(qname.as_curie(), "[:foo]".to_string());

    let qname = QName::with_prefix("rdf", "foo").unwrap();
    assert_eq!(qname.to_string(), "rdf:foo".to_string());
    assert_eq!(qname.as_curie(), "[rdf:foo]".to_string());
}

#[test]
fn qname_from_str() {
    let qname = QName::from_str("foo");
    assert!(qname.is_ok());
    assert_eq!(qname.unwrap().to_string(), ":foo".to_string());

    let qname = QName::from_str("rdf:foo");
    assert!(qname.is_ok());
    assert_eq!(qname.unwrap().to_string(), "rdf:foo".to_string());
}

#[test]
fn qname_from_str_fail() {
    let qname = QName::from_str("");
    assert!(qname.is_err());

    let qname = QName::from_str("rdf foo");
    assert!(qname.is_err());

    let qname = QName::from_str(":foo");
    assert!(qname.is_err());

    let qname = QName::from_str("rdf::foo:bar");
    assert!(qname.is_err());
}