Struct Literal
pub struct Literal(LiteralContent);
rdf
only.Expand description
An owned RDF literal.
The default string formatter is returning an N-Triples, Turtle, and SPARQL compatible representation:
use oxrdf::vocab::xsd;
use oxrdf::Literal;
assert_eq!(
"\"foo\\nbar\"",
Literal::new_simple_literal("foo\nbar").to_string()
);
assert_eq!(
r#""1999-01-01"^^<http://www.w3.org/2001/XMLSchema#date>"#,
Literal::new_typed_literal("1999-01-01", xsd::DATE).to_string()
);
assert_eq!(
r#""foo"@en"#,
Literal::new_language_tagged_literal("foo", "en")?.to_string()
);
Tuple Fieldsยง
ยง0: LiteralContent
Implementationsยง
ยงimpl Literal
impl Literal
pub fn new_simple_literal(value: impl Into<String>) -> Literal
pub fn new_simple_literal(value: impl Into<String>) -> Literal
Builds an RDF simple literal.
pub fn new_language_tagged_literal(
value: impl Into<String>,
language: impl Into<String>,
) -> Result<Literal, LanguageTagParseError>
pub fn new_language_tagged_literal( value: impl Into<String>, language: impl Into<String>, ) -> Result<Literal, LanguageTagParseError>
Builds an RDF language-tagged string.
pub fn new_language_tagged_literal_unchecked(
value: impl Into<String>,
language: impl Into<String>,
) -> Literal
pub fn new_language_tagged_literal_unchecked( value: impl Into<String>, language: impl Into<String>, ) -> Literal
Builds an RDF language-tagged string.
It is the responsibility of the caller to check that language
is valid BCP47 language tag,
and is lowercase.
Literal::new_language_tagged_literal()
is a safe version of this constructor and should be used for untrusted data.
pub fn value(&self) -> &str
pub fn value(&self) -> &str
The literal lexical form.
pub fn language(&self) -> Option<&str>
pub fn language(&self) -> Option<&str>
The literal language tag if it is a language-tagged string.
Language tags are defined by the BCP47. They are normalized to lowercase by this implementation.
pub fn datatype(&self) -> NamedNodeRef<'_>
pub fn datatype(&self) -> NamedNodeRef<'_>
The literal datatype.
The datatype of language-tagged string is always rdf:langString. The datatype of simple literals is xsd:string.
pub fn is_plain(&self) -> bool
pub fn is_plain(&self) -> bool
Checks if this literal could be seen as an RDF 1.0 plain literal.
It returns true if the literal is a language-tagged string or has the datatype xsd:string.
pub fn as_ref(&self) -> LiteralRef<'_>
Trait Implementationsยง
ยงimpl<'a> From<&'a Literal> for LiteralRef<'a>
impl<'a> From<&'a Literal> for LiteralRef<'a>
ยงfn from(node: &'a Literal) -> LiteralRef<'a>
fn from(node: &'a Literal) -> LiteralRef<'a>
ยงimpl<'a> From<LiteralRef<'a>> for Literal
impl<'a> From<LiteralRef<'a>> for Literal
ยงfn from(node: LiteralRef<'a>) -> Literal
fn from(node: LiteralRef<'a>) -> Literal
ยงimpl FromStr for Literal
impl FromStr for Literal
ยงfn from_str(s: &str) -> Result<Literal, <Literal as FromStr>::Err>
fn from_str(s: &str) -> Result<Literal, <Literal as FromStr>::Err>
Parses a literal from its NTriples serialization
use oxrdf::vocab::xsd;
use oxrdf::{Literal, NamedNode};
use std::str::FromStr;
assert_eq!(
Literal::from_str("\"ex\\n\"")?,
Literal::new_simple_literal("ex\n")
);
assert_eq!(
Literal::from_str("\"ex\"@en")?,
Literal::new_language_tagged_literal("ex", "en")?
);
assert_eq!(
Literal::from_str("\"2020\"^^<http://www.w3.org/2001/XMLSchema#gYear>")?,
Literal::new_typed_literal(
"2020",
NamedNode::new("http://www.w3.org/2001/XMLSchema#gYear")?
)
);
assert_eq!(
Literal::from_str("true")?,
Literal::new_typed_literal("true", xsd::BOOLEAN)
);
assert_eq!(
Literal::from_str("+122")?,
Literal::new_typed_literal("+122", xsd::INTEGER)
);
assert_eq!(
Literal::from_str("-122.23")?,
Literal::new_typed_literal("-122.23", xsd::DECIMAL)
);
assert_eq!(
Literal::from_str("-122e+1")?,
Literal::new_typed_literal("-122e+1", xsd::DOUBLE)
);
ยงimpl PartialEq<Literal> for LiteralRef<'_>
impl PartialEq<Literal> for LiteralRef<'_>
ยงimpl PartialEq<LiteralRef<'_>> for Literal
impl PartialEq<LiteralRef<'_>> for Literal
impl Eq for Literal
impl StructuralPartialEq for Literal
Auto Trait Implementationsยง
impl Freeze for Literal
impl RefUnwindSafe for Literal
impl Send for Literal
impl Sync for Literal
impl Unpin for Literal
impl UnwindSafe for Literal
Blanket Implementationsยง
ยงimpl<T> ArchivePointee for T
impl<T> ArchivePointee for T
ยงtype ArchivedMetadata = ()
type ArchivedMetadata = ()
ยงfn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
ยงimpl<T> CallHasher for T
impl<T> CallHasher for T
Sourceยงimpl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
ยงimpl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
ยงfn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
ยงimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
ยงfn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.ยงfn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.ยงfn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
โs vtable from &Trait
โs.ยงfn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
โs vtable from &mut Trait
โs.ยงimpl<T> DowncastSend for T
impl<T> DowncastSend for T
ยงimpl<T> DowncastSync for T
impl<T> DowncastSync for T
ยงimpl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
ยงfn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
ยงimpl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
ยงfn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.ยงimpl<T> Instrument for T
impl<T> Instrument for T
ยงfn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
ยงfn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Sourceยงimpl<T> IntoEither for T
impl<T> IntoEither for T
Sourceยงfn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSourceยงfn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more