bool InMatchExpression::matchesSingleElement(const BSONElement& e, MatchDetails* details) const {
    if (_hasNull && e.eoo()) {
        return true;
    }
    if (_equalitySet.find(e) != _equalitySet.end()) {
        return true;
    }
    for (auto&& regex : _regexes) {
        if (regex->matchesSingleElement(e, details)) {
            return true;
        }
    }
    return false;
}
bool InMatchExpression::matchesSingleElement(const BSONElement& e, MatchDetails* details) const {
    if (_hasNull && e.eoo()) {
        return true;
    }
    if (_equalitySet.find(e) != _equalitySet.end()) {
        return true;
    }
    for (auto&& regex : _regexes) {
        if (regex->matchesSingleElement(e, details)) {
            return true;
        }
    }
    return false;
}