From 1e0f7c44f756fcf18b8c82df8988b8e2293e2757 Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Wed, 11 Mar 2026 20:30:45 +0100 Subject: [PATCH] Enjoy rust 1.94 --- src/markdown/parser.rs | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/markdown/parser.rs b/src/markdown/parser.rs index c522c42..2deda97 100644 --- a/src/markdown/parser.rs +++ b/src/markdown/parser.rs @@ -1,4 +1,4 @@ -use std::iter::{self, once}; +use std::iter; use crate::markdown::Style; @@ -142,18 +142,8 @@ fn collect_until<'a, const N: usize>( first_token: Option<&Token<'a>>, tokens: &mut &[Token<'a>], pattern: impl FnMut(&[Token<'a>; N]) -> bool, -) -> Span<'a> -where - // &[T; N]: TryFrom<&[T]> - for<'b> &'b [Token<'a>; N]: TryFrom<&'b [Token<'a>]>, -{ - let mut windows = tokens.windows(N).map(|slice| { - <&[Token<'a>; N]>::try_from(slice) - .ok() - .expect("`windows` promises to return slices of length N") - }); - - let split_at = match windows.position(pattern) { +) -> Span<'a> { + let split_at = match tokens.array_windows::().position(pattern) { Some(i) => i + N, None => tokens.len(), // consume everything }; @@ -161,8 +151,8 @@ where let (consume, keep) = tokens.split_at(split_at); *tokens = keep; - once(first_token) - .flatten() + first_token + .into_iter() .chain(consume) .fold(Span::empty(), |span: Span<'_>, token| { span.try_merge(&token.span).unwrap()