E-MailRelay
Classes | Enumerations | Functions
G::StringList Namespace Reference

Utility functions for lists of strings. More...

Classes

struct  Filter
 Filters a list of strings with allow and deny lists. More...
 

Enumerations

enum class  Ignore { Case , Nothing }
 

Functions

void keepMatch (StringArray &list, const StringArray &allow_list, Ignore=Ignore::Nothing)
 Removes items in the list that do not match any entry in the allow list. More...
 
void applyMatch (StringArray &list, const StringArray &allow_list, Ignore=Ignore::Nothing)
 Removes items in the list that do not match any entry in the allow list and reorders the result to be the same as the allow list. More...
 
void removeMatch (StringArray &list, const StringArray &deny_list, Ignore=Ignore::Nothing)
 Removes items in the list that match an entry in the deny list. More...
 
bool headMatch (const StringArray &list, std::string_view head)
 Returns true if any string in the array has the given start (or 'head' is empty). More...
 
bool tailMatch (const StringArray &list, std::string_view ending)
 Returns true if any string in the array has the given ending (or the given ending is empty). More...
 
std::string headMatchResidue (const StringArray &list, std::string_view head)
 Returns the unmatched part of the first string in the array that has the given start. More...
 
bool match (const StringArray &, const std::string &)
 Returns true if any string in the array matches the given string. More...
 
bool imatch (const StringArray &, const std::string &)
 Returns true if any string in the array matches the given string, ignoring case. More...
 

Detailed Description

Utility functions for lists of strings.

Enumeration Type Documentation

◆ Ignore

enum class G::StringList::Ignore
strong

Definition at line 35 of file gstringlist.h.

Function Documentation

◆ applyMatch()

void G::StringList::applyMatch ( StringArray list,
const StringArray allow_list,
Ignore  = Ignore::Nothing 
)

Removes items in the list that do not match any entry in the allow list and reorders the result to be the same as the allow list.

Optionally uses a case-insensitive match.

◆ headMatch()

bool G::StringList::headMatch ( const StringArray list,
std::string_view  head 
)

Returns true if any string in the array has the given start (or 'head' is empty).

Definition at line 78 of file gstringlist.cpp.

◆ headMatchResidue()

std::string G::StringList::headMatchResidue ( const StringArray list,
std::string_view  head 
)

Returns the unmatched part of the first string in the array that has the given start.

Returns the empty string if nothing matches or if the first match is an exact match for the whole string.

Definition at line 92 of file gstringlist.cpp.

◆ imatch()

bool G::StringList::imatch ( const StringArray a,
const std::string &  b 
)

Returns true if any string in the array matches the given string, ignoring case.

Definition at line 108 of file gstringlist.cpp.

◆ keepMatch()

void G::StringList::keepMatch ( StringArray list,
const StringArray allow_list,
Ignore  ignore = Ignore::Nothing 
)

Removes items in the list that do not match any entry in the allow list.

Optionally uses a case-insensitive match.

Definition at line 59 of file gstringlist.cpp.

◆ match()

bool G::StringList::match ( const StringArray a,
const std::string &  b 
)

Returns true if any string in the array matches the given string.

Definition at line 103 of file gstringlist.cpp.

◆ removeMatch()

void G::StringList::removeMatch ( StringArray list,
const StringArray deny_list,
Ignore  ignore = Ignore::Nothing 
)

Removes items in the list that match an entry in the deny list.

Optionally uses a case-insensitive match.

Definition at line 69 of file gstringlist.cpp.

◆ tailMatch()

bool G::StringList::tailMatch ( const StringArray list,
std::string_view  ending 
)

Returns true if any string in the array has the given ending (or the given ending is empty).

Definition at line 85 of file gstringlist.cpp.