pub struct ParserConfig {
pub comments: bool,
}Expand description
ParserConfig for reading Links Notation documents.
Provides configuration options for controlling how a document is read.
Fields§
§comments: boolIf true, a # written where a line or a token starts opens a comment
that runs to the end of the line (default: true)
Implementations§
Source§impl ParserConfig
impl ParserConfig
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new ParserConfig with default values
§Examples
use links_notation::ParserConfig;
assert!(ParserConfig::new().comments);Sourcepub fn without_comments() -> Self
pub fn without_comments() -> Self
Create a ParserConfig that reads # as an ordinary reference character,
the way documents written before comments existed were read.
§Examples
use links_notation::{parse_lino_with_config, ParserConfig};
let parsed = parse_lino_with_config("# a b", &ParserConfig::without_comments()).unwrap();
assert_eq!(format!("{}", parsed), "((# a b))");Examples found in repository?
examples/comments.rs (line 27)
9fn main() {
10 let documents = [
11 "# a note about the document\ndeploy: staging\n",
12 "deploy: staging # only staging, for now\n",
13 "issue#1047: open\n",
14 "\"# not a comment\": still a reference\n",
15 "parent\n # what the child is for\n child\n",
16 ];
17
18 for document in documents {
19 match parse_lino(document) {
20 Ok(links) => println!("{document:?}\n parses as {links}"),
21 Err(error) => println!("{document:?}\n {error}"),
22 }
23 }
24
25 // Documents that predate comments can be read with `#` as an ordinary
26 // character.
27 let config = ParserConfig::without_comments();
28 let document = "# a b\n";
29 match parse_lino_with_config(document, &config) {
30 Ok(links) => println!("\nwithout comments {document:?}\n parses as {links}"),
31 Err(error) => println!("\nwithout comments {document:?}\n {error}"),
32 }
33}Sourcepub fn with_comments(comments: bool) -> Self
pub fn with_comments(comments: bool) -> Self
Create a ParserConfig that turns comments on or off
§Examples
use links_notation::ParserConfig;
assert_eq!(ParserConfig::with_comments(false), ParserConfig::without_comments());Trait Implementations§
Source§impl Clone for ParserConfig
impl Clone for ParserConfig
Source§fn clone(&self) -> ParserConfig
fn clone(&self) -> ParserConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ParserConfig
impl Debug for ParserConfig
Source§impl Default for ParserConfig
impl Default for ParserConfig
impl Eq for ParserConfig
Source§impl PartialEq for ParserConfig
impl PartialEq for ParserConfig
impl StructuralPartialEq for ParserConfig
Auto Trait Implementations§
impl Freeze for ParserConfig
impl RefUnwindSafe for ParserConfig
impl Send for ParserConfig
impl Sync for ParserConfig
impl Unpin for ParserConfig
impl UnsafeUnpin for ParserConfig
impl UnwindSafe for ParserConfig
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