X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/b3139bf3f37b3b0244efea8b4b5e5a7d0bc90095..bf689f8729a4f53f9425da557e0919eb9a6d795b:/include/stg/corp_conf.h?ds=inline

diff --git a/include/stg/corp_conf.h b/include/stg/corp_conf.h
index 9bbc03d3..6b1cbb83 100644
--- a/include/stg/corp_conf.h
+++ b/include/stg/corp_conf.h
@@ -18,52 +18,36 @@
  *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
  */
 
-#ifndef CORP_CONF_H
-#define CORP_CONF_H
+#pragma once
 
-#include "resetable.h"
+#include "stg/optional.h"
 
 #include <string>
 
-struct CORP_CONF
+namespace STG
 {
-CORP_CONF() : name(), cash(0) {}
-CORP_CONF(const std::string & n) : name(n), cash(0) {}
-CORP_CONF(const std::string & n, double c) : name(n), cash(c) {}
 
-std::string name;
-double      cash;
-};
-
-struct CORP_CONF_RES
+struct CorpConf
 {
-CORP_CONF_RES()
-    : name(), cash()
-{}
+    CorpConf() noexcept : cash(0) {}
+    explicit CorpConf(const std::string & n) noexcept : name(n), cash(0) {}
+    CorpConf(const std::string & n, double c) noexcept : name(n), cash(c) {}
 
-CORP_CONF_RES & operator=(const CORP_CONF & conf)
-{
-name = conf.name;
-cash = conf.cash;
-return *this;
-}
+    CorpConf(const CorpConf&) = default;
+    CorpConf& operator=(const CorpConf&) = default;
+    CorpConf(CorpConf&&) = default;
+    CorpConf& operator=(CorpConf&&) = default;
 
-CORP_CONF GetData() const
-{
-CORP_CONF cc;
-cc.name = name.data();
-cc.cash = cash.data();
-return cc;
-}
+    bool operator==(const CorpConf& rhs) const noexcept { return name == rhs.name; }
 
-RESETABLE<std::string> name;
-RESETABLE<double>      cash;
+    std::string name;
+    double      cash;
 };
 
-inline
-bool operator==(const CORP_CONF & a, const CORP_CONF & b)
+struct CorpConfOpt
 {
-return a.name == b.name;
-}
+    Optional<std::string> name;
+    Optional<double>      cash;
+};
 
-#endif //CORP_CONF_H
+}