use crate::error::Error;
use std::string::String;
use encoding_rs::SHIFT_JIS;
use encoding_rs::WINDOWS_1252;
pub fn from_latin1_or_shift_jis(data: &[u8]) -> Result<String, Error> {
let (result, _, error) = WINDOWS_1252.decode(data);
Ok(if error {
let (result, _, error) = SHIFT_JIS.decode(data);
if error {
return Err(Error::Parse(
"unable to convert to latin1 or SHIFT JIS".into(),
));
}
result.to_string()
} else {
result.to_string()
})
}
pub fn trim(string: &str) -> &str {
string.trim_matches('\0').trim()
}