[][src]Function parse_hyperlinks::parser::take_link

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

Consumes the input until it finds an inline link, a reference link or a link reference definition. The parser consumes the finding and returns Ok((remaining_input, Link)) or some error.

Basic usage

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

let i = r#"[a]: b 'c'
           .. _d: e
           ---[f](g 'h')---`i <j>`_---
           ---[k][l]---
           ---<a href="m" title="n">o</a>---
"#;

let (i, r) = take_link(i).unwrap();
assert_eq!(r, Link::Label2Dest(Cow::from("a"), Cow::from("b"), Cow::from("c")));
let (i, r) = take_link(i).unwrap();
assert_eq!(r, Link::Label2Dest(Cow::from("d"), Cow::from("e"), Cow::from("")));
let (i, r) = take_link(i).unwrap();
assert_eq!(r, Link::Text2Dest(Cow::from("f"), Cow::from("g"), Cow::from("h")));
let (i, r) = take_link(i).unwrap();
assert_eq!(r, Link::Text2Dest(Cow::from("i"), Cow::from("j"), Cow::from("")));
let (i, r) = take_link(i).unwrap();
assert_eq!(r, Link::Text2Label(Cow::from("k"), Cow::from("l")));
let (i, r) = take_link(i).unwrap();
assert_eq!(r, Link::Text2Dest(Cow::from("o"), Cow::from("m"), Cow::from("n")));