39 lines
814 B
Rust
39 lines
814 B
Rust
use geoffrey_models::models::locations::Location;
|
|
use geoffrey_models::models::player::Player;
|
|
|
|
pub fn display_owners(owners: Vec<Player>, limit: usize) -> String {
|
|
let mut plural = "";
|
|
let mut ellipses = "";
|
|
|
|
if owners.len() > 1 {
|
|
plural = "s"
|
|
}
|
|
|
|
let range = if owners.len() > limit {
|
|
ellipses = "...";
|
|
limit
|
|
} else {
|
|
owners.len()
|
|
};
|
|
|
|
format!(
|
|
"Owner{}: {}{}",
|
|
plural,
|
|
owners[0..range]
|
|
.iter()
|
|
.map(|owner| owner.name.clone())
|
|
.collect::<Vec<String>>()
|
|
.join(", "),
|
|
ellipses
|
|
)
|
|
}
|
|
|
|
pub fn display_loc(loc: Location) -> String {
|
|
format!(
|
|
"**{}**, {}, Owner(s): **{}**",
|
|
loc.name,
|
|
loc.position,
|
|
display_owners(loc.owners, 3)
|
|
)
|
|
}
|