From 68dccd54b1b287f0cf812e22a5cd9f763c9c1ef7 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 11 Dec 2023 14:10:27 -0500 Subject: [PATCH] Implement the new fields for radio link. --- src/parser/radio_link.rs | 7 ++++++- src/types/object.rs | 9 +++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/parser/radio_link.rs b/src/parser/radio_link.rs index ffda83fe..c1af7eec 100644 --- a/src/parser/radio_link.rs +++ b/src/parser/radio_link.rs @@ -39,7 +39,7 @@ pub(crate) fn radio_link<'b, 'g, 'r, 's>( let rematched_target = rematch_target(context, radio_target, input); if let Ok((remaining, rematched_target)) = rematched_target { let path = get_consumed(input, remaining); - let (remaining, _) = space0(remaining)?; + let (remaining, post_blank) = space0(remaining)?; let source = get_consumed(input, remaining); return Ok(( remaining, @@ -47,6 +47,11 @@ pub(crate) fn radio_link<'b, 'g, 'r, 's>( source: source.into(), children: rematched_target, path: path.into(), + post_blank: if post_blank.len() > 0 { + Some(Into::<&str>::into(post_blank)) + } else { + None + }, }, )); } diff --git a/src/types/object.rs b/src/types/object.rs index 185fe437..e0361881 100644 --- a/src/types/object.rs +++ b/src/types/object.rs @@ -128,6 +128,7 @@ pub struct RadioTarget<'s> { pub struct RadioLink<'s> { pub source: &'s str, pub path: &'s str, + pub post_blank: Option<&'s str>, pub children: Vec>, } @@ -671,11 +672,15 @@ impl<'s> StandardProperties<'s> for RadioLink<'s> { } fn get_contents<'b>(&'b self) -> Option<&'s str> { - todo!() + Some(self.path) } 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.") } }