Skip to main content

parse

Function parse 

Source
pub fn parse(input: &str) -> Result<Node<'_>>
Expand description

Parses input.

§Returns

Document Node.

All nodes parsed from input are children of the document Node.

§Errors

Returns DimlError when parsing fails.

§Panics

No panics.

§Examples

Input contains the following text:

.A Ann
  .B Bob
  .C Clyde
    .D Dave
use diml::parse;

let doc = parse(input).unwrap();

let node_a = doc.children().next().unwrap();
assert_eq!(1, node_a.line());
assert_eq!("A", node_a.name());
assert_eq!("Ann", node_a.content().trim());

let mut children_a = node_a.children();
let node_b = children_a.next().unwrap();
assert_eq!(2, node_b.line());
assert_eq!("B", node_b.name());
assert_eq!("Bob", node_b.content().trim());

let node_c = children_a.next().unwrap();
assert_eq!(3, node_c.line());
assert_eq!("C", node_c.name());
assert_eq!("Clyde", node_c.content().trim());

let node_d = node_c.children().next().unwrap();
assert_eq!(4, node_d.line());
assert_eq!("D", node_d.name());
assert_eq!("Dave", node_d.content().trim());