remote-party-finder/server/src/sestring_ext.rs

23 lines
658 B
Rust
Raw Normal View History

2021-10-04 03:17:09 +00:00
use sestring::{Payload, SeString};
2021-10-10 17:29:55 +00:00
use crate::ffxiv::Language;
2021-10-04 03:17:09 +00:00
pub trait SeStringExt {
2021-10-10 17:29:55 +00:00
fn full_text(&self, lang: &Language) -> String;
2021-10-04 03:17:09 +00:00
}
impl SeStringExt for SeString {
2021-10-10 17:29:55 +00:00
fn full_text(&self, lang: &Language) -> String {
2021-10-04 03:17:09 +00:00
self.0.iter()
.flat_map(|payload| {
match payload {
Payload::Text(t) => Some(&*t.0),
Payload::AutoTranslate(at) => crate::ffxiv::AUTO_TRANSLATE
.get(&(u32::from(at.group), at.key))
2021-10-10 17:29:55 +00:00
.map(|text| text.text(lang)),
2021-10-04 03:17:09 +00:00
_ => None,
}
})
.collect()
}
}