Rune Caster 1.0.0
Modern C++ Text Processing Framework
Loading...
Searching...
No Matches
rune_caster::spell::ScriptFilter Class Reference

Remove or keep only specific scripts using C++20 concepts. More...

#include <spell_filter.hpp>

Inheritance diagram for rune_caster::spell::ScriptFilter:
Collaboration diagram for rune_caster::spell::ScriptFilter:

Public Types

using input_type = RuneSequence
using output_type = RuneSequence
Public Types inherited from rune_caster::spell_base< RuneSequence >
using input_type
using output_type

Public Member Functions

 ScriptFilter (std::vector< unicode::Script > scripts, bool remove=true)
 Construct a ScriptFilter.
RuneSequence operator() (const RuneSequence &input) const override
 Apply the spell transformation.
std::string description () const override
 Get the spell's description.
std::string name () const override
 Get the spell's name.
const std::vector< unicode::Script > & filtered_scripts () const noexcept
 Get the filtered scripts.
bool is_remove_mode () const noexcept
 Check if this filter is in remove mode.
Public Member Functions inherited from rune_caster::spell_base< RuneSequence >
virtual ~spell_base ()=default

Additional Inherited Members

Static Public Member Functions inherited from rune_caster::spell_base< RuneSequence >
static constexpr bool can_process () noexcept
 Check if this spell can be applied to the given input type (C++20 concepts)
static constexpr bool produces () noexcept
 Check if this spell produces the expected output type (C++20 concepts)
static constexpr const char * input_type_name () noexcept
 Get input type name as compile-time string (C++20)
static constexpr const char * output_type_name () noexcept
 Get output type name as compile-time string (C++20)

Detailed Description

Remove or keep only specific scripts using C++20 concepts.

This spell can either remove characters of specific Unicode scripts or keep only characters of specific scripts, depending on the mode.

Definition at line 60 of file spell_filter.hpp.

Member Typedef Documentation

◆ input_type

◆ output_type

Constructor & Destructor Documentation

◆ ScriptFilter()

rune_caster::spell::filter::ScriptFilter::ScriptFilter ( std::vector< unicode::Script > scripts,
bool remove = true )
explicit

Construct a ScriptFilter.

Parameters
scriptsList of Unicode scripts to filter
removeIf true, remove these scripts; if false, keep only these scripts

Member Function Documentation

◆ description()

std::string rune_caster::spell::filter::ScriptFilter::description ( ) const
overridevirtual

Get the spell's description.

Returns
A human-readable description of what the spell does

Implements rune_caster::spell_base< RuneSequence >.

◆ filtered_scripts()

const std::vector< unicode::Script > & rune_caster::spell::filter::ScriptFilter::filtered_scripts ( ) const
inlinenoexcept

Get the filtered scripts.

Returns
Vector of scripts being filtered

Definition at line 84 of file spell_filter.hpp.

◆ is_remove_mode()

bool rune_caster::spell::filter::ScriptFilter::is_remove_mode ( ) const
inlinenoexcept

Check if this filter is in remove mode.

Returns
true if removing specified scripts, false if keeping only specified scripts

Definition at line 92 of file spell_filter.hpp.

◆ name()

std::string rune_caster::spell::filter::ScriptFilter::name ( ) const
inlineoverridevirtual

Get the spell's name.

Returns
A string identifying the spell

Implements rune_caster::spell_base< RuneSequence >.

Definition at line 78 of file spell_filter.hpp.

◆ operator()()

RuneSequence rune_caster::spell::filter::ScriptFilter::operator() ( const RuneSequence & input) const
overridevirtual

Apply the spell transformation.

Parameters
inputThe input data to transform
Returns
The transformed output

Implements rune_caster::spell_base< RuneSequence >.


The documentation for this class was generated from the following file: