9 unstable releases (3 breaking)
0.4.4 | Oct 7, 2019 |
---|---|
0.4.3 | Oct 7, 2019 |
0.4.2 | Aug 26, 2019 |
0.4.1 | Jul 30, 2019 |
0.1.0 | Mar 16, 2019 |
#2769 in Parser implementations
46 downloads per month
21KB
399 lines
Reverse Find URL
This crate provides a parser to search a string for URLs in reverse order.
All functionality is handled by the
Parser
struct which takes
chars
as input.
Examples
Text can be fed into the parser in reverse order:
use rfind_url::{Parser, ParserState};
let mut parser = Parser::new();
for c in "There_is_no_URL_here".chars().rev() {
assert_eq!(parser.advance(c), ParserState::MaybeUrl);
}
The parser returns the length of the URL as soon as the last character of the URL is pushed into
it. Otherwise it will return
None
:
use rfind_url::{Parser, ParserState};
let mut parser = Parser::new();
// Parser guarantees there's currently no active URL
assert_eq!(parser.advance(' '), ParserState::NoUrl);
// URLs are only returned once they are complete
for c in "ttps://example.org".chars().rev() {
assert_eq!(parser.advance(c), ParserState::MaybeUrl);
}
// Parser has detected a URL spanning the last 19 characters
assert_eq!(parser.advance('h'), ParserState::Url(19));