diff options
author | Titus Wormer <tituswormer@gmail.com> | 2022-07-18 16:34:56 +0200 |
---|---|---|
committer | Titus Wormer <tituswormer@gmail.com> | 2022-07-18 16:35:00 +0200 |
commit | 7186ce91784a647b3015e04b55a95b109deceeb3 (patch) | |
tree | 79e9c0bf255826a2aca0e27b324e120facaf972e | |
parent | 5403261e8213f68633a09fc3e9bc2e6e2cd777b2 (diff) | |
download | markdown-rs-7186ce91784a647b3015e04b55a95b109deceeb3.tar.gz markdown-rs-7186ce91784a647b3015e04b55a95b109deceeb3.tar.bz2 markdown-rs-7186ce91784a647b3015e04b55a95b109deceeb3.zip |
Change to improve `default_line_ending` api
-rw-r--r-- | src/compiler.rs | 4 | ||||
-rw-r--r-- | src/lib.rs | 8 | ||||
-rw-r--r-- | tests/misc_default_line_ending.rs | 4 |
3 files changed, 7 insertions, 9 deletions
diff --git a/src/compiler.rs b/src/compiler.rs index db52837..0993987 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -247,10 +247,8 @@ pub fn compile(events: &[Event], codes: &[Code], options: &Options) -> String { // Figure out which line ending style we’ll use. let line_ending_default = if let Some(value) = line_ending_inferred { value - } else if let Some(value) = &options.default_line_ending { - value.clone() } else { - LineEnding::LineFeed + options.default_line_ending.clone() }; let mut enter_map: Map = HashMap::new(); @@ -20,7 +20,7 @@ use crate::parser::parse; use crate::tokenizer::Code; /// Type of line endings in markdown. -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Default, Clone, PartialEq)] pub enum LineEnding { /// Both a carriage return (`\r`) and a line feed (`\n`). /// @@ -48,6 +48,7 @@ pub enum LineEnding { /// a␊ /// b /// ``` + #[default] LineFeed, } @@ -349,15 +350,14 @@ pub struct Options { /// micromark_with_options( /// "> a", /// &Options { - /// default_line_ending: Some(LineEnding::CarriageReturnLineFeed), + /// default_line_ending: LineEnding::CarriageReturnLineFeed, /// ..Options::default() /// } /// ), /// "<blockquote>\r\n<p>a</p>\r\n</blockquote>" /// ); /// ``` - // To do: use `default`? <https://doc.rust-lang.org/std/default/trait.Default.html#enums> - pub default_line_ending: Option<LineEnding>, + pub default_line_ending: LineEnding, /// Which constructs to enable and disable. /// The default is to follow `CommonMark`. diff --git a/tests/misc_default_line_ending.rs b/tests/misc_default_line_ending.rs index ceada62..547cae1 100644 --- a/tests/misc_default_line_ending.rs +++ b/tests/misc_default_line_ending.rs @@ -31,7 +31,7 @@ fn default_line_ending() { micromark_with_options( "> a", &Options { - default_line_ending: Some(LineEnding::CarriageReturn), + default_line_ending: LineEnding::CarriageReturn, ..Options::default() } ), @@ -43,7 +43,7 @@ fn default_line_ending() { micromark_with_options( "> a\n", &Options { - default_line_ending: Some(LineEnding::CarriageReturn), + default_line_ending: LineEnding::CarriageReturn, ..Options::default() } ), |