diff --git a/src/parser/planning.rs b/src/parser/planning.rs index caaf151..804e070 100644 --- a/src/parser/planning.rs +++ b/src/parser/planning.rs @@ -33,7 +33,7 @@ pub(crate) fn planning<'b, 'g, 'r, 's>( many1(parser_with_context!(planning_parameter)(context))(remaining)?; let (remaining, _trailing_ws) = tuple((space0, org_line_ending))(remaining)?; - let (remaining, _trailing_ws) = + let (remaining, post_blank) = maybe_consume_trailing_whitespace_if_not_exiting(context, remaining)?; let source = get_consumed(input, remaining); @@ -62,6 +62,7 @@ pub(crate) fn planning<'b, 'g, 'r, 's>( scheduled, deadline, closed, + post_blank: post_blank.map(Into::<&str>::into), }, )) } diff --git a/src/types/lesser_element.rs b/src/types/lesser_element.rs index acc7bc0..49a4d76 100644 --- a/src/types/lesser_element.rs +++ b/src/types/lesser_element.rs @@ -141,6 +141,7 @@ pub struct Planning<'s> { pub scheduled: Option>, pub deadline: Option>, pub closed: Option>, + pub post_blank: Option<&'s str>, } #[derive(Debug)] @@ -391,11 +392,15 @@ impl<'s> StandardProperties<'s> for Planning<'s> { } fn get_contents<'b>(&'b self) -> Option<&'s str> { - todo!() + None } fn get_post_blank(&self) -> PostBlank { - todo!() + self.post_blank + .map(|text| text.lines().count()) + .unwrap_or(0) + .try_into() + .expect("Too much post-blank to fit into a PostBlank.") } }