use crate::errors::RdfConfigError;
use rdf_config::RdfConfigFormat as RdfConfigFormatEnum;
use std::fmt::Display;
use std::str::FromStr;
#[derive(Copy, Clone, PartialEq, Eq, Debug, Default)]
pub enum RdfConfigFormat {
#[default]
Yaml,
}
#[derive(Copy, Clone, PartialEq, Eq, Debug, Default)]
pub enum ResultRdfConfigFormat {
#[default]
Internal,
Yaml,
}
impl FromStr for RdfConfigFormat {
type Err = RdfConfigError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"yaml" => Ok(RdfConfigFormat::Yaml),
other => Err(RdfConfigError::UnsupportedRdfConfigFormat {
format: other.to_string(),
}),
}
}
}
impl Display for RdfConfigFormat {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
RdfConfigFormat::Yaml => write!(f, "yaml"),
}
}
}
impl FromStr for ResultRdfConfigFormat {
type Err = RdfConfigError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"internal" => Ok(ResultRdfConfigFormat::Internal),
"yaml" => Ok(ResultRdfConfigFormat::Yaml),
other => Err(RdfConfigError::UnsupportedResultRdfConfigFormat {
format: other.to_string(),
}),
}
}
}
impl Display for ResultRdfConfigFormat {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ResultRdfConfigFormat::Internal => write!(f, "internal"),
ResultRdfConfigFormat::Yaml => write!(f, "yaml"),
}
}
}
impl From<ResultRdfConfigFormat> for RdfConfigFormatEnum {
fn from(format: ResultRdfConfigFormat) -> Self {
match format {
ResultRdfConfigFormat::Internal => RdfConfigFormatEnum::Internal,
ResultRdfConfigFormat::Yaml => RdfConfigFormatEnum::Yaml,
}
}
}