pub struct PrefixMap {
pub map: IndexMap<String, IriS>,
/* private fields */
}
Expand description
Contains declarations of prefix maps which are used in TURTLE, SPARQL and ShEx
Fields§
§map: IndexMap<String, IriS>
Proper prefix map associations of an alias String
to an IriS
Implementations§
Source§impl PrefixMap
impl PrefixMap
Sourcepub fn with_qualify_prefix_color(self, color: Option<Color>) -> PrefixMap
pub fn with_qualify_prefix_color(self, color: Option<Color>) -> PrefixMap
Change (“color when qualifying a IRI
Sourcepub fn with_qualify_localname_color(self, color: Option<Color>) -> PrefixMap
pub fn with_qualify_localname_color(self, color: Option<Color>) -> PrefixMap
Change color of localname when qualifying a IRI
Sourcepub fn with_qualify_semicolon_color(self, color: Option<Color>) -> PrefixMap
pub fn with_qualify_semicolon_color(self, color: Option<Color>) -> PrefixMap
Change color of semicolon when qualifying a IRI
pub fn without_rich_qualifying(self) -> PrefixMap
Sourcepub fn insert(&mut self, alias: &str, iri: &IriS) -> Result<(), PrefixMapError>
pub fn insert(&mut self, alias: &str, iri: &IriS) -> Result<(), PrefixMapError>
Inserts an alias association to an IRI
pub fn find(&self, str: &str) -> Option<&IriS>
pub fn from_hashmap( hm: &HashMap<&str, &str>, ) -> Result<PrefixMap, PrefixMapError>
Sourcepub fn iter(&self) -> Iter<'_, String, IriS>
pub fn iter(&self) -> Iter<'_, String, IriS>
Return an iterator over the key-value pairs of the (“map, in their order
Sourcepub fn resolve(&self, str: &str) -> Result<IriS, PrefixMapError>
pub fn resolve(&self, str: &str) -> Result<IriS, PrefixMapError>
Resolves a string against a prefix map Example: Given a string like “ex:a” and a prefixmap that has alias “ex” with value “http://example.org/”, the result will be “http://example.org/a”
use std::collections::HashMap;
use prefixmap::PrefixMap;
use prefixmap::PrefixMapError;
use iri_s::*;
use std::str::FromStr;
let pm: PrefixMap = PrefixMap::from_hashmap(
&HashMap::from([
("", "http://example.org/"),
("schema", "http://schema.org/")])
)?;
let a = pm.resolve(":a")?;
let a_resolved = IriS::from_str("http://example.org/a")?;
assert_eq!(a, a_resolved);
Ok::<(), PrefixMapError>(());
let knows = pm.resolve("schema:knows")?;
let knows_resolved = IriS::from_str("http://schema.org/knows")?;
assert_eq!(knows, knows_resolved);
Ok::<(), PrefixMapError>(())
Sourcepub fn resolve_iriref(&self, iri_ref: &IriRef) -> Result<IriS, PrefixMapError>
pub fn resolve_iriref(&self, iri_ref: &IriRef) -> Result<IriS, PrefixMapError>
Resolves an IriRef against a prefix map
Sourcepub fn resolve_prefix_local(
&self,
prefix: &str,
local: &str,
) -> Result<IriS, PrefixMapError>
pub fn resolve_prefix_local( &self, prefix: &str, local: &str, ) -> Result<IriS, PrefixMapError>
Resolves a prefixed alias and a local name in a prefix map to obtain the full IRI
use std::collections::HashMap;
use prefixmap::PrefixMap;
let pm = PrefixMap::from_hashmap(
&HashMap::from([
("", "http://example.org/"),
("schema", "http://schema.org/"),
("xsd", "http://www.w3.org/2001/XMLSchema#")
]))?;
let a = pm.resolve_prefix_local("", "a")?;
let a_resolved = IriS::from_str("http://example.org/a")?;
assert_eq!(a, a_resolved);
let knows = pm.resolve_prefix_local("schema","knows")?;
let knows_resolved = IriS::from_str("http://schema.org/knows")?;
assert_eq!(knows, knows_resolved);
let xsd_string = pm.resolve_prefix_local("xsd","string")?;
let xsd_string_resolved = IriS::from_str("http://www.w3.org/2001/XMLSchema#string")?;
assert_eq!(xsd_string, xsd_string_resolved);
Sourcepub fn qualify(&self, iri: &IriS) -> String
pub fn qualify(&self, iri: &IriS) -> String
Qualifies an IRI against a prefix map
If it can’t qualify the IRI, it returns the iri between <
and >
let pm = PrefixMap::from_hashmap(
&HashMap::from([
("", "http://example.org/"),
("schema", "http://schema.org/")])
)?;
let a = IriS::from_str("http://example.org/a")?;
assert_eq!(pm.qualify(&a), ":a");
let knows = IriS::from_str("http://schema.org/knows")?;
assert_eq!(pm.qualify(&knows), "schema:knows");
let other = IriS::from_str("http://other.org/foo")?;
assert_eq!(pm.qualify(&other), "<http://other.org/foo>");
Sourcepub fn qualify_optional(&self, iri: &IriS) -> Option<String>
pub fn qualify_optional(&self, iri: &IriS) -> Option<String>
Qualifies an IRI against a prefix map
If it can’t qualify the IRI, returns None
let pm = PrefixMap::from_hashmap(
&HashMap::from([
("", "http://example.org/"),
("schema", "http://schema.org/")])
)?;
let a = IriS::from_str("http://example.org/a")?;
assert_eq!(pm.qualify(&a), Some(":a"));
let knows = IriS::from_str("http://schema.org/knows")?;
assert_eq!(pm.qualify(&knows), Some("schema:knows"));
let other = IriS::from_str("http://other.org/foo")?;
assert_eq!(pm.qualify(&other), None);
Sourcepub fn qualify_and_length(&self, iri: &IriS) -> (String, usize)
pub fn qualify_and_length(&self, iri: &IriS) -> (String, usize)
Qualifies an IRI against a prefix map returning the length of the qualified string
let pm = PrefixMap::from_hashmap(
&HashMap::from([
("", "http://example.org/"),
("schema", "http://schema.org/")])
)?;
let a = IriS::from_str("http://example.org/a")?;
assert_eq!(pm.qualify(&a), ":a");
let knows = IriS::from_str("http://schema.org/knows")?;
assert_eq!(pm.qualify(&knows), "schema:knows");
let other = IriS::from_str("http://other.org/foo")?;
assert_eq!(pm.qualify(&other), "<http://other.org/foo>");
Sourcepub fn qualify_local(&self, iri: &IriS) -> Option<String>
pub fn qualify_local(&self, iri: &IriS) -> Option<String>
Qualify an IRI against a prefix map and obtains the local name
let pm = PrefixMap::from_hashmap(
&HashMap::from([
("", "http://example.org/"),
("schema", "http://schema.org/")])
)?;
let a = IriS::from_str("http://example.org/a")?;
assert_eq!(pm.qualify_local(&a), Some("a".to_string()));
let knows = IriS::from_str("http://schema.org/knows")?;
assert_eq!(pm.qualify_local(&knows), Some("knows".to_string()));
let other = IriS::from_str("http://other.org/foo")?;
assert_eq!(pm.qualify_local(&other), None);
Sourcepub fn wikidata() -> PrefixMap
pub fn wikidata() -> PrefixMap
Default Wikidata prefixmap This source of this list is https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes
pub fn without_colors(self) -> PrefixMap
pub fn without_default_colors(self) -> PrefixMap
pub fn with_hyperlink(self, hyperlink: bool) -> PrefixMap
pub fn merge(&mut self, other: PrefixMap) -> Result<(), PrefixMapError>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for PrefixMap
impl<'de> Deserialize<'de> for PrefixMap
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PrefixMap, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PrefixMap, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for PrefixMap
impl Serialize for PrefixMap
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for PrefixMap
Auto Trait Implementations§
impl Freeze for PrefixMap
impl RefUnwindSafe for PrefixMap
impl Send for PrefixMap
impl Sync for PrefixMap
impl Unpin for PrefixMap
impl UnwindSafe for PrefixMap
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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