ScottPJones / Mongo.jl

Mongo bindings for the Julia programming language
Other
43 stars 21 forks source link

Refactor mongo operators #30

Open felipenoris opened 6 years ago

felipenoris commented 6 years ago

The current design, Mongo.jl overloads some Base functions in order to implement mongo operators.

In my opinion, this is a bad idea. For instance, the definition of in clashes with the definition in Compat, since it is defined for in(::Any).

I would like to propose to use a different namespace for Mongo operators, instead of overloading functions from Base.

Another possibility, preferable in my opinion, is to refactor these definitions to multiple-dispatch to a data-structure that is defined in this package. This way Base functions may be overloaded safely.

WARNING: Method definition in(Any) in module Compat at /Users/felipenoris/.julia/v0.6/Compat/src/Compat.jl:912 overwritten in module Mongo at /Users/felipenoris/.julia/v0.6/Mongo/src/query.jl:21.