pub struct Document<'a> {
pub preamble: Preamble<'a>,
pub plan: Plan<'a>,
pub body: Vec<Statement<'a>>,
}Expand description
A Document represents the root of any TAP document. It’s the main point of interaction for users of this API.
Fields§
§preamble: Preamble<'a>The document’s preamble.
plan: Plan<'a>The document’s top-level plan declaration.
body: Vec<Statement<'a>>The document’s top-level Body as a collection of Statements. Some Statements, like Subtest may
declare nested Bodys.
Implementations§
Source§impl<'a> Document<'a>
impl<'a> Document<'a>
pub fn parse(pairs: Pairs<'a, Rule>) -> Result<Self>
Sourcepub fn parse_from_str(content: &'a str) -> Result<Self>
pub fn parse_from_str(content: &'a str) -> Result<Self>
Parse Document from a &str.
§Examples
Parsing a TAP document may look like this:
use tapconsooomer::Document;
let content = concat!(
"TAP version 14\n",
"1..1\n",
"ok 1 - foo()\n",
);
let doc = Document::parse_from_str(content).expect("Parser error");
assert_eq!(doc.preamble.version, "14");
assert_eq!(doc.body.len(), 1);The order in which Body and Plan are declared is unimportant:
use tapconsooomer::Document;
let content = concat!(
"TAP version 14\n",
"ok 1 - foo()\n",
"ok 2 - bar()\n",
"1..2\n",
);
let doc = Document::parse_from_str(content).expect("Parser error");
assert_eq!(doc.preamble.version, "14");
assert_eq!(doc.body.len(), 2);Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Document<'a>
impl<'a> RefUnwindSafe for Document<'a>
impl<'a> Send for Document<'a>
impl<'a> Sync for Document<'a>
impl<'a> Unpin for Document<'a>
impl<'a> UnwindSafe for Document<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more