def union(other, dest: nil)
      destination = coerce_destination(dest)
      results = if destination.nil?
        ::Set.new(self.connection.sunion(@key, other.key))
      else
        self.connection.sunionstore(destination.key, @key, other.key)
      end

      return results
    end
def union(other, dest: nil)
      destination = coerce_destination(dest)
      results = if destination.nil?
        ::Set.new(self.connection.sunion(@key, other.key))
      else
        self.connection.sunionstore(destination.key, @key, other.key)
      end

      return results
    end
Computes the union of the two sets and stores the result in `dest`. If no destination provided, computes
 the results in memory.
 @param [Redstruct::Set] other set the set to add
 @param [Redstruct::Set, String] dest if nil, results are computed in memory. if a string, a new Redstruct::Set is
  constructed with the string as the key, and results are stored there. if already a Redstruct::Set, results are stored there.
 @return [::Set, Integer] if dest was provided, returns the number of elements in the destination; otherwise a standard Ruby set containing the union