mod helpers;
mod newrecruit_json;
mod newrecruit_simple;
mod newrecruit_wtc;
mod roster_json;
mod rosterizer;
pub use newrecruit_json::NewRecruitJsonSerializer;
pub use newrecruit_simple::NewRecruitSimpleSerializer;
pub use newrecruit_wtc::{NewRecruitWtcCompactSerializer, NewRecruitWtcFullSerializer};
pub use roster_json::RosterJsonSerializer;
pub use rosterizer::RosterizerSerializer;
use crate::import::Roster;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ExportFormat {
NewrecruitJson,
NewrecruitWtcCompact,
NewrecruitWtcFull,
NewrecruitSimple,
RosterJson,
Rosterizer,
}
pub trait RosterSerializer {
fn id(&self) -> ExportFormat;
fn serialize(&self, roster: &Roster) -> String;
}
pub fn export_roster(roster: &Roster, format: ExportFormat) -> String {
match format {
ExportFormat::NewrecruitJson => NewRecruitJsonSerializer.serialize(roster),
ExportFormat::NewrecruitWtcCompact => NewRecruitWtcCompactSerializer.serialize(roster),
ExportFormat::NewrecruitWtcFull => NewRecruitWtcFullSerializer.serialize(roster),
ExportFormat::NewrecruitSimple => NewRecruitSimpleSerializer.serialize(roster),
ExportFormat::RosterJson => RosterJsonSerializer.serialize(roster),
ExportFormat::Rosterizer => RosterizerSerializer.serialize(roster),
}
}