use encoding_rs::UTF_16LE;
use crate::LinkFlags;
#[derive(Copy, Clone, Debug)]
pub enum StringEncoding {
CodePage(crate::strings::Encoding),
Unicode,
}
impl StringEncoding {
pub fn from(link_flags: LinkFlags, default_codepage: crate::strings::Encoding) -> Self {
if link_flags.contains(LinkFlags::IS_UNICODE) {
Self::Unicode
} else {
Self::CodePage(default_codepage)
}
}
pub fn encoding(&self) -> crate::strings::Encoding {
match self {
StringEncoding::CodePage(cp) => cp,
StringEncoding::Unicode => UTF_16LE,
}
}
}