Skip to content

introduce pattern_base, refactor pattern layer, add full API docs - #7

Merged
sentomk merged 3 commits into
mainfrom
dev-main
Nov 13, 2025
Merged

introduce pattern_base, refactor pattern layer, add full API docs#7
sentomk merged 3 commits into
mainfrom
dev-main

Conversation

@sentomk

@sentomk sentomk commented Nov 13, 2025

Copy link
Copy Markdown
Owner

No description provided.

Introduce a minimal type.hpp scaffold under patterns/ as the foundation of the Type Layer.
This file will later define is_type<T>, holds_type<T>, and related type-based patterns built on `pattern_tag`.
…ull API docs

This update brings a major redesign to Patternia's Pattern Layer:

- Introduced `pattern_base` (CRTP) as the unified base for all patterns,
  providing consistent `match()` and `bind()` interfaces.
- Reassigned responsibilities of `pattern_tag` (now purely a marker for
  pattern-like types, no longer a base class).
- Fully refactored Value, Relational, and Predicate patterns to inherit
  from `pattern_base` and to implement the new `match()`-based API.
- Removed legacy `operator()`-based matching; all patterns now standardize
  on `.match(subject)`.
- Added comprehensive Doxygen comments across pattern modules and `match_builder`,
  preparing for full API documentation generation.
- Reorganized project structure to clearly separate core, dsl, and patterns.
- Updated public headers and DSL implementation to align with the new
  Pattern Layer architecture.

This commit represents a foundational cleanup and modernization pass,
making the Pattern Layer more uniform, extensible, and friendly for
future Type Layer development.
@sentomk
sentomk merged commit a42ba5b into main Nov 13, 2025
17 checks passed
sentomk added a commit that referenced this pull request Mar 11, 2026
* feat(patterns): add minimal type.hpp scaffold for type matching layer

Introduce a minimal type.hpp scaffold under patterns/ as the foundation of the Type Layer.
This file will later define is_type<T>, holds_type<T>, and related type-based patterns built on `pattern_tag`.

* feat(patterns): introduce pattern_base, refactor pattern layer, add full API docs

This update brings a major redesign to Patternia's Pattern Layer:

- Introduced `pattern_base` (CRTP) as the unified base for all patterns,
  providing consistent `match()` and `bind()` interfaces.
- Reassigned responsibilities of `pattern_tag` (now purely a marker for
  pattern-like types, no longer a base class).
- Fully refactored Value, Relational, and Predicate patterns to inherit
  from `pattern_base` and to implement the new `match()`-based API.
- Removed legacy `operator()`-based matching; all patterns now standardize
  on `.match(subject)`.
- Added comprehensive Doxygen comments across pattern modules and `match_builder`,
  preparing for full API documentation generation.
- Reorganized project structure to clearly separate core, dsl, and patterns.
- Updated public headers and DSL implementation to align with the new
  Pattern Layer architecture.

This commit represents a foundational cleanup and modernization pass,
making the Pattern Layer more uniform, extensible, and friendly for
future Type Layer development.

* ci: update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant