Skip to content

Commit 65875a0

Browse files
author
Andrew Clarke
committed
Clean up the IndexConfig API
1 parent 9937479 commit 65875a0

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

src/Index.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,18 @@ class Index {
3333
~Index();
3434

3535
struct IndexConfig {
36-
bool numeric = false;
37-
bool unique = false;
38-
bool sparse = false;
39-
bool indexLineOffsets = false;
40-
IndexConfig(bool n, bool u, bool s, bool i) :
41-
numeric{n}, unique{u}, sparse{s}, indexLineOffsets{i} {};
36+
bool numeric;
37+
bool unique;
38+
bool sparse;
39+
bool indexLineOffsets;
4240

4341
IndexConfig() :
4442
numeric{false}, unique{false}, sparse{false}, indexLineOffsets{false} {};
43+
44+
IndexConfig withNumeric(bool b) { numeric = b; return *this; };
45+
IndexConfig withUnique(bool b) { unique = b; return *this; };
46+
IndexConfig withSparse(bool b) { sparse = b; return *this; };
47+
IndexConfig withIndexLineOffsets(bool b) { indexLineOffsets = b; return *this; };
4548
};
4649

4750
// Retrieve a single line by line number, calling the supplied LineSink with

tests/IndexTest.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ TEST_CASE("indexes files", "[Index]") {
5151
testFile, testFile + ".zindex");
5252
unique_ptr<LineIndexer> indexer(new RegExpIndexer("^Line ([0-9]+)"));
5353
builder
54-
.addIndexer("default", "blah", Index::IndexConfig{ true, true, false, false }, move(indexer))
54+
.addIndexer("default", "blah", Index::IndexConfig().withNumeric(true).withUnique(true), move(indexer))
5555
.indexEvery(256 * 1024)
5656
.build();
5757
Index index = Index::load(log, File(fopen(testFile.c_str(), "rb")),
@@ -88,7 +88,7 @@ TEST_CASE("indexes files", "[Index]") {
8888
testFile, testFile + ".zindex");
8989
unique_ptr<LineIndexer> indexer(new RegExpIndexer("Mod ([0-9]+)"));
9090
CHECK_THROWS(
91-
builder.addIndexer("default", "blah", Index::IndexConfig{ true, true, false, false },
91+
builder.addIndexer("default", "blah", Index::IndexConfig().withNumeric(true).withUnique(true),
9292
move(indexer))
9393
.indexEvery(256 * 1024)
9494
.build());
@@ -98,7 +98,7 @@ TEST_CASE("indexes files", "[Index]") {
9898
Index::Builder builder(log, File(fopen(testFile.c_str(), "rb")),
9999
testFile, testFile + ".zindex");
100100
unique_ptr<LineIndexer> indexer(new RegExpIndexer("Mod ([0-9]+)"));
101-
builder.addIndexer("default", "blah", Index::IndexConfig{ true, false, false, false }, move(indexer))
101+
builder.addIndexer("default", "blah", Index::IndexConfig().withNumeric(true), move(indexer))
102102
.indexEvery(256 * 1024)
103103
.build();
104104
Index index = Index::load(log, File(fopen(testFile.c_str(), "rb")),
@@ -131,7 +131,7 @@ TEST_CASE("indexes files", "[Index]") {
131131
testFile, testFile + ".zindex");
132132
unique_ptr<LineIndexer> indexer(new RegExpIndexer("Hex ([0-9a-f]+)"));
133133
builder
134-
.addIndexer("default", "blah", Index::IndexConfig{ false, true, false, false }, move(indexer))
134+
.addIndexer("default", "blah", Index::IndexConfig().withUnique(true), move(indexer))
135135
.indexEvery(256 * 1024)
136136
.build();
137137
Index index = Index::load(log, File(fopen(testFile.c_str(), "rb")),
@@ -158,7 +158,7 @@ TEST_CASE("indexes files", "[Index]") {
158158
testFile, testFile + ".zindex");
159159
unique_ptr<LineIndexer> indexer(new RegExpIndexer("\\w+"));
160160
builder
161-
.addIndexer("default", "blah", Index::IndexConfig{ false, false, false, false }, move(indexer))
161+
.addIndexer("default", "blah", Index::IndexConfig(), move(indexer))
162162
.indexEvery(256 * 1024)
163163
.build();
164164
Index index = Index::load(log, File(fopen(testFile.c_str(), "rb")),
@@ -183,7 +183,7 @@ TEST_CASE("indexes files", "[Index]") {
183183
testFile, testFile + ".zindex");
184184
builder.skipFirst(2);
185185
unique_ptr<LineIndexer> indexer(new FieldIndexer(' ', 2));
186-
builder.addIndexer("default", "blah", Index::IndexConfig{ true, false, false, false }, move(indexer))
186+
builder.addIndexer("default", "blah", Index::IndexConfig().withNumeric(true), move(indexer))
187187
.indexEvery(256 * 1024)
188188
.build();
189189
Index index = Index::load(log, File(fopen(testFile.c_str(), "rb")),
@@ -231,7 +231,7 @@ TEST_CASE("sparsely indexes files", "[Index]") {
231231
testFile, testFile + ".zindex");
232232
unique_ptr<LineIndexer> indexer(new RegExpIndexer("Line ([^-]+) "));
233233
builder
234-
.addIndexer("default", "blah", Index::IndexConfig{ false, false, false, false }, move(indexer))
234+
.addIndexer("default", "blah", Index::IndexConfig(), move(indexer))
235235
.indexEvery(256 * 1024)
236236
.build();
237237
Index index = Index::load(log, File(fopen(testFile.c_str(), "rb")),
@@ -267,7 +267,7 @@ TEST_CASE("metadata tests", "[Index]") {
267267
testFile + ".zindex");
268268
unique_ptr<LineIndexer> indexer(new RegExpIndexer("\\w+"));
269269
builder
270-
.addIndexer("default", "blah", Index::IndexConfig{ false, false, false, false }, move(indexer))
270+
.addIndexer("default", "blah", Index::IndexConfig(), move(indexer))
271271
.build();
272272
SECTION("loads metadata") {
273273
Index index = Index::load(log, File(fopen(testFile.c_str(), "rb")),

0 commit comments

Comments
 (0)