use crate::reader::block_aware_reader::{BlockAction, BlockAwareReader};
use crate::text::{TextParserReader, TextParserReaderError};
const PREFIX: &[u16] = &[0x002f, 0x002a, 0x005b, 0x002d];
const SUFFIX: &[u16] = &[0x002d, 0x005d, 0x002a, 0x002f];
pub struct ParserLevelCommentTextReader {
delegate: BlockAwareReader,
}
impl ParserLevelCommentTextReader {
#[must_use]
pub fn new(reader: Box<dyn TextParserReader>) -> Self {
Self {
delegate: BlockAwareReader::new(reader, BlockAction::DiscardAll, PREFIX, SUFFIX),
}
}
}
impl TextParserReader for ParserLevelCommentTextReader {
fn read_range(
&mut self,
buffer: &mut [u16],
offset: i32,
len: i32,
) -> Result<i32, TextParserReaderError> {
self.delegate.read_range(buffer, offset, len)
}
fn close(&mut self) -> Result<(), TextParserReaderError> {
self.delegate.close()
}
}