vyre 0.4.0

GPU compute intermediate representation with a standard operation library
Documentation

pub fn star_question_match(pattern: &[u8], input: &[u8]) -> bool {
    let (mut p, mut i) = (0usize, 0usize);
    let mut star = None;
    let mut retry_input = 0usize;
    while i < input.len() {
        if p < pattern.len() && (pattern[p] == b'?' || pattern[p] == input[i]) {
            p += 1;
            i += 1;
        } else if p < pattern.len() && pattern[p] == b'*' {
            star = Some(p);
            p += 1;
            retry_input = i;
        } else if let Some(star_pos) = star {
            p = star_pos + 1;
            retry_input += 1;
            i = retry_input;
        } else {
            return false;
        }
    }
    while p < pattern.len() && pattern[p] == b'*' {
        p += 1;
    }
    p == pattern.len()
}