use std::str::FromStr;
use crate::StarError;
#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum StarFormat {
TurtleStar,
NTriplesStar,
TrigStar,
NQuadsStar,
JsonLdStar,
}
impl FromStr for StarFormat {
type Err = StarError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"turtle-star" | "ttls" => Ok(StarFormat::TurtleStar),
"ntriples-star" | "nts" => Ok(StarFormat::NTriplesStar),
"trig-star" | "trigs" => Ok(StarFormat::TrigStar),
"nquads-star" | "nqs" => Ok(StarFormat::NQuadsStar),
"json-ld-star" | "jsonld-star" | "jlds" => Ok(StarFormat::JsonLdStar),
_ => Err(StarError::parse_error(format!("Unknown format: {s}"))),
}
}
}