Skip to content

Commit 2d67e4f

Browse files
committed
fixup! api: reorganize directory layout
1 parent c6c035f commit 2d67e4f

File tree

8 files changed

+31
-19
lines changed

8 files changed

+31
-19
lines changed

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,15 +212,23 @@ structure, which could be bad UTF-8 or malformed JSON
212212
or leaf values which are not provided as arrays.
213213

214214
As many Patterns as desired can be added to a Quamina
215-
instance.
215+
instance. More than one pattern can be added with the
216+
same `X` identifier.
216217

217218
The `AddPattern` call is single-threaded; if multiple
218219
threads call it, they will block and execute sequentially.
220+
```go
221+
func (q *Quamina) DeletePatterns(x X) error
222+
```
223+
After calling this API, no list of matches from
224+
`AddPattern` will include the `X` value specified
225+
in the argument.
219226

227+
The `error` return value is nil unless there was an
228+
internal failure of Quamina’s storage system.
220229
```go
221230
func (q *Quamina) MatchesForEvent(event []byte) ([]X, error)
222231
```
223-
224232
The `error` return value is nil unless there was an
225233
error in the encoding of the Event.
226234

@@ -231,9 +239,10 @@ A single Quamina instance is not thread-safe. But
231239
instances can share the underlying data structures
232240
in a safe way.
233241

234-
```json
242+
```go
235243
func (q *Quamina) Copy() *Quamina
236244
```
245+
237246
This generates a copy of of the target instance
238247
which may be used in parallel on another thread,
239248
while sharing the underlying data structure. Many

core_matcher.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func (m *coreMatcher) addPattern(x X, patternJSON string) error {
115115
}
116116

117117
// DeletePattern not implemented by coreMatcher
118-
func (m *coreMatcher) deletePattern(_ X) error {
118+
func (m *coreMatcher) deletePatterns(_ X) error {
119119
return errors.New("operation not supported")
120120
}
121121

matcher.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package quamina
22

33
type matcher interface {
44
addPattern(x X, pat string) error
5-
MatchesForJSONEvent(event []byte) ([]X, error)
65
matchesForFields(fields []Field) ([]X, error)
7-
deletePattern(x X) error
6+
deletePatterns(x X) error
87
IsNameUsed(label []byte) bool
98
}

matcher_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ func TestMatcherInterface(t *testing.T) {
1212
if err != nil {
1313
t.Error("addPattern? " + err.Error())
1414
}
15-
err = m.deletePattern("x")
15+
err = m.deletePatterns("x")
1616
if err == nil {
1717
t.Error("coreMatcher allowed Delete!?")
1818
}
1919
event := `{"x": [3, 1]}`
20-
matches, _ := m.MatchesForJSONEvent([]byte(event))
20+
fields, _ := newJSONFlattener().Flatten([]byte(event), m)
21+
matches, _ := m.matchesForFields(fields)
2122
if len(matches) != 1 || matches[0] != x {
2223
t.Error("missed match")
2324
}

pruner.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,14 +152,14 @@ func (m *prunerMatcher) disableRebuild() {
152152
// rebuildTrigger provides a way to control when rebuilds are
153153
// automatically triggered during standard operations.
154154
//
155-
// Currently an addPattern, deletePattern, or matchesForFields can
155+
// Currently an addPattern, deletePatterns, or matchesForFields can
156156
// trigger a rebuild. When a rebuild is triggered, it's executed
157157
// synchronously: the the Add/Delete/Match method doesn't return until
158158
// the rebuild is complete.
159159
type rebuildTrigger interface {
160160
// rebuild should return true to trigger a rebuild.
161161
//
162-
// This method is called by AddPatter,deletePattern, and
162+
// This method is called by AddPatter,deletePatterns, and
163163
// matchesForFields. added is true when called by addPattern;
164164
// false otherwise. These methods currently do not return
165165
// until the rebuild is complete, so beware.
@@ -267,7 +267,7 @@ func (m *prunerMatcher) matchesForFields(fields []Field) ([]X, error) {
267267

268268
// DeletePattern removes the pattern from the index and maybe rebuilds
269269
// the index.
270-
func (m *prunerMatcher) deletePattern(x X) error {
270+
func (m *prunerMatcher) deletePatterns(x X) error {
271271
n, err := m.live.Delete(x)
272272
if err == nil {
273273
if 0 < n {

pruner_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ func TestBasic(t *testing.T) {
4949

5050
m.printStats()
5151

52-
if err := m.deletePattern(id); err != nil {
52+
if err := m.deletePatterns(id); err != nil {
5353
t.Fatal(err)
5454
}
55-
if err := m.deletePattern(id); err != nil {
55+
if err := m.deletePatterns(id); err != nil {
5656
t.Fatal(err)
5757
}
5858

@@ -102,7 +102,7 @@ func TestRebuildSome(t *testing.T) {
102102

103103
depopulate := func() {
104104
for i := 0; i < n; i += 2 {
105-
if err := m.deletePattern(i); err != nil {
105+
if err := m.deletePatterns(i); err != nil {
106106
t.Fatal(err)
107107
}
108108
}
@@ -186,7 +186,7 @@ func TestTriggerTooManyFilteredDenom(t *testing.T) {
186186
if err := m.addPattern(1, `{"likes":["tacos"]}`); err != nil {
187187
t.Fatal(err)
188188
}
189-
if err := m.deletePattern(1); err != nil {
189+
if err := m.deletePatterns(1); err != nil {
190190
t.Fatal(err)
191191
}
192192
_, err := m.MatchesForJSONEvent([]byte(`{"likes":"tacos"}`))
@@ -226,7 +226,7 @@ func TestTriggerRebuild(t *testing.T) {
226226
}
227227

228228
if doomed(i) {
229-
if err := m.deletePattern(i); err != nil {
229+
if err := m.deletePatterns(i); err != nil {
230230
t.Fatal(err)
231231
}
232232
}
@@ -305,7 +305,7 @@ func TestBadState(t *testing.T) {
305305
if err := m.addPattern(1, `{"likes":["queso"]}`); err == nil {
306306
t.Fatal("expected error")
307307
}
308-
if err := m.deletePattern(1); err == nil {
308+
if err := m.deletePatterns(1); err == nil {
309309
t.Fatal("expected error")
310310
}
311311
if err := m.rebuild(false); err == nil {
@@ -424,7 +424,7 @@ func TestMultiplePatternsWithSameId(t *testing.T) {
424424
t.Fatal(s.Live)
425425
}
426426

427-
if err := m.deletePattern(id); err != nil {
427+
if err := m.deletePatterns(id); err != nil {
428428
t.Fatal(err)
429429
}
430430

quamina.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ func (q *Quamina) Copy() *Quamina {
7474
func (q *Quamina) AddPattern(x X, patternJSON string) error {
7575
return q.matcher.addPattern(x, patternJSON)
7676
}
77+
func (q *Quamina) DeletePatterns(x X) error {
78+
return q.matcher.deletePatterns(x)
79+
}
7780
func (q *Quamina) MatchesForEvent(event []byte) ([]X, error) {
7881
fields, err := q.flattener.Flatten(event, q.matcher)
7982
if err != nil {

race_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func testConcurrency(t *testing.T, m matcher) {
3333

3434
// depopulate := func() {
3535
// for i := 0; i < n; i += 2 {
36-
// if err := m.deletePattern(i); err != nil {
36+
// if err := m.deletePatterns(i); err != nil {
3737
// t.Fatal(err)
3838
// }
3939
// }

0 commit comments

Comments
 (0)