From 30c03b552971a914d99545b45d3df7e218bf7787 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 11 Dec 2023 12:27:35 -0500 Subject: [PATCH] Implement the new fields for radio target. --- src/parser/radio_link.rs | 3 ++- src/types/object.rs | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/parser/radio_link.rs b/src/parser/radio_link.rs index 06710ded..ffda83fe 100644 --- a/src/parser/radio_link.rs +++ b/src/parser/radio_link.rs @@ -134,7 +134,7 @@ pub(crate) fn radio_target<'b, 'g, 'r, 's>( ))(remaining)?; let (remaining, _closing) = 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(( @@ -142,6 +142,7 @@ pub(crate) fn radio_target<'b, 'g, 'r, 's>( RadioTarget { source: source.into(), value: raw_value.into(), + post_blank: post_blank.map(Into::<&str>::into), children, }, )) diff --git a/src/types/object.rs b/src/types/object.rs index 0763f019..801c1e69 100644 --- a/src/types/object.rs +++ b/src/types/object.rs @@ -120,6 +120,7 @@ pub struct RegularLink<'s> { pub struct RadioTarget<'s> { pub source: &'s str, pub value: &'s str, + pub post_blank: Option<&'s str>, pub children: Vec>, } @@ -679,11 +680,15 @@ impl<'s> StandardProperties<'s> for RadioTarget<'s> { } fn get_contents<'b>(&'b self) -> Option<&'s str> { - todo!() + Some(self.value) } 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.") } }