From 13c62bf29f09a81870b4bef6c6b8e27dc580fe31 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 11 Dec 2023 13:00:43 -0500 Subject: [PATCH] Implement the new fields for angle link. --- src/parser/angle_link.rs | 3 ++- src/types/object.rs | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/parser/angle_link.rs b/src/parser/angle_link.rs index 8cd21a7..444270b 100644 --- a/src/parser/angle_link.rs +++ b/src/parser/angle_link.rs @@ -47,7 +47,7 @@ pub(crate) fn angle_link<'b, 'g, 'r, 's>( parser_with_context!(parse_angle_link)(context), ))(remaining)?; let (remaining, _) = tag(">")(remaining)?; - let (remaining, _trailing_whitespace) = + let (remaining, post_blank) = maybe_consume_object_trailing_whitespace_if_not_exiting(context, remaining)?; let source = get_consumed(input, remaining); Ok(( @@ -59,6 +59,7 @@ pub(crate) fn angle_link<'b, 'g, 'r, 's>( raw_link: raw_link.into(), search_option: parsed_link.search_option, application: parsed_link.application, + post_blank: post_blank.map(Into::<&str>::into), }, )) } diff --git a/src/types/object.rs b/src/types/object.rs index 6fbc87b..3c8ee82 100644 --- a/src/types/object.rs +++ b/src/types/object.rs @@ -157,6 +157,7 @@ pub struct AngleLink<'s> { /// This does not take into account the post-processing that you would get from the upstream emacs org-mode AST. Use `get_search_option` for an equivalent value. pub search_option: Option<&'s str>, pub application: Option<&'s str>, + pub post_blank: Option<&'s str>, } #[derive(Debug)] @@ -715,11 +716,15 @@ impl<'s> StandardProperties<'s> for AngleLink<'s> { } fn get_contents<'b>(&'b self) -> Option<&'s str> { - todo!() + None } fn get_post_blank(&self) -> PostBlank { - todo!() + self.post_blank + .map(|post_blank| post_blank.chars().count()) + .unwrap_or(0) + .try_into() + .expect("Too much post-blank to fit into a PostBlank.") } }