diff --git a/src/parser/radio_link.rs b/src/parser/radio_link.rs index c375708..d9a94fe 100644 --- a/src/parser/radio_link.rs +++ b/src/parser/radio_link.rs @@ -53,7 +53,25 @@ pub fn rematch_target<'r, 's>( target: &'r Vec>, input: &'s str, ) -> Res<&'s str, Vec>> { - todo!() + let mut remaining = input; + let mut new_matches = Vec::with_capacity(target.len()); + for original_object in target { + match original_object { + // TODO: The rest of the minimal set of objects. + Object::PlainText(plaintext) => { + let (new_remaining, new_match) = plaintext.rematch_object(context, remaining)?; + remaining = new_remaining; + new_matches.push(new_match); + + } + _ => { + return Err(nom::Err::Error(CustomError::MyError(MyError( + "OnlyMinimalSetObjectsAllowed", + )))); + } + }; + } + Ok((remaining, new_matches)) } #[tracing::instrument(ret, level = "debug")]