module ElasticGraph::GraphQL::Filtering::FilterValueSetExtractor::UnboundedSetWithExclusions

def self.intersection(other)

def self.intersection(other)
  # Technically, the accurate intersection would be `other - values_of(self)` but as we don't have
  # any known values from this unbounded set, we just return `other`. It's OK to include extra values
  # in the set (we'll search additional shards or indices) but not OK to fail to include necessary values
  # in the set (we'd avoid searching a shard that may have matching documents) so we err on the side of
  # including more values.
  other
end

def self.negate

def self.negate
  # The negation of an `UnboundedSetWithExclusions` is still an `UnboundedSetWithExclusions`. While it would flip
  # which values are in or out of the set, this object is still the representation in our data model for that case.
  self
end

def self.union(other)

def self.union(other)
  # Since our set here is unbounded, the resulting union is also unbounded.
  self
end