summaryrefslogtreecommitdiff
path: root/modules/nickserv/ns_set_misc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nickserv/ns_set_misc.cpp')
-rw-r--r--modules/nickserv/ns_set_misc.cpp28
1 files changed, 20 insertions, 8 deletions
diff --git a/modules/nickserv/ns_set_misc.cpp b/modules/nickserv/ns_set_misc.cpp
index 90d463fff..c7606cf85 100644
--- a/modules/nickserv/ns_set_misc.cpp
+++ b/modules/nickserv/ns_set_misc.cpp
@@ -43,15 +43,25 @@ struct NSMiscData final
name = n;
data = d;
}
+};
+
+struct NSMiscDataType final
+ : Serialize::Type
+{
+ NSMiscDataType()
+ : Serialize::Type("NSMiscData")
+ {
+ }
- void Serialize(Serialize::Data &sdata) const override
+ void Serialize(const Serializable *obj, Serialize::Data &sdata) const override
{
- sdata.Store("nc", this->object);
- sdata.Store("name", this->name);
- sdata.Store("data", this->data);
+ const auto *d = static_cast<const NSMiscData *>(obj);
+ sdata.Store("nc", 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 snc, sname, sdata;
@@ -185,11 +195,13 @@ class NSSetMisc final
{
CommandNSSetMisc commandnssetmisc;
CommandNSSASetMisc commandnssasetmisc;
- Serialize::Type nsmiscdata_type;
+ NSMiscDataType nsmiscdata_type;
public:
- NSSetMisc(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, VENDOR),
- commandnssetmisc(this), commandnssasetmisc(this), nsmiscdata_type("NSMiscData", NSMiscData::Unserialize)
+ NSSetMisc(const Anope::string &modname, const Anope::string &creator)
+ : Module(modname, creator, VENDOR)
+ , commandnssetmisc(this)
+ , commandnssasetmisc(this)
{
me = this;
}