use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum SchemaVersion {
V44,
V50SP2,
}
#[derive(Debug)]
pub struct FixmlSchema {
version: SchemaVersion,
}
impl FixmlSchema {
pub fn new(version: SchemaVersion) -> Self {
Self { version }
}
pub fn namespace_uri(&self) -> &'static str {
match self.version {
SchemaVersion::V44 => "http://www.fixprotocol.org/FIXML-4-4",
SchemaVersion::V50SP2 => "http://www.fixprotocol.org/FIXML-5-0-SP2",
}
}
pub fn version(&self) -> SchemaVersion {
self.version
}
}
impl Default for FixmlSchema {
fn default() -> Self {
Self::new(SchemaVersion::V44)
}
}