summaryrefslogtreecommitdiff
path: root/modules/chanserv/cs_set_misc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/chanserv/cs_set_misc.cpp')
-rw-r--r--modules/chanserv/cs_set_misc.cpp27
1 files changed, 19 insertions, 8 deletions
diff --git a/modules/chanserv/cs_set_misc.cpp b/modules/chanserv/cs_set_misc.cpp
index 4439589a8..71afbe942 100644
--- a/modules/chanserv/cs_set_misc.cpp
+++ b/modules/chanserv/cs_set_misc.cpp
@@ -44,15 +44,25 @@ struct CSMiscData final
name = n;
data = d;
}
+};
+
+struct CSMiscDataType
+ : Serialize::Type
+{
+ CSMiscDataType()
+ : Serialize::Type("CSMiscData")
+ {
+ }
- void Serialize(Serialize::Data &sdata) const override
+ void Serialize(const Serializable *obj, Serialize::Data &sdata) const override
{
- sdata.Store("ci", this->object);
- sdata.Store("name", this->name);
- sdata.Store("data", this->data);
+ const auto *d = static_cast<const CSMiscData *>(obj);
+ sdata.Store("ci", d->object);
+ sdata.Store("name", d->name);
+ sdata.Store("data", d->data);
}
- static Serializable *Unserialize(Serializable *obj, Serialize::Data &data)
+ Serializable *Unserialize(Serializable *obj, Serialize::Data &data) const override
{
Anope::string sci, sname, sdata;
@@ -172,11 +182,12 @@ class CSSetMisc final
: public Module
{
CommandCSSetMisc commandcssetmisc;
- Serialize::Type csmiscdata_type;
+ CSMiscDataType csmiscdata_type;
public:
- CSSetMisc(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, VENDOR),
- commandcssetmisc(this), csmiscdata_type("CSMiscData", CSMiscData::Unserialize)
+ CSSetMisc(const Anope::string &modname, const Anope::string &creator)
+ : Module(modname, creator, VENDOR)
+ , commandcssetmisc(this)
{
me = this;
}