private static bool StatusNeq(Account account, AbstractQuery query) => (account.SexStatus & query._sexStatus) != SexStatus.None;
private static bool PhoneCode(Account account, AbstractQuery query) => query.phoneCode.IsPrefixOf(account.phone);
private static bool StatusEq(Account account, AbstractQuery query) => (account.SexStatus & SexStatus.AllStatus) == query._sexStatus;
private static bool FirstNameNull(Account account, AbstractQuery query) => account.fnameIndex == 0;
private static bool LastNameEq(Account account, AbstractQuery query) => account.snameIndex == query.snameIndex;
private static bool EmailDomain(Account account, AbstractQuery query) => account.Email._domain == query.domainIndex;
private static bool FirstNameEq(Account account, AbstractQuery query) => query.fnameIndex != 0 && query.fnameIndex == account.fnameIndex;
private static bool InterestsAny(Account account, AbstractQuery query) => account.InterestIndexes.Count > 0 && account.InterestIndexes.ContainsAny(query.interestIndexes);
private static bool LikesOne(Account account, AbstractQuery query) => account.LikedOne(query.like);
private static bool BirthGt(Account account, AbstractQuery query) => query.birth < account.birth;
private static bool BirthYear(Account account, AbstractQuery query) => query.birthFrom <= account.birth && account.birth < query.birthTo;
private static bool CityNull(Account account, AbstractQuery query) => account.cityIndex == 0;
private static bool CityAny(Account account, AbstractQuery query) => query.cities != null && query.cities.Contains(account.cityIndex);
private static bool PhoneNotNull(Account account, AbstractQuery query) => !account.phone.IsEmpty;
private static bool SexStatusEq(Account account, AbstractQuery query) => account.SexStatus == query._sexStatus;
private static bool LikesAll(Account account, AbstractQuery query) => account.likes != null && account.LikedAll(query.likes);
private static bool SexStatusNeq(Account account, AbstractQuery query) => (account.SexStatus | query._sexStatus) == query._sexStatus;
private static bool PremiumNow(Account account, AbstractQuery query) => account.HasPremium();
private static bool EmailGt(Account account, AbstractQuery query) => account.Email.CompareTo(query.email) > 0;
private static bool PremiumNotNull(Account account, AbstractQuery query) => account.premium.start != 0;
private static bool FirstNameAny(Account account, AbstractQuery query) => query.fnamesIndexes.Contains(account.fnameIndex);
private static bool CountryEq(Account account, AbstractQuery query) => query.countryIndex > 0 && query.countryIndex == account.countryIndex;
private static bool LastNameStarts(Account account, AbstractQuery query) //TODO: this method sucks currently. Introduce a good index. => account.snameIndex > 0 && StringIndexer.LastNames[account.snameIndex].StartsWith(query.snamePrefix, StringComparison.Ordinal);
private static bool CountryNotNull(Account account, AbstractQuery query) => account.countryIndex != 0;
private static bool LastNameNotNull(Account account, AbstractQuery query) => account.snameIndex != 0;
private static bool Joined(Account account, AbstractQuery query) => query.joinedFrom <= account.joined && account.joined < query.joinedTo;