use crate::errors::ParseError;
use encoding_rs::{UTF_16LE, WINDOWS_1252};
pub fn decode_str(input: &[u8]) -> Result<&str, ParseError> {
let data = &input[..input.len().saturating_sub(1)];
Ok(::std::str::from_utf8(data)?)
}
pub fn decode_utf16(input: &[u8]) -> Result<String, ParseError> {
let data = &input[..input.len().saturating_sub(2)];
let (s, _) = UTF_16LE.decode_without_bom_handling(data);
Ok(String::from(s))
}
pub fn decode_windows1252(input: &[u8]) -> Result<String, ParseError> {
let data = &input[..input.len().saturating_sub(1)];
let (s, _) = WINDOWS_1252.decode_without_bom_handling(data);
Ok(String::from(s))
}