fix: fix ConfigManager::StringSetting issues
- use yycc_u8string_view in default value and Set function instead of const yycc_char8_t* - fix value check error in Set function.
This commit is contained in:
parent
4f1e2447d0
commit
d27a66e770
|
@ -137,21 +137,17 @@ namespace YYCC::ConfigManager {
|
|||
|
||||
class StringSetting : public AbstractSetting {
|
||||
public:
|
||||
StringSetting(const yycc_char8_t* name, const yycc_char8_t* default_value, Constraint<yycc_u8string> constraint = Constraint<yycc_u8string> {}) :
|
||||
StringSetting(const yycc_char8_t* name, const yycc_u8string_view& default_value, Constraint<yycc_u8string_view> constraint = Constraint<yycc_u8string_view> {}) :
|
||||
AbstractSetting(name), m_Data(), m_DefaultData(), m_Constraint(constraint) {
|
||||
if (default_value != nullptr) {
|
||||
m_Data = default_value;
|
||||
m_DefaultData = default_value;
|
||||
}
|
||||
m_Data = default_value;
|
||||
m_DefaultData = default_value;
|
||||
}
|
||||
virtual ~StringSetting() {}
|
||||
|
||||
const yycc_u8string& Get() const { return m_Data; }
|
||||
bool Set(const yycc_char8_t* new_data) {
|
||||
bool Set(const yycc_u8string_view& new_data) {
|
||||
// check data validation
|
||||
if (new_data == nullptr)
|
||||
return false;
|
||||
if (m_Constraint.IsValid() && !m_Constraint.m_CheckFct(m_Data))
|
||||
if (m_Constraint.IsValid() && !m_Constraint.m_CheckFct(new_data))
|
||||
return false;
|
||||
// assign data
|
||||
m_Data = new_data;
|
||||
|
@ -194,7 +190,7 @@ namespace YYCC::ConfigManager {
|
|||
}
|
||||
|
||||
yycc_u8string m_Data, m_DefaultData;
|
||||
Constraint<yycc_u8string> m_Constraint;
|
||||
Constraint<yycc_u8string_view> m_Constraint;
|
||||
};
|
||||
|
||||
#pragma endregion
|
||||
|
|
Loading…
Reference in New Issue
Block a user