basic field drawer and basic timer implementation
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
use crate::field::field::Field;
|
||||
|
||||
pub trait FieldLoader {
|
||||
fn load(field_id: String) -> Field;
|
||||
fn load(&self, field_id: String) -> Field;
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ use std::fs;
|
||||
pub struct PlainTextFieldLoader;
|
||||
|
||||
impl FieldLoader for PlainTextFieldLoader {
|
||||
fn load(field_id: String) -> Field {
|
||||
fn load(&self, field_id: String) -> Field {
|
||||
let content = fs::read_to_string(&field_id)
|
||||
.expect("Could not read field file");
|
||||
|
||||
let lines: Vec<&str> = content.lines().collect();
|
||||
let lines: Vec<&str> = content.lines().filter(|l| !l.is_empty()).collect();
|
||||
let height = lines.len();
|
||||
let width = lines.iter().map(|l| l.len()).max().unwrap_or(0);
|
||||
|
||||
@@ -42,7 +42,7 @@ mod tests {
|
||||
|
||||
fs::write(test_file, level_data).expect("Could not write test file");
|
||||
|
||||
let field = PlainTextFieldLoader::load(test_file.to_string());
|
||||
let field = PlainTextFieldLoader{}.load(test_file.to_string());
|
||||
|
||||
let _ = fs::remove_file(test_file);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user