def initialize_copy(other)
      @options = other.options.__deep_copy__
      @selector = other.selector.__deep_copy__
      @pipeline = other.pipeline.__deep_copy__
    end
def initialize_copy(other)
      @options = other.options.__deep_copy__
      @selector = other.selector.__deep_copy__
      @pipeline = other.pipeline.__deep_copy__
    end
Is this queryable equal to another object? Is true if the selector and
 options are equal.

 @example Are the objects equal?
   queryable == criteria

 @param [ Object ] other The object to compare against.

 @return [ true, false ] If the objects are equal.

 @since 1.0.0
 Initialize the new queryable. Will yield itself to the block if a block
 is provided for objects that need additional behaviour.

 @example Initialize the queryable.
   Origin::Queryable.new

 @param [ Hash ] aliases The optional field aliases.
 @param [ Hash ] serializers The optional field serializers.
 @param [ Symbol ] driver The driver being used.

 @since 1.0.0
 Handle the creation of a copy via #clone or #dup.

 @example Handle copy initialization.
   queryable.initialize_copy(criteria)

 @param [ Queryable ] other The original copy.

 @since 1.0.0