pub struct JsonLdSerializer { /* private fields */ }
Expand description
A JSON-LD serializer.
Returns Streaming JSON-LD.
It does not implement exactly the RDF as JSON-LD Algorithm
to be a streaming serializer but aims at being close to it.
Features like @json
and @list
generation are not implemented.
use oxrdf::{GraphNameRef, LiteralRef, NamedNodeRef, QuadRef};
use oxrdf::vocab::rdf;
use oxjsonld::JsonLdSerializer;
let mut serializer = JsonLdSerializer::new().with_prefix("schema", "http://schema.org/")?.for_writer(Vec::new());
serializer.serialize_quad(QuadRef::new(
NamedNodeRef::new("http://example.com#me")?,
rdf::TYPE,
NamedNodeRef::new("http://schema.org/Person")?,
GraphNameRef::DefaultGraph
))?;
serializer.serialize_quad(QuadRef::new(
NamedNodeRef::new("http://example.com#me")?,
NamedNodeRef::new("http://schema.org/name")?,
LiteralRef::new_language_tagged_literal_unchecked("Foo Bar", "en"),
GraphNameRef::DefaultGraph
))?;
assert_eq!(
b"{\"@context\":{\"schema\":\"http://schema.org/\"},\"@graph\":[{\"@id\":\"http://example.com#me\",\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\":[{\"@id\":\"http://schema.org/Person\"}],\"http://schema.org/name\":[{\"@language\":\"en\",\"@value\":\"Foo Bar\"}]}]}",
serializer.finish()?.as_slice()
);
Implementations§
Source§impl JsonLdSerializer
impl JsonLdSerializer
Sourcepub fn new() -> Self
pub fn new() -> Self
Builds a new JsonLdSerializer
.
pub fn with_prefix( self, prefix_name: impl Into<String>, prefix_iri: impl Into<String>, ) -> Result<Self, IriParseError>
Sourcepub fn with_base_iri(
self,
base_iri: impl Into<String>,
) -> Result<Self, IriParseError>
pub fn with_base_iri( self, base_iri: impl Into<String>, ) -> Result<Self, IriParseError>
Allows to set the base IRI for serialization.
Corresponds to the base
option from the algorithm specification.
use oxrdf::{GraphNameRef, NamedNodeRef, QuadRef};
use oxjsonld::JsonLdSerializer;
let mut serializer = JsonLdSerializer::new()
.with_base_iri("http://example.com")?
.with_prefix("ex", "http://example.com/ns#")?
.for_writer(Vec::new());
serializer.serialize_quad(QuadRef::new(
NamedNodeRef::new("http://example.com#me")?,
NamedNodeRef::new("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")?,
NamedNodeRef::new("http://example.com/ns#Person")?,
GraphNameRef::DefaultGraph
))?;
serializer.serialize_quad(QuadRef::new(
NamedNodeRef::new("http://example.com#me")?,
NamedNodeRef::new("http://example.com/ns#parent")?,
NamedNodeRef::new("http://example.com#other")?,
GraphNameRef::DefaultGraph
))?;
assert_eq!(
b"{\"@context\":{\"@base\":\"http://example.com\",\"ex\":\"http://example.com/ns#\"},\"@graph\":[{\"@id\":\"#me\",\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\":[{\"@id\":\"/ns#Person\"}],\"http://example.com/ns#parent\":[{\"@id\":\"#other\"}]}]}",
serializer.finish()?.as_slice()
);
Sourcepub fn for_writer<W: Write>(self, writer: W) -> WriterJsonLdSerializer<W>
pub fn for_writer<W: Write>(self, writer: W) -> WriterJsonLdSerializer<W>
Serializes a JSON-LD file to a Write
implementation.
This writer does unbuffered writes.
use oxrdf::{GraphNameRef, LiteralRef, NamedNodeRef, QuadRef};
use oxrdf::vocab::rdf;
use oxjsonld::JsonLdSerializer;
let mut serializer = JsonLdSerializer::new().with_prefix("schema", "http://schema.org/")?.for_writer(Vec::new());
serializer.serialize_quad(QuadRef::new(
NamedNodeRef::new("http://example.com#me")?,
rdf::TYPE,
NamedNodeRef::new("http://schema.org/Person")?,
GraphNameRef::DefaultGraph
))?;
serializer.serialize_quad(QuadRef::new(
NamedNodeRef::new("http://example.com#me")?,
NamedNodeRef::new("http://schema.org/name")?,
LiteralRef::new_language_tagged_literal_unchecked("Foo Bar", "en"),
GraphNameRef::DefaultGraph
))?;
assert_eq!(
b"{\"@context\":{\"schema\":\"http://schema.org/\"},\"@graph\":[{\"@id\":\"http://example.com#me\",\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\":[{\"@id\":\"http://schema.org/Person\"}],\"http://schema.org/name\":[{\"@language\":\"en\",\"@value\":\"Foo Bar\"}]}]}",
serializer.finish()?.as_slice()
);
Trait Implementations§
Source§impl Clone for JsonLdSerializer
impl Clone for JsonLdSerializer
Source§fn clone(&self) -> JsonLdSerializer
fn clone(&self) -> JsonLdSerializer
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Default for JsonLdSerializer
impl Default for JsonLdSerializer
Source§fn default() -> JsonLdSerializer
fn default() -> JsonLdSerializer
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for JsonLdSerializer
impl RefUnwindSafe for JsonLdSerializer
impl Send for JsonLdSerializer
impl Sync for JsonLdSerializer
impl Unpin for JsonLdSerializer
impl UnwindSafe for JsonLdSerializer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more