Macro sophia_api::namespace
source · macro_rules! namespace { ($iri_prefix:expr, $($suffix:ident),*; $($r_id:ident, $r_sf:expr),*) => { ... }; ($iri_prefix:expr, $($suffix:ident),*) => { ... }; }
Expand description
Create a “namespace module” defining a set of terms within a given IRI space.
Tests
This macro also create a test module to check that all created IRIs are valid.
This allows to skip those checks at runtime, keeping the initialization of the namespace fast.
Example
/// An example namespace module
pub mod ex {
namespace! {
"http://example.org/ns#",
Foo,
Bar,
Baz
}
}
assert_eq!(ex::Foo, IriRef::new_unchecked("http://example.org/ns#Foo"));
assert_eq!(ex::Bar, IriRef::new_unchecked("http://example.org/ns#Bar"));