use std::option::Option;
use crate::card::Rank;
pub fn find_four_of_a_kind(ranks: &Vec<Rank>) -> Option<Vec<Rank>> {
let ranks_len = ranks.len();
if ranks_len < 4 {
return None;
}
for i in 0..(ranks.len() - 3) {
if ranks[i] == ranks[i + 1] && ranks[i + 1] == ranks[i + 2] && ranks[i + 2] == ranks[i + 3]
{
let mut four_of_a_kind: Vec<Rank> = Vec::new();
four_of_a_kind.push(ranks[i]);
if ranks_len > 4 {
let kicker = ranks.iter().filter(|&&rank| rank != ranks[i]).max();
match kicker {
Some(k) => four_of_a_kind.push(*k),
None => return None,
}
}
return Some(four_of_a_kind);
}
}
None
}