diff --git a/src/libs/core/include/core/UUID.hpp b/src/libs/core/include/core/UUID.hpp
index 47ceb1be..1b47a416 100644
--- a/src/libs/core/include/core/UUID.hpp
+++ b/src/libs/core/include/core/UUID.hpp
@@ -35,7 +35,7 @@ namespace lms::core
std::string_view getAsString() const { return _value; }
- bool operator<=>(const core::UUID&) const = default;
+ auto operator<=>(const UUID&) const = default;
private:
UUID(std::string_view value);
diff --git a/src/libs/core/test/CMakeLists.txt b/src/libs/core/test/CMakeLists.txt
index e052ad84..a063da46 100644
--- a/src/libs/core/test/CMakeLists.txt
+++ b/src/libs/core/test/CMakeLists.txt
@@ -8,6 +8,7 @@ add_executable(test-core
String.cpp
TraceLogger.cpp
Utils.cpp
+ UUID.cpp
)
target_link_libraries(test-core PRIVATE
diff --git a/src/libs/core/test/UUID.cpp b/src/libs/core/test/UUID.cpp
new file mode 100644
index 00000000..8e61d71a
--- /dev/null
+++ b/src/libs/core/test/UUID.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2024 Emeric Poupon
+ *
+ * This file is part of LMS.
+ *
+ * LMS is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * LMS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with LMS. If not, see .
+ */
+
+#include
+#include
+#include
+#include
+
+#include
+
+#include "core/UUID.hpp"
+
+namespace lms::core
+{
+ TEST(UUID, caseInsensitive)
+ {
+ const std::optional uuid1{ UUID::fromString("3f51c839-bee2-4e9d-a7b7-0693e45178fc") };
+ const std::optional uuid2{ UUID::fromString("3f51C839-bEE2-4e9d-a7B7-0693e45178fC") };
+
+ EXPECT_EQ(uuid1, uuid2);
+ EXPECT_TRUE(uuid1 >= uuid2);
+ EXPECT_TRUE(uuid1 <= uuid2);
+ }
+}
\ No newline at end of file
diff --git a/src/libs/database/include/database/IdType.hpp b/src/libs/database/include/database/IdType.hpp
index e1c06504..678728f7 100644
--- a/src/libs/database/include/database/IdType.hpp
+++ b/src/libs/database/include/database/IdType.hpp
@@ -39,10 +39,7 @@ namespace lms::db
ValueType getValue() const { return _id; }
- bool operator==(IdType other) const { return other._id == _id; }
- bool operator!=(IdType other) const { return !(*this == other); }
- bool operator<(IdType other) const { return _id < other._id; }
- bool operator>(IdType other) const { return _id > other._id; }
+ auto operator<=>(const IdType& other) const = default;
private:
Wt::Dbo::dbo_default_traits::IdType _id {Wt::Dbo::dbo_default_traits::invalidId()};
diff --git a/src/libs/metadata/include/metadata/IParser.hpp b/src/libs/metadata/include/metadata/IParser.hpp
index 189ebda2..568a6287 100644
--- a/src/libs/metadata/include/metadata/IParser.hpp
+++ b/src/libs/metadata/include/metadata/IParser.hpp
@@ -46,7 +46,7 @@ namespace lms::metadata
Artist(std::string_view _name) : name{ _name } {}
Artist(std::optional _mbid, std::string_view _name, std::optional _sortName) : mbid{ std::move(_mbid) }, name{ _name }, sortName{ std::move(_sortName) } {}
- bool operator<=>(const Artist&) const = default;
+ auto operator<=>(const Artist&) const = default;
};
using PerformerContainer = std::map>;
@@ -62,7 +62,7 @@ namespace lms::metadata
std::optional mediumCount;
std::vector releaseTypes;
- bool operator<=>(const Release&) const = default;
+ auto operator<=>(const Release&) const = default;
};
struct Medium
@@ -74,7 +74,7 @@ namespace lms::metadata
std::optional trackCount;
std::optional replayGain;
- bool operator<=>(const Medium&) const = default;
+ auto operator<=>(const Medium&) const = default;
bool isDefault() const
{
diff --git a/src/libs/services/scanner/impl/ScannerSettings.hpp b/src/libs/services/scanner/impl/ScannerSettings.hpp
index 2186ddb1..eca0f08e 100644
--- a/src/libs/services/scanner/impl/ScannerSettings.hpp
+++ b/src/libs/services/scanner/impl/ScannerSettings.hpp
@@ -44,10 +44,10 @@ namespace lms::scanner
db::MediaLibraryId id;
std::filesystem::path rootDirectory;
- bool operator<=>(const MediaLibraryInfo& other) const = default;
+ auto operator<=>(const MediaLibraryInfo& other) const = default;
};
std::vector mediaLibraries;
- bool operator<=>(const ScannerSettings& rhs) const = default;
+ bool operator==(const ScannerSettings& rhs) const = default;
};
}