File indexing completed on 2024-05-19 05:32:29

0001 /*
0002     KWin - the KDE window manager
0003     This file is part of the KDE project.
0004 
0005     SPDX-FileCopyrightText: 2023 Xaver Hugl <xaver.hugl@gmail.com>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 #pragma once
0010 #include "kwin_export.h"
0011 
0012 #include <QByteArray>
0013 #include <QString>
0014 
0015 namespace KWin
0016 {
0017 
0018 class KWIN_EXPORT Version
0019 {
0020 public:
0021     Version(uint32_t major, uint32_t minor, uint32_t patch = 0);
0022     Version() = default;
0023 
0024     // clang-format off
0025     auto operator<=> (const Version &other) const = default;
0026     // clang-format on
0027     bool isValid() const;
0028     uint32_t majorVersion() const;
0029     uint32_t minorVersion() const;
0030     uint32_t patchVersion() const;
0031 
0032     QString toString() const;
0033     QByteArray toByteArray() const;
0034 
0035     static Version parseString(QByteArrayView versionString);
0036 
0037 private:
0038     uint32_t m_major = 0;
0039     uint32_t m_minor = 0;
0040     uint32_t m_patch = 0;
0041 };
0042 
0043 }