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>) -> Self
pub fn with_qualify_prefix_color(self, color: Option<Color>) -> Self
Change color when qualifying a IRI
Sourcepub fn with_qualify_localname_color(self, color: Option<Color>) -> Self
pub fn with_qualify_localname_color(self, color: Option<Color>) -> Self
Change color of localname when qualifying a IRI
Sourcepub fn with_qualify_semicolon_color(self, color: Option<Color>) -> Self
pub fn with_qualify_semicolon_color(self, color: Option<Color>) -> Self
Change color of semicolon when qualifying a IRI
Sourcepub fn without_rich_qualifying(self) -> Self
pub fn without_rich_qualifying(self) -> Self
Disable all rich qualifying (colors and hyperlinks)
pub fn add_prefix( &mut self, prefix: String, iri: String, ) -> Result<(), PrefixMapError>
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
Sourcepub fn from_hashmap(
hm: &HashMap<&str, &str>,
) -> Result<PrefixMap, PrefixMapError>
pub fn from_hashmap( hm: &HashMap<&str, &str>, ) -> Result<PrefixMap, PrefixMapError>
Creates a prefix map from a hashmap of &str to &str
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_optional(&a), Some(":a".to_string()));
let knows = IriS::from_str("http://schema.org/knows")?;
assert_eq!(pm.qualify_optional(&knows), Some("schema:knows".to_string()));
let other = IriS::from_str("http://other.org/foo")?;
assert_eq!(pm.qualify_optional(&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_and_length(&a), (":a".to_string(), 2));
let knows = IriS::from_str("http://schema.org/knows")?;
assert_eq!(pm.qualify_and_length(&knows), ("schema:knows".to_string(),12));
let other = IriS::from_str("http://other.org/foo")?;
assert_eq!(pm.qualify_and_length(&other), ("<http://other.org/foo>".to_string(), 22));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) -> Self
pub fn without_default_colors(self) -> Self
pub fn with_hyperlink(self, hyperlink: bool) -> Self
pub fn merge(&mut self, other: PrefixMap) -> Result<(), PrefixMapError>
pub fn aliases(&self) -> impl Iterator<Item = &String>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for PrefixMap
impl<'de> Deserialize<'de> for PrefixMap
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for PrefixMap
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.