pub fn take_link(i: &str) -> IResult<&str, (&str, Link<'_>)>
Expand description

Consumes the input until the parser finds an HTML formatted inline image (Link::Image). and HTML formatted hyperlinks text2dest (Link::Text2Dest).

The parser consumes the finding and returns Ok((remaining_input, (skipped_input, Link))) or some error.

HTML

use parse_hyperlinks::parser::Link;
use parse_hyperlinks_extras::parser::parse_html::take_link;
use std::borrow::Cow;

let i = r#"abc<img src="dest1" alt="text1">abc
abc<a href="dest2" title="title2">text2</a>abc
abc<img src="dest3" alt="text3">abc
abc<a href="dest4" title="title4">text4</a>abc";
"#;

let (i, r) = take_link(i).unwrap();
assert_eq!(r.0, "abc");
assert_eq!(r.1, Link::Image(Cow::from("text1"), Cow::from("dest1")));
let (i, r) = take_link(i).unwrap();
assert_eq!(r.0, "abc\nabc");
assert_eq!(r.1, Link::Text2Dest(Cow::from("text2"), Cow::from("dest2"), Cow::from("title2")));
let (i, r) = take_link(i).unwrap();
assert_eq!(r.0, "abc\nabc");
assert_eq!(r.1, Link::Image(Cow::from("text3"), Cow::from("dest3")));
let (i, r) = take_link(i).unwrap();
assert_eq!(r.0, "abc\nabc");
assert_eq!(r.1, Link::Text2Dest(Cow::from("text4"), Cow::from("dest4"), Cow::from("title4")));