export font and text direction to string

This commit is contained in:
Max Bradbury 2020-04-18 12:46:46 +01:00
parent e1bf7cbae4
commit 16e399b312
2 changed files with 29 additions and 1 deletions

View File

@ -209,10 +209,12 @@ impl ToString for Game {
}
format!(
"{}\n{}\n{}\n\n{}\n\n",
"{}\n{}\n{}{}{}\n\n{}\n\n",
&self.name,
&self.version_line(),
&self.room_format_line(),
&self.font_line(),
&self.text_direction_line(),
segments.join("\n\n"),
)
}
@ -257,6 +259,22 @@ impl Game {
fn room_format_line(&self) -> String {
optional_data_line("! ROOM_FORMAT", Some(self.room_format))
}
fn font_line(&self) -> String {
if self.font == Font::AsciiSmall {
"".to_string()
} else {
if self.font == Font::Custom {
format!("\n\nDEFAULT FONT {}", self.custom_font.as_ref().unwrap())
} else {
format!("\n\nDEFAULT FONT {}", self.font.to_string().unwrap())
}
}
}
fn text_direction_line(&self) -> &str {
if self.text_direction == TextDirection::RightToLeft {"\n\nTEXT_DIRECTION RTL"} else {""}
}
}
#[test]

View File

@ -18,6 +18,16 @@ impl Font {
_ => Font::Custom,
}
}
pub(crate) fn to_string(&self) -> Result<String, &'static str> {
match &self {
Font::UnicodeEuropeanSmall => Ok("unicode_european_small".to_string()),
Font::UnicodeEuropeanLarge => Ok("unicode_european_large".to_string()),
Font::UnicodeAsian => Ok("unicode_asian".to_string()),
Font::Arabic => Ok("arabic".to_string()),
_ => Err("No string available for this Font"),
}
}
}
#[derive(Debug, Eq, PartialEq)]