22#define JSON_FACADE_H_
33
44#include < memory>
5+ #include < ostream>
56#include < string>
67#include < string_view>
8+ #include < utility>
79#include < vector>
810
911struct Predicate {
@@ -24,28 +26,33 @@ class JsonQuery {
2426 PredicateDisjunction disjunction_;
2527
2628 public:
27- explicit JsonQuery (const PredicateDisjunction& disjunction) : disjunction_(disjunction) {}
29+ explicit JsonQuery (PredicateDisjunction disjunction) : disjunction_(std::move( disjunction) ) {}
2830
29- [[nodiscard]] const inline PredicateDisjunction& GetDisjunction () const { return disjunction_; }
31+ [[nodiscard]] const PredicateDisjunction& GetDisjunction () const { return disjunction_; }
3032 [[nodiscard]] std::string ToString () const ;
3133
32- friend std::ostream& operator <<(std::ostream& os , const JsonQuery& query);
34+ friend std::ostream& operator <<(std::ostream& outStream , const JsonQuery& query);
3335};
3436
3537class JsonFacade {
3638 public:
39+ JsonFacade () = default ;
40+ JsonFacade (const JsonFacade&) = delete ;
41+ JsonFacade& operator =(const JsonFacade&) = delete ;
42+ JsonFacade (JsonFacade&&) = delete ;
43+ JsonFacade& operator =(JsonFacade&&) = delete ;
3744 virtual ~JsonFacade () = default ;
3845 [[nodiscard]] virtual bool EvaluateQuery (std::string_view jsonStr, const JsonQuery& query) = 0;
3946};
4047
4148class RapidJsonFacade : public JsonFacade {
4249 public:
43- [[nodiscard]] virtual bool EvaluateQuery (std::string_view jsonStr, const JsonQuery& query) override ;
50+ [[nodiscard]] bool EvaluateQuery (std::string_view jsonStr, const JsonQuery& query) override ;
4451};
4552
4653class SimdJsonFacade : public JsonFacade {
4754 public:
48- [[nodiscard]] virtual bool EvaluateQuery (std::string_view jsonStr, const JsonQuery& query) override ;
55+ [[nodiscard]] bool EvaluateQuery (std::string_view jsonStr, const JsonQuery& query) override ;
4956};
5057
5158class JsonQueryDriver {
0 commit comments