pub(crate) fn consume_number<T: FromStr>( component_name: &'static str, chars: &mut Peekable<IntoIter>, ) -> Result<(Span, T), Error>