diff --git a/src/utils/conversion.hpp b/src/utils/conversion.hpp
index e92249a..f528044 100644
--- a/src/utils/conversion.hpp
+++ b/src/utils/conversion.hpp
@@ -90,9 +90,10 @@
 inline T toEnum(const std::array<std::pair<std::string_view, T>, N>& data,
                 const std::string& value)
 {
-    auto it = std::find_if(
-        std::begin(data), std::end(data),
-        [&value](const auto& item) { return item.first == value; });
+    auto it = std::find_if(std::begin(data), std::end(data),
+                           [&value](const auto& item) {
+        return item.first == value;
+    });
     if (it == std::end(data))
     {
         throwConversionError(EnumTraits<T>::propertyName);
@@ -105,9 +106,10 @@
     enumToString(const std::array<std::pair<std::string_view, T>, N>& data,
                  T value)
 {
-    auto it = std::find_if(
-        std::begin(data), std::end(data),
-        [value](const auto& item) { return item.second == value; });
+    auto it = std::find_if(std::begin(data), std::end(data),
+                           [value](const auto& item) {
+        return item.second == value;
+    });
     if (it == std::end(data))
     {
         throwConversionError(EnumTraits<T>::propertyName);
