Struct xml5ever::buffer_queue::BufferQueue[][src]

pub struct BufferQueue { /* fields omitted */ }
Expand description

A queue of owned string buffers, which supports incrementally consuming characters.

Internally it uses VecDeque and has the same complexity properties.

Implementations

Create an empty BufferQueue.

Returns whether the queue is empty.

Get the buffer at the beginning of the queue.

Add a buffer to the beginning of the queue.

If the buffer is empty, it will be skipped.

Add a buffer to the end of the queue.

If the buffer is empty, it will be skipped.

Look at the next available character without removing it, if the queue is not empty.

Get the next character if one is available, removing it from the queue.

This function manages the buffers, removing them as they become empty.

Pops and returns either a single character from the given set, or a buffer of characters none of which are in the set.

Examples
use markup5ever::buffer_queue::{BufferQueue, SetResult};

let mut queue = BufferQueue::new();
queue.push_back(format_tendril!(r#"<some_tag attr="text">SomeText</some_tag>"#));
let set = small_char_set!(b'<' b'>' b' ' b'=' b'"' b'/');
let tag = format_tendril!("some_tag");
let attr = format_tendril!("attr");
let attr_val = format_tendril!("text");
assert_eq!(queue.pop_except_from(set), Some(SetResult::FromSet('<')));
assert_eq!(queue.pop_except_from(set), Some(SetResult::NotFromSet(tag)));
assert_eq!(queue.pop_except_from(set), Some(SetResult::FromSet(' ')));
assert_eq!(queue.pop_except_from(set), Some(SetResult::NotFromSet(attr)));
assert_eq!(queue.pop_except_from(set), Some(SetResult::FromSet('=')));
assert_eq!(queue.pop_except_from(set), Some(SetResult::FromSet('"')));
assert_eq!(queue.pop_except_from(set), Some(SetResult::NotFromSet(attr_val)));
// ...

Consume bytes matching the pattern, using a custom comparison function eq.

Returns Some(true) if there is a match, Some(false) if there is no match, or None if it wasn’t possible to know (more data is needed).

The custom comparison function is used elsewhere to compare ascii-case-insensitively.

Examples
use markup5ever::buffer_queue::{BufferQueue};

let mut queue = BufferQueue::new();
queue.push_back(format_tendril!("testtext"));
let test_str = "test";
assert_eq!(queue.eat("test", |&a, &b| a == b), Some(true));
assert_eq!(queue.eat("text", |&a, &b| a == b), Some(true));
assert!(queue.is_empty());

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.