pisa-engine / pisa

PISA: Performant Indexes and Search for Academia
https://pisa-engine.github.io/pisa/book
Apache License 2.0
915 stars 64 forks source link

Concepts #571

Closed elshize closed 7 months ago

elshize commented 8 months ago

This change set contains commits that introduce C++20 concepts for:

Concepts are only used when compiled in C++20 mode, ignored otherwise.

Assertions are added to known structures that satisfy these concepts.

Some require constraints are also added, most notably for the algorithm execution that expect certain posting lists.

Rationale

Concepts are introduced for faster constraint checking and explicit interface modeling when templates are used.

codecov[bot] commented 8 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (637254f) 93.28% compared to head (25bfefc) 93.29%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #571 +/- ## ======================================= Coverage 93.28% 93.29% ======================================= Files 90 90 Lines 4454 4457 +3 ======================================= + Hits 4155 4158 +3 Misses 299 299 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.