vitess.io/vitess@v0.16.2/go/vt/vttablet/tabletmanager/vreplication/queryhistory/sequenced_expectation_set.go (about) 1 package queryhistory 2 3 // SequencedExpectationSet provides a set-like interface over a Golang map of 4 // SequencedExpectations. 5 type SequencedExpectationSet interface { 6 Add(SequencedExpectation) 7 Contains(SequencedExpectation) bool 8 Slice() []SequencedExpectation 9 } 10 11 type sequencedExpectationSet map[SequencedExpectation]any 12 13 func (ses *sequencedExpectationSet) Add(expectation SequencedExpectation) { 14 if ses == nil { 15 *ses = make(sequencedExpectationSet) 16 } 17 (*ses)[expectation] = true 18 } 19 20 func (ses *sequencedExpectationSet) Contains(expectation SequencedExpectation) bool { 21 if ses == nil { 22 return false 23 } 24 _, c := (*ses)[expectation] 25 return c 26 } 27 28 func (ses *sequencedExpectationSet) Slice() []SequencedExpectation { 29 s := make([]SequencedExpectation, 0) 30 if len(*ses) == 0 { 31 return s 32 } 33 for se := range *ses { 34 s = append(s, se) 35 } 36 return s 37 }