diff --git a/.clang-tidy b/.clang-tidy index cb28593..79ff50a 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -3,6 +3,7 @@ Checks: " readability-*, modernize-*, performance-*, + misc-include-cleaner, -google-readability-todo, -readability-convert-member-functions-to-static, -readability-function-cognitive-complexity, diff --git a/providers/flagd/src/configuration.cpp b/providers/flagd/src/configuration.cpp index 4949219..c6b9cbd 100644 --- a/providers/flagd/src/configuration.cpp +++ b/providers/flagd/src/configuration.cpp @@ -1,18 +1,25 @@ #include "configuration.h" -#include #include +#include #include +#include #include #include #include +#include +#include +#include #include +#include #include +#include #include #include #include "absl/log/log.h" +#include "absl/status/status.h" #include "absl/status/statusor.h" #include "absl/strings/ascii.h" #include "absl/strings/str_cat.h" diff --git a/providers/flagd/src/evaluator/evaluator.cpp b/providers/flagd/src/evaluator/evaluator.cpp index 5ba18ff..1987b5c 100644 --- a/providers/flagd/src/evaluator/evaluator.cpp +++ b/providers/flagd/src/evaluator/evaluator.cpp @@ -1,14 +1,29 @@ #include "evaluator.h" +#include #include +#include +#include #include #include +#include #include +#include +#include +#include +#include #include "absl/log/log.h" +#include "absl/status/statusor.h" #include "absl/strings/str_cat.h" #include "flagd/sync/sync.h" #include "flagd_ops.h" +#include "openfeature/error_code.h" +#include "openfeature/evaluation_context.h" +#include "openfeature/flag_metadata.h" +#include "openfeature/reason.h" +#include "openfeature/resolution_details.h" +#include "openfeature/value.h" namespace flagd { diff --git a/providers/flagd/src/evaluator/flagd_ops.cpp b/providers/flagd/src/evaluator/flagd_ops.cpp index f20711b..6f621d5 100644 --- a/providers/flagd/src/evaluator/flagd_ops.cpp +++ b/providers/flagd/src/evaluator/flagd_ops.cpp @@ -1,17 +1,23 @@ #include "flagd_ops.h" #include +#include +#include #include #include +#include #include #include +#include #include #include "absl/status/status.h" +#include "absl/status/statusor.h" #include "absl/strings/match.h" #include "absl/strings/numbers.h" #include "absl/strings/str_cat.h" #include "absl/strings/str_split.h" +#include "flagd/evaluator/json_logic/json_logic.h" #include "flagd/evaluator/murmur_hash/MurmurHash3.h" namespace flagd { diff --git a/providers/flagd/src/evaluator/json_logic/array.cpp b/providers/flagd/src/evaluator/json_logic/array.cpp index ad6cb22..b6a087c 100644 --- a/providers/flagd/src/evaluator/json_logic/array.cpp +++ b/providers/flagd/src/evaluator/json_logic/array.cpp @@ -1,6 +1,11 @@ #include "array.h" +#include + +#include "absl/status/statusor.h" +#include "providers/flagd/src/evaluator/json_logic/json_logic.h" + namespace json_logic::ops { absl::StatusOr Merge(const JsonLogic& eval, diff --git a/providers/flagd/src/evaluator/json_logic/cli.cpp b/providers/flagd/src/evaluator/json_logic/cli.cpp index 202c9d5..587e413 100644 --- a/providers/flagd/src/evaluator/json_logic/cli.cpp +++ b/providers/flagd/src/evaluator/json_logic/cli.cpp @@ -1,8 +1,10 @@ #include #include +#include #include #include "absl/status/status.h" +#include "absl/status/statusor.h" #include "json_logic.h" #include "nlohmann/json.hpp" diff --git a/providers/flagd/src/evaluator/json_logic/data.cpp b/providers/flagd/src/evaluator/json_logic/data.cpp index 821eaf7..de35bc9 100644 --- a/providers/flagd/src/evaluator/json_logic/data.cpp +++ b/providers/flagd/src/evaluator/json_logic/data.cpp @@ -1,10 +1,13 @@ #include "data.h" #include +#include +#include #include #include #include "absl/status/status.h" +#include "absl/status/statusor.h" #include "absl/strings/str_cat.h" #include "json_logic.h" diff --git a/providers/flagd/src/evaluator/json_logic/json_logic.cpp b/providers/flagd/src/evaluator/json_logic/json_logic.cpp index 448bf03..1a7d84f 100644 --- a/providers/flagd/src/evaluator/json_logic/json_logic.cpp +++ b/providers/flagd/src/evaluator/json_logic/json_logic.cpp @@ -1,9 +1,11 @@ #include "json_logic.h" +#include #include #include #include "absl/status/status.h" +#include "absl/status/statusor.h" #include "array.h" #include "data.h" #include "logic.h" diff --git a/providers/flagd/src/evaluator/json_logic/logic.cpp b/providers/flagd/src/evaluator/json_logic/logic.cpp index 95e87b1..b869e74 100644 --- a/providers/flagd/src/evaluator/json_logic/logic.cpp +++ b/providers/flagd/src/evaluator/json_logic/logic.cpp @@ -1,6 +1,11 @@ #include "logic.h" +#include +#include + #include "absl/status/status.h" +#include "absl/status/statusor.h" +#include "providers/flagd/src/evaluator/json_logic/json_logic.h" #include "providers/flagd/src/evaluator/json_logic/utils.h" namespace json_logic::ops { diff --git a/providers/flagd/src/evaluator/json_logic/numeric.cpp b/providers/flagd/src/evaluator/json_logic/numeric.cpp index 2b7d6b8..96d6649 100644 --- a/providers/flagd/src/evaluator/json_logic/numeric.cpp +++ b/providers/flagd/src/evaluator/json_logic/numeric.cpp @@ -3,12 +3,18 @@ #include #include #include +#include +#include #include +#include +#include #include #include #include #include "absl/status/status.h" +#include "absl/status/statusor.h" +#include "providers/flagd/src/evaluator/json_logic/json_logic.h" namespace json_logic::ops { @@ -258,8 +264,8 @@ absl::StatusOr Add(const JsonLogic& eval, if (!nums_res.ok()) return nums_res.status(); if (nums_res->empty()) return 0; - return std::accumulate(nums_res->begin() + 1, nums_res->end(), (*nums_res)[0], - Number::Add) + return std::accumulate(nums_res->begin() + 1, nums_res->end(), + nums_res.value()[0], Number::Add) .ToJson(); } @@ -271,10 +277,10 @@ absl::StatusOr Subtract(const JsonLogic& eval, if (!nums_res.ok()) return nums_res.status(); if (nums_res->size() == 1) { - return Number::Sub(Number(int64_t{0}), (*nums_res)[0]).ToJson(); + return Number::Sub(Number(int64_t{0}), nums_res.value()[0]).ToJson(); } if (nums_res->size() == 2) { - return Number::Sub((*nums_res)[0], (*nums_res)[1]).ToJson(); + return Number::Sub(nums_res.value()[0], nums_res.value()[1]).ToJson(); } return absl::InvalidArgumentError( "Subtract requires exactly one or two arguments"); @@ -288,8 +294,8 @@ absl::StatusOr Multiply(const JsonLogic& eval, if (!nums_res.ok()) return nums_res.status(); if (nums_res->empty()) return 1; - return std::accumulate(nums_res->begin() + 1, nums_res->end(), (*nums_res)[0], - Number::Mul) + return std::accumulate(nums_res->begin() + 1, nums_res->end(), + nums_res.value()[0], Number::Mul) .ToJson(); } @@ -304,7 +310,7 @@ absl::StatusOr Divide(const JsonLogic& eval, } absl::StatusOr result_res = - Number::Div((*nums_res)[0], (*nums_res)[1]); + Number::Div(nums_res.value()[0], nums_res.value()[1]); if (!result_res.ok()) return result_res.status(); return result_res->ToJson(); } @@ -320,7 +326,7 @@ absl::StatusOr Modulo(const JsonLogic& eval, } absl::StatusOr result_res = - Number::Mod((*nums_res)[0], (*nums_res)[1]); + Number::Mod(nums_res.value()[0], nums_res.value()[1]); if (!result_res.ok()) return result_res.status(); return result_res->ToJson(); } @@ -332,9 +338,10 @@ absl::StatusOr LessThan(const JsonLogic& eval, GetNumbers(eval, values, data, "<"); if (!nums_res.ok()) return nums_res.status(); - if (nums_res->size() == 2) return (*nums_res)[0] < (*nums_res)[1]; + if (nums_res->size() == 2) return nums_res.value()[0] < nums_res.value()[1]; if (nums_res->size() == 3) { - return (*nums_res)[0] < (*nums_res)[1] && (*nums_res)[1] < (*nums_res)[2]; + return nums_res.value()[0] < nums_res.value()[1] && + nums_res.value()[1] < nums_res.value()[2]; } return absl::InvalidArgumentError("Comparison requires 2 or 3 arguments"); } @@ -349,10 +356,12 @@ absl::StatusOr LessThanOrEqual(const JsonLogic& eval, auto is_lte = [](const Number& first, const Number& second) { return first < second || first == second; }; - if (nums_res->size() == 2) return is_lte((*nums_res)[0], (*nums_res)[1]); + if (nums_res->size() == 2) { + return is_lte(nums_res.value()[0], nums_res.value()[1]); + } if (nums_res->size() == 3) { - return is_lte((*nums_res)[0], (*nums_res)[1]) && - is_lte((*nums_res)[1], (*nums_res)[2]); + return is_lte(nums_res.value()[0], nums_res.value()[1]) && + is_lte(nums_res.value()[1], nums_res.value()[2]); } return absl::InvalidArgumentError("Comparison requires 2 or 3 arguments"); } @@ -364,7 +373,7 @@ absl::StatusOr GreaterThan(const JsonLogic& eval, GetNumbers(eval, values, data, ">"); if (!nums_res.ok()) return nums_res.status(); - if (nums_res->size() == 2) return (*nums_res)[1] < (*nums_res)[0]; + if (nums_res->size() == 2) return nums_res.value()[1] < nums_res.value()[0]; return absl::InvalidArgumentError("GreaterThan requires 2 arguments"); } @@ -376,7 +385,8 @@ absl::StatusOr GreaterThanOrEqual(const JsonLogic& eval, if (!nums_res.ok()) return nums_res.status(); if (nums_res->size() == 2) { - return (*nums_res)[1] < (*nums_res)[0] || (*nums_res)[0] == (*nums_res)[1]; + return nums_res.value()[1] < nums_res.value()[0] || + nums_res.value()[0] == nums_res.value()[1]; } return absl::InvalidArgumentError("GreaterThanOrEqual requires 2 arguments"); } diff --git a/providers/flagd/src/evaluator/json_logic/string_ops.cpp b/providers/flagd/src/evaluator/json_logic/string_ops.cpp index 9a527f8..2e9fd08 100644 --- a/providers/flagd/src/evaluator/json_logic/string_ops.cpp +++ b/providers/flagd/src/evaluator/json_logic/string_ops.cpp @@ -2,12 +2,17 @@ #include "string_ops.h" #include +#include #include +#include #include +#include #include #include "absl/status/status.h" +#include "absl/status/statusor.h" #include "absl/strings/str_join.h" +#include "providers/flagd/src/evaluator/json_logic/json_logic.h" namespace json_logic::ops { diff --git a/providers/flagd/src/evaluator/json_logic/utils.cpp b/providers/flagd/src/evaluator/json_logic/utils.cpp index c64658f..01014d3 100644 --- a/providers/flagd/src/evaluator/json_logic/utils.cpp +++ b/providers/flagd/src/evaluator/json_logic/utils.cpp @@ -1,5 +1,7 @@ #include "utils.h" +#include +#include #include namespace json_logic::ops { diff --git a/providers/flagd/src/provider.cpp b/providers/flagd/src/provider.cpp index 3b9963b..31ea15f 100644 --- a/providers/flagd/src/provider.cpp +++ b/providers/flagd/src/provider.cpp @@ -1,13 +1,24 @@ #include "provider.h" -#include - +#include +#include #include +#include +#include +#include #include "absl/log/log.h" #include "absl/status/status.h" #include "flagd/configuration.h" +#include "flagd/evaluator/evaluator.h" #include "flagd/sync/grpc/grpc_sync.h" +#include "flagd/sync/sync.h" +#include "openfeature/error_code.h" +#include "openfeature/evaluation_context.h" +#include "openfeature/metadata.h" +#include "openfeature/reason.h" +#include "openfeature/resolution_details.h" +#include "openfeature/value.h" namespace flagd { diff --git a/providers/flagd/src/sync/grpc/grpc_sync.cpp b/providers/flagd/src/sync/grpc/grpc_sync.cpp index 0a49b9a..6dc1b51 100644 --- a/providers/flagd/src/sync/grpc/grpc_sync.cpp +++ b/providers/flagd/src/sync/grpc/grpc_sync.cpp @@ -1,19 +1,32 @@ #include "grpc_sync.h" +#include #include +#include +#include +#include #include #include +#include +#include #include #include #include +#include +#include #include +#include +#include #include "absl/log/log.h" #include "absl/status/status.h" +#include "absl/status/statusor.h" #include "absl/strings/str_cat.h" #include "flagd/configuration.h" #include "flagd/sync/v1/sync.grpc.pb.h" +#include "flagd/sync/v1/sync.pb.h" +#include "openfeature/evaluation_context.h" using ::flagd::sync::v1::FlagSyncService; using ::flagd::sync::v1::SyncFlagsRequest; diff --git a/providers/flagd/src/sync/sync.cpp b/providers/flagd/src/sync/sync.cpp index 99df01f..d88c087 100644 --- a/providers/flagd/src/sync/sync.cpp +++ b/providers/flagd/src/sync/sync.cpp @@ -1,11 +1,16 @@ #include "sync.h" +#include #include #include #include -#include +#include +#include +#include +#include #include "absl/log/log.h" +#include "absl/status/status.h" #include "absl/strings/str_cat.h" #include "embedded_schemas.h" diff --git a/providers/flagd/tests/evaluator/flagd_ops_test.cpp b/providers/flagd/tests/evaluator/flagd_ops_test.cpp index 2e7716d..90ffa93 100644 --- a/providers/flagd/tests/evaluator/flagd_ops_test.cpp +++ b/providers/flagd/tests/evaluator/flagd_ops_test.cpp @@ -3,6 +3,7 @@ #include #include +#include #include "providers/flagd/src/evaluator/json_logic/json_logic.h" diff --git a/providers/flagd/tests/evaluator/json_logic/json_logic_annotated_test.cpp b/providers/flagd/tests/evaluator/json_logic/json_logic_annotated_test.cpp index 5da2793..598a4ec 100644 --- a/providers/flagd/tests/evaluator/json_logic/json_logic_annotated_test.cpp +++ b/providers/flagd/tests/evaluator/json_logic/json_logic_annotated_test.cpp @@ -3,8 +3,11 @@ #include #include #include +#include +#include #include +#include "absl/status/statusor.h" #include "providers/flagd/src/evaluator/json_logic/json_logic.h" using json_logic::JsonLogic;