use std::io::{self, Read};
use super::charset_decoder::CharsetDecoder;
use super::transcoding_reader::TranscodingReader;
pub(crate) fn transcoding_reader(
input: Box<dyn Read>,
character_encoding: Option<&str>,
) -> io::Result<Box<dyn Read>> {
let decoder = CharsetDecoder::for_name(character_encoding)?;
Ok(Box::new(TranscodingReader::new(input, decoder)))
}
pub(crate) fn is_java_empty_or_whitespace(value: &str) -> bool {
value.is_empty() || value.chars().all(is_java_whitespace)
}
fn is_java_whitespace(character: char) -> bool {
matches!(
character,
'\u{0009}'..='\u{000D}'
| '\u{001C}'..='\u{0020}'
| '\u{1680}'
| '\u{2000}'..='\u{2006}'
| '\u{2008}'..='\u{200A}'
| '\u{2028}'
| '\u{2029}'
| '\u{205F}'
| '\u{3000}'
)
}