pub struct StringLexer<'a> { /* private fields */ }Expand description
A lexer for PDF strings. Breaks the string up into single characters (u8)
It’s also possible to get the number of indices of the original array that was traversed by the
Iterator.
let mut string: Vec<u8> = Vec::new();
let bytes_traversed = {
let mut string_lexer = StringLexer::new(lexer.get_remaining_slice());
for character in string_lexer.iter() {
let character = character?;
string.push(character);
}
string_lexer.get_offset() as i64
};
// bytes_traversed now holds the number of bytes in the original array traversed.Implementations§
Source§impl<'a> StringLexer<'a>
impl<'a> StringLexer<'a>
Sourcepub fn new(buf: &'a [u8]) -> StringLexer<'a>
pub fn new(buf: &'a [u8]) -> StringLexer<'a>
buf should start right after the ( delimiter, and may span all the way to EOF. StringLexer
will determine the end of the string.
pub fn iter<'b>(&'b mut self) -> StringLexerIter<'a, 'b>
Sourcepub fn get_offset(&self) -> usize
pub fn get_offset(&self) -> usize
Get offset/pos from start of string
Sourcepub fn next_lexeme(&mut self) -> Result<Option<u8>>
pub fn next_lexeme(&mut self) -> Result<Option<u8>>
(mostly just used by Iterator, but might be useful)
Trait Implementations§
Source§impl<'a> Clone for StringLexer<'a>
impl<'a> Clone for StringLexer<'a>
Source§fn clone(&self) -> StringLexer<'a>
fn clone(&self) -> StringLexer<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<'a> Freeze for StringLexer<'a>
impl<'a> RefUnwindSafe for StringLexer<'a>
impl<'a> Send for StringLexer<'a>
impl<'a> Sync for StringLexer<'a>
impl<'a> Unpin for StringLexer<'a>
impl<'a> UnwindSafe for StringLexer<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more