#include "tld.h" #include #include #include namespace NTld { namespace { #include using TCiHash = THashSet; struct TTLDHash: public TCiHash { TTLDHash() { for (auto tld = GetTlds(); *tld; ++tld) { insert(*tld); } } }; struct TVeryGoodTld: public TCiHash { TVeryGoodTld() { auto domains = { "am", "az", "biz", "by", "com", "cz", "de", "ec", "fr", "ge", "gov", "gr", "il", "info", "kg", "kz", "mobi", "net", "nu", "org", "lt", "lv", "md", "ru", "su", "tr", "ua", "uk", "uz", "ws", "xn--p1ai", "рф"}; for (auto d : domains) { insert(d); } } }; } const char* const* GetTlds() { return TopLevelDomains; } bool IsTld(const TStringBuf& s) { return Default().contains(s); } bool IsVeryGoodTld(const TStringBuf& s) { return Default().contains(s); } }