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  }