Add classes function for Datasets, reorg modules
This commit is contained in:
Generated
+16
-16
@@ -107,9 +107,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "bumpalo"
|
||||
version = "3.20.2"
|
||||
version = "3.20.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
|
||||
checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
|
||||
|
||||
[[package]]
|
||||
name = "bytes"
|
||||
@@ -641,9 +641,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.98"
|
||||
version = "0.3.99"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08"
|
||||
checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"futures-util",
|
||||
@@ -1702,9 +1702,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen"
|
||||
version = "0.2.121"
|
||||
version = "0.2.122"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790"
|
||||
checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"once_cell",
|
||||
@@ -1715,9 +1715,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-futures"
|
||||
version = "0.4.71"
|
||||
version = "0.4.72"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8"
|
||||
checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
@@ -1725,9 +1725,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro"
|
||||
version = "0.2.121"
|
||||
version = "0.2.122"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578"
|
||||
checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"wasm-bindgen-macro-support",
|
||||
@@ -1735,9 +1735,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro-support"
|
||||
version = "0.2.121"
|
||||
version = "0.2.122"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2"
|
||||
checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"proc-macro2",
|
||||
@@ -1748,9 +1748,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-shared"
|
||||
version = "0.2.121"
|
||||
version = "0.2.122"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441"
|
||||
checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
@@ -1770,9 +1770,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "web-sys"
|
||||
version = "0.3.98"
|
||||
version = "0.3.99"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa"
|
||||
checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
|
||||
+2
-4
@@ -7,9 +7,7 @@ mod rdf_source;
|
||||
mod resource;
|
||||
pub mod traverse;
|
||||
pub mod vocab;
|
||||
|
||||
#[cfg(feature = "keyed")]
|
||||
pub mod keyed;
|
||||
pub mod model;
|
||||
|
||||
pub use http;
|
||||
pub use oxigraph;
|
||||
@@ -20,4 +18,4 @@ pub use error::{Error, Result};
|
||||
pub use rdf_source::{
|
||||
RdfSource, RdfSourceUpdateRequest, RdfSourceUpdateResponse, SerializationOptions,
|
||||
};
|
||||
pub use resource::{Resource, ResourceRequest, ResourceRequestBuilder, ResponseFormat};
|
||||
pub use resource::{Resource, ResourceRequest, ResourceRequestBuilder, ResponseFormat};
|
||||
@@ -0,0 +1,16 @@
|
||||
use oxigraph::model::{Dataset, NamedNodeRef, NamedOrBlankNodeRef, TermRef};
|
||||
use oxigraph::model::vocab::rdf;
|
||||
use crate::RdfSource;
|
||||
|
||||
impl RdfSource<Dataset> {
|
||||
/// Return all the classes associated with this document.
|
||||
pub fn classes(&self) -> impl Iterator<Item = NamedNodeRef<'_>> {
|
||||
let subject = NamedOrBlankNodeRef::NamedNode(NamedNodeRef::new_unchecked(self.origin.as_str()));
|
||||
self.dataset
|
||||
.quads_for_pattern(Some(subject), Some(rdf::TYPE), None, None)
|
||||
.filter_map(|quad| match quad.object {
|
||||
TermRef::NamedNode(node) => Some(node),
|
||||
_ => None,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,21 @@
|
||||
use oxigraph::model::{Quad, QuadRef};
|
||||
use slotmap::{SecondaryMap, SlotMap, new_key_type};
|
||||
|
||||
new_key_type! { pub struct QuadKey; }
|
||||
new_key_type! {
|
||||
/// A type which uniquely identifies a quad.
|
||||
pub struct QuadKey;
|
||||
}
|
||||
|
||||
/// A set of quads stored in a [`SlotMap`].
|
||||
///
|
||||
/// This exists as a convenience for those who want to uniquely identify a quad and associate
|
||||
/// application-specific data with it.
|
||||
#[derive(Clone, Debug, Default)]
|
||||
pub struct KeyedDataset<T> {
|
||||
/// The underlying SlotMap.
|
||||
pub quads: SlotMap<QuadKey, Quad>,
|
||||
|
||||
/// Application-specific information to be associated with the quads.
|
||||
pub associated_data: SecondaryMap<QuadKey, T>,
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
mod dataset;
|
||||
#[cfg(feature = "keyed")]
|
||||
mod keyed_dataset;
|
||||
|
||||
#[cfg(feature = "keyed")]
|
||||
pub use keyed_dataset::{KeyedDataset, QuadKey};
|
||||
Reference in New Issue
Block a user