.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
use oxigraph::model::NamedNodeRef;
|
||||
use crate::vocab;
|
||||
|
||||
pub enum Class {
|
||||
RdfProperty = 0,
|
||||
RdfsClass = 1,
|
||||
SkosConcept = 2,
|
||||
Work = 10001,
|
||||
Person = 10004,
|
||||
CorporateBody = 10005,
|
||||
Expression = 10006,
|
||||
Manifestation = 10007,
|
||||
}
|
||||
|
||||
impl Class {
|
||||
pub fn to_named_node(&self) -> NamedNodeRef<'_> {
|
||||
match self {
|
||||
Class::RdfProperty => vocab::rdf::PROPERTY,
|
||||
Class::RdfsClass => vocab::rdfs::CLASS,
|
||||
Class::SkosConcept => vocab::skos::CONCEPT,
|
||||
Class::Work => vocab::rdac::WORK,
|
||||
Class::Person => vocab::rdac::PERSON,
|
||||
Class::CorporateBody => vocab::rdac::CORPORATE_BODY,
|
||||
Class::Expression => vocab::rdac::EXPRESSION,
|
||||
Class::Manifestation => vocab::rdac::MANIFESTATION,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn try_from_named_node<'a>(node: impl Into<NamedNodeRef<'a>>) -> Option<Self> {
|
||||
let node = node.into();
|
||||
match node {
|
||||
vocab::rdf::PROPERTY => Some(Class::RdfProperty),
|
||||
vocab::rdfs::CLASS => Some(Class::RdfsClass),
|
||||
vocab::skos::CONCEPT => Some(Class::SkosConcept),
|
||||
vocab::rdac::WORK => Some(Class::Work),
|
||||
vocab::rdac::PERSON => Some(Class::Person),
|
||||
vocab::rdac::CORPORATE_BODY => Some(Class::CorporateBody),
|
||||
vocab::rdac::EXPRESSION => Some(Class::Expression),
|
||||
vocab::rdac::MANIFESTATION => Some(Class::Manifestation),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user