fn parse_range<T: Copy, E>( raw: &str, cursor: usize, parse: impl Fn(&str) -> Result<T, E>, ) -> Result<(Option<T>, Option<T>), SelectorParseError>