use crate::genetics::{Genetic, Transcriber};

#[derive(Clone, Copy, Debug, Default)]
pub enum Gender {
    Male,
    Female,
    #[default]
    Other,
}

impl Genetic for Gender {
    fn transcribe(&mut self, mut t: Transcriber) {
        t.express(
            self,
            &[
                ('m', Gender::Male),
                ('f', Gender::Female),
                ('O', Gender::Other),
            ],
        );
    }
}

impl Gender {
    pub fn profile(&self) -> String {
        format!("Gender: {:?}\n", self)
    }
}
