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

Parse a RestructuredText reference link.

The caller must guarantee, that

  • the parser is at the input start (no bytes exist before).
  • the preceding bytes are whitespaces or newline, or
  • the preceding bytes are whitespaces or newline, followed by one of: ([<'"
use parse_hyperlinks::parser::Link;
use parse_hyperlinks::parser::restructured_text::rst_text2label;
use std::borrow::Cow;

assert_eq!(
  rst_text2label("linktext_ abc"),
  Ok((" abc", (Cow::from("linktext"), Cow::from("linktext"))))
);
assert_eq!(
  rst_text2label("`link text`_ abc"),
  Ok((" abc", (Cow::from("link text"), Cow::from("link text"))))
);
assert_eq!(
  rst_text2label("`link text<link label_>`_ abc"),
  Ok((" abc", (Cow::from("link text"), Cow::from("link label"))))
);
assert_eq!(
  rst_text2label("`link text`__ abc"),
  Ok((" abc", (Cow::from("link text"), Cow::from("_"))))
);