🐎 Max size 0 optimizations

This commit is contained in:
EntireTwix 2021-05-19 14:18:01 -07:00
parent 95bf549427
commit dc74da6072

View file

@ -103,16 +103,19 @@ public:
} }
} }
} }
if (state) if constexpr (max_log_size)
{ {
Transaction temp(a_name, b_name, amount); if (state)
Transaction temp2 = temp; {
users.modify_if(a_name, [&temp](User &a) { Transaction temp(a_name, b_name, amount);
a.log.AddTrans(std::move(temp)); Transaction temp2 = temp;
}); users.modify_if(a_name, [&temp](User &a) {
users.modify_if(b_name, [&temp2](User &b) { a.log.AddTrans(std::move(temp));
b.log.AddTrans(std::move(temp2)); });
}); users.modify_if(b_name, [&temp2](User &b) {
b.log.AddTrans(std::move(temp2));
});
}
} }
return state; return state;
@ -169,7 +172,9 @@ public:
Json::Value GetLogs(const std::string &name, const std::string &attempt) Json::Value GetLogs(const std::string &name, const std::string &attempt)
{ {
Json::Value res; Json::Value res;
if (!users.if_contains(name, [&res, &attempt](const User &u) { if constexpr (max_log_size)
{
if (!users.if_contains(name, [&res, &attempt](const User &u) {
if (u.password != XXH3_64bits(attempt.data(), attempt.size())) if (u.password != XXH3_64bits(attempt.data(), attempt.size()))
{ {
res = 0; res = 0;
@ -179,8 +184,9 @@ public:
res = u.log.Serialize(); res = u.log.Serialize();
} }
})) }))
{ {
return -1; return -1;
}
} }
return res; return res;
} }
@ -227,7 +233,14 @@ public:
user_save.close(); user_save.close();
for (const auto &u : temp.getMemberNames()) for (const auto &u : temp.getMemberNames())
{ {
users.try_emplace(u, temp[u]["balance"].asUInt(), std::move(temp[u]["password"].asUInt64()), std::move(temp[u]["log"])); if constexpr(max_log_size)
{
users.try_emplace(u, temp[u]["balance"].asUInt(), std::move(temp[u]["password"].asUInt64()), std::move(temp[u]["log"]));
}
else
{
users.try_emplace(u, temp[u]["balance"].asUInt(), std::move(temp[u]["password"].asUInt64()), std::move(temp[u]["log"]));
}
} }
} }
} }