#ifndef BILLYSHEET_ADRESSE_HPP #define BILLYSHEET_ADRESSE_HPP #include #include using json = nlohmann::json; namespace character::characteristic { class Adresse final { private: const std::uint32_t base{ 1 }; std::uint32_t carac{ 0 }; std::uint32_t materiel{ 0 }; std::uint32_t additional{ 0 }; public: Adresse() noexcept = default; ~Adresse() noexcept = default; [[nodiscard]] std::uint32_t get_base() const { return base; } [[nodiscard]] std::uint32_t get_carac() const { return carac; } [[nodiscard]] std::uint32_t get_materiel() const { return materiel; } [[nodiscard]] std::uint32_t get_additional() const { return additional; } friend void from_json(const json &j, Adresse &adresse) { const_cast(adresse.base) = j.at("base"); adresse.carac = j.at("carac"); adresse.materiel =j.at("materiel"); adresse.additional =j.at("additional"); } }; void to_json(json &j, const Adresse &adresse) { j.emplace("base", adresse.get_base()); j.emplace("carac", adresse.get_carac()); j.emplace("materiel", adresse.get_materiel()); j.emplace("additional", adresse.get_additional()); } } #endif //BILLYSHEET_ADRESSE_HPP