Rune Caster 1.0.0
Modern C++ Text Processing Framework
|
Namespaces | |
namespace | language |
Language detection and identification functionality. | |
namespace | literals |
namespace | runes |
namespace | spell |
namespace | spell_factory |
namespace | spells |
Pre-defined spells using the unified Spell interface. | |
namespace | unicode |
Classes | |
class | caster |
A powerful chaining pipeline for applying spells to data. More... | |
class | Rune |
Represents a single textual unit with Unicode and linguistic properties. More... | |
class | RuneString |
A sequence container for Rune objects (API Design Document: RuneString) More... | |
class | Spell |
Unified spell object for text transformation. More... | |
class | spell_base |
Base interface for all spell algorithms with C++20 enhancements. More... | |
class | spell_extensible |
Simplified spell base class. More... |
Concepts | |
concept | spell_concept |
Concept defining what makes a valid spell. | |
concept | spell_for |
Concept for spells that work with specific input types. | |
concept | sequence_spell_concept |
Concept for sequence-based spells (most common case) | |
concept | transforming_spell |
Concept for transformation spells that can change the output type. | |
concept | chainable_spells |
Concept for spells that can be chained together. |
Typedefs | |
using | RuneSequence = RuneString |
Backward compatibility alias for RuneString. | |
using | sequence_spell = spell_base<RuneSequence> |
Most common spell type: RuneSequence -> RuneSequence. |
Functions | |
template<typename T> | |
constexpr auto | make_caster (T &&data) noexcept -> caster< std::decay_t< T > > |
Factory function to create a caster (C++20 template argument deduction) | |
template<typename T, spell_concept Spell> requires spell_for<Spell, std::decay_t<T>> || (requires { RuneSequence::from_utf8(std::declval<T>()); } && spell_for<Spell, RuneSequence>) | |
constexpr auto | operator| (T &&data, Spell &&spell) |
Pipe operator for functional programming style (C++20 concepts) | |
template<typename T, spell_for< T > Spell> | |
constexpr auto | operator| (caster< T > &&caster_obj, Spell &&spell) |
Pipe operator for chaining casters (C++20 concepts) | |
constexpr Rune | operator""_rune (char32_t cp) noexcept |
User-defined literal for creating Rune from Unicode codepoint. | |
void | swap (RuneString &lhs, RuneString &rhs) noexcept |
Swap two RuneString objects. |
Variables | |
template<typename T> | |
constexpr bool | is_spell_v = spell_concept<T> |
template<typename Spell, typename Input> | |
constexpr bool | can_spell_process_v = spell_for<Spell, Input> |
template<typename Spell1, typename Spell2> | |
constexpr bool | chainable_v = chainable_spells<Spell1, Spell2> |
template<typename T> | |
constexpr bool | is_sequence_spell_v = sequence_spell_concept<T> |
constexpr int | version_major = 1 |
constexpr int | version_minor = 0 |
constexpr int | version_patch = 0 |
constexpr const char * | version_string = "1.0.0" |
constexpr const char * | version_name = "Rune Caster" |
constexpr const char * | version_description = "Modern C++ Text Processing Framework" |
using rune_caster::RuneSequence = RuneString |
Backward compatibility alias for RuneString.
This allows existing code using RuneSequence to continue working while transitioning to the new RuneString API.
Definition at line 429 of file rune_sequence.hpp.
Most common spell type: RuneSequence -> RuneSequence.
This is the standard spell interface that most text processing algorithms will implement.
Definition at line 91 of file spell_base.hpp.
|
constexprnoexcept |
Factory function to create a caster (C++20 template argument deduction)
This function enables the fluent interface pattern: auto result = make_caster(data).cast(spell1).cast(spell2).result();
T | The type of data (automatically deduced) |
data | The data to wrap in a caster |
Definition at line 124 of file caster.hpp.
|
constexprnoexcept |
|
constexpr |
Pipe operator for chaining casters (C++20 concepts)
Definition at line 154 of file caster.hpp.
|
constexpr |
Pipe operator for functional programming style (C++20 concepts)
Enables: data | spell1 | spell2 | ... This is an alternative to the fluent interface.
Definition at line 138 of file caster.hpp.
|
inlinenoexcept |
Swap two RuneString objects.
lhs | First RuneString |
rhs | Second RuneString |
Definition at line 438 of file rune_sequence.hpp.
|
constexpr |
Definition at line 147 of file spell_base.hpp.
|
constexpr |
Definition at line 150 of file spell_base.hpp.
|
constexpr |
Definition at line 153 of file spell_base.hpp.
|
constexpr |
Definition at line 144 of file spell_base.hpp.
|
constexpr |
Definition at line 11 of file version.hpp.
|
constexpr |
Definition at line 5 of file version.hpp.
|
constexpr |
Definition at line 6 of file version.hpp.
|
constexpr |
Definition at line 10 of file version.hpp.
|
constexpr |
Definition at line 7 of file version.hpp.
|
constexpr |
Definition at line 9 of file version.hpp.