• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

freeeve / roaringrange / 28279688357
84%

Build:
DEFAULT BRANCH: main
Ran 27 Jun 2026 07:02PM UTC
Jobs 1
Files 16
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Jun 2026 05:17AM UTC coverage: 84.318% (+0.1%) from 84.204%
28279688357

push

github

freeeve
feat(index)!: optional case-sensitive indexing (default case-fold)

Add a case_sensitive index-creation setting across every text surface. The
default (false) case-folds, so all existing builds stay byte-identical -- every
pre-existing golden test is unchanged.

Per-format encoding of the case-sensitive flag (all unset => byte-identical):
- RRTI term index: header flags bit2 (FLAG_CASE_SENSITIVE = 4).
- RRSI trigram: append-only v4 (v3 16B header + trailing 2B flags at offset 16);
  reader accepts v3 and v4, rrs_boot_len is version-aware.
- RRSF facet: reserved u16 bit0; facet_key hashes raw bytes when set.
- RRSS manifest: flags bit4; split-set reader threads it to ngram/facet pruning,
  delta SplitSetWriter::resume inherits it from the base.

Build folding and query folding stay symmetric on every surface (the build ==
query correctness invariant). Readers derive case_fold = !flag.

API:
- Rust and Go config structs expose case_sensitive/CaseSensitive (default false):
  TermIndexConfig, SplitBuildConfig, TermSplitBuildConfig, WriterConfig. Builders
  translate to the internal case_normalization (true = fold) via !case_sensitive.
- Low-level/operation fns gain back-compat ...With(.., case_fold) siblings
  (tokenize_with, ngram_keys_with, write_index_with, write_facets_with,
  WriteTermIndexWith) so the existing public fns are unbroken.
- Python TermBuilder/SplitSetBuilder/TermSplitSetBuilder take case_sensitive=False.
- wasm reader reads v4/flags via the Rust reader (reader-only).

BREAKING CHANGE: Rust config structs gain a required case_sensitive field, so
struct-literal construction must set it explicitly.

Cross-language conformance goldens (Rust generates, Rust and Go assert
byte-for-byte): testdata/rrs_monolith_cs_build_golden.txt (v4 RRSI) and
testdata/rrti_term_split_cs_golden.txt (RRTI + RRSF + manifest). Go FuzzNgramKeys
extended with the case-sensitive property.

100 of 108 new or added lines in 8 files covered. (92.59%)

2 existing lines in 1 file now uncovered.

1484 of 1760 relevant lines covered (84.32%)

33.45 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
85.65
-1.85% terms.go
2
82.02
-0.03% reader.go
2
89.19
-0.65% splitsetbuild.go

Coverage Regressions

Lines Coverage ∆ File
2
85.65
-1.85% terms.go
Jobs
ID Job ID Ran Files Coverage
1 28279688357.1 27 Jun 2026 07:02PM UTC 16
84.32
GitHub Action Run
Source Files on build 28279688357
  • Tree
  • List 16
  • Changed 9
  • Source Changed 9
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28279688357
  • d24b5b18 on github
  • Prev Build on main (#28146543173)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc