use crate::interner::Tok; #[allow(clippy::type_complexity)] // FIXME couldn't find a good factoring pub fn split_name<'a>( path: &'a [Tok], is_valid: &impl Fn(&[Tok]) -> bool, ) -> Option<(&'a [Tok], &'a [Tok])> { for split in (0..=path.len()).rev() { let (filename, subpath) = path.split_at(split); if is_valid(filename) { return Some((filename, subpath)); } } None }