21 std::vector<unicode::Category> filtered_categories_;
33 explicit CategoryFilter(std::vector<unicode::Category> categories,
bool remove =
true);
37 std::string
name()
const override {
return "CategoryFilter"; }
44 return filtered_categories_;
62 std::vector<unicode::Script> filtered_scripts_;
74 explicit ScriptFilter(std::vector<unicode::Script> scripts,
bool remove =
true);
78 std::string
name()
const override {
return "ScriptFilter"; }
85 return filtered_scripts_;
114 return remove_mode_ ?
"Remove punctuation" :
"Keep only punctuation";
117 std::string
name()
const override {
return "PunctuationFilter"; }
125using filter::CategoryFilter;
126using filter::ScriptFilter;
127using filter::PunctuationFilter;
CategoryFilter(std::vector< unicode::Category > categories, bool remove=true)
Construct a CategoryFilter.
bool is_remove_mode() const noexcept
Check if this filter is in remove mode.
std::string name() const override
Get the spell's name.
CategoryFilter(std::vector< unicode::Category > categories, bool remove=true)
Construct a CategoryFilter.
RuneSequence operator()(const RuneSequence &input) const override
Apply the spell transformation.
const std::vector< unicode::Category > & filtered_categories() const noexcept
Get the filtered categories.
std::string description() const override
Get the spell's description.
std::string name() const override
Get the spell's name.
bool is_remove_mode() const noexcept
RuneSequence operator()(const RuneSequence &input) const override
Apply the spell transformation.
PunctuationFilter(bool remove=true)
std::string description() const override
Get the spell's description.
ScriptFilter(std::vector< unicode::Script > scripts, bool remove=true)
Construct a ScriptFilter.
bool is_remove_mode() const noexcept
Check if this filter is in remove mode.
const std::vector< unicode::Script > & filtered_scripts() const noexcept
Get the filtered scripts.
std::string name() const override
Get the spell's name.
std::string description() const override
Get the spell's description.
RuneSequence operator()(const RuneSequence &input) const override
Apply the spell transformation.
RuneString RuneSequence
Backward compatibility alias for RuneString.
spell_base< RuneSequence > sequence_spell
Most common spell type: RuneSequence -> RuneSequence.