/*!
* 
* This crate provides an implementation of the RDF abstract syntax along with a `Resource` type
* that provides a builder-like experience for models.
*
* From [RDF 1.1 Concepts and Abstract Syntax](https://www.w3.org/TR/rdf11-concepts/);
*
* > The core structure of the abstract syntax is a set of triples, each consisting of a subject, a
* > predicate and an object. A set of such triples is called an RDF graph. An RDF graph can be
* > visualized as a node and directed-arc diagram, in which each triple is represented as a
* > node-arc-node link.
* >
* > 
* >
* > There can be three kinds of nodes in an RDF graph: IRIs, literals, and blank nodes.
*
* In this library the triple, or statement, as well as subject, predicate, and object types are
* in the module [`statement`](model/statement/index.html). Literal's as objects are supported in the
* [`literal`](model/literal/index.html) module. Traits that describe graphs are provided by the
* [`graph`](model/graph/index.html) module.
*
* Additional features are provided such as support for data sets (module [`data_set`](model/data_set/index.html))
* as well as support for extensions to the core RDF abstract model such as
* [RDF-star](https://w3c.github.io/rdf-star/cg-spec/editors_draft.html).
*
* # Example
*
* ```rust
* use rdftk_core::model::data_set::DataSet;
* use rdftk_core::model::graph::Graph;
* use rdftk_core::model::literal::Literal;
* use rdftk_core::model::statement::{
* ObjectNode, Statement, SubjectNode,
* };
* use rdftk_iri::Iri;
* use std::str::FromStr;
*
* let statement = Statement::new(
* Iri::from_str("http://en.wikipedia.org/wiki/Tony_Benn").unwrap(),
* Iri::from_str("http://purl.org/dc/elements/1.1/title").unwrap(),
* Literal::from("Tony Benn"),
* );
*
* let graph = Graph::from(statement);
*
* let data_set = DataSet::from(graph);
* ```
*
*/
#![warn(
unknown_lints,
// ---------- Stylistic
absolute_paths_not_starting_with_crate,
elided_lifetimes_in_paths,
explicit_outlives_requirements,
macro_use_extern_crate,
nonstandard_style, /* group */
noop_method_call,
rust_2018_idioms,
single_use_lifetimes,
trivial_casts,
trivial_numeric_casts,
// ---------- Future
future_incompatible, /* group */
rust_2021_compatibility, /* group */
// ---------- Public
missing_debug_implementations,
// missing_docs,
unreachable_pub,
// ---------- Unsafe
unsafe_code,
unsafe_op_in_unsafe_fn,
// ---------- Unused
unused, /* group */
)]
#![deny(
// ---------- Public
exported_private_dependencies,
// ---------- Deprecated
anonymous_parameters,
bare_trait_objects,
ellipsis_inclusive_range_patterns,
// ---------- Unsafe
deref_nullptr,
drop_bounds,
dyn_drop,
)]
// ------------------------------------------------------------------------------------------------
// Modules
// ------------------------------------------------------------------------------------------------
#[macro_use]
pub mod error;
pub mod model;