#pragma once #include "domain/SpineVersion.hpp" #include #include #include namespace dts { enum class SkeletonDataFormat { Json, Binary, Unknown }; enum class VersionDetectionStatus { Detected, FileMissing, InvalidData, UnsupportedVersion }; struct VersionDetectionResult { SkeletonDataFormat format = SkeletonDataFormat::Unknown; VersionDetectionStatus status = VersionDetectionStatus::InvalidData; std::optional version; std::string message; }; class SpineDataVersionDetector { public: [[nodiscard]] VersionDetectionResult inspect(const std::filesystem::path& path) const; }; [[nodiscard]] std::string toString(SkeletonDataFormat format); [[nodiscard]] std::string toString(VersionDetectionStatus status); } // namespace dts