From 553000673acf7297cfa4de620290ba73f3c438ac Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 4 Dec 2015 14:47:28 +0100 Subject: Reduced boilerplate for buffer mapping --- common/propertymapper.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'common/propertymapper.h') diff --git a/common/propertymapper.h b/common/propertymapper.h index 87c7485..98ad397 100644 --- a/common/propertymapper.h +++ b/common/propertymapper.h @@ -98,6 +98,17 @@ public: void addMapping(const QByteArray &property, const std::function(const QVariant &, flatbuffers::FlatBufferBuilder &)> &mapping) { mWriteAccessors.insert(property, mapping); } + + template + void addMapping(const QByteArray &name, void (BufferBuilder::*f)(flatbuffers::Offset)) + { + addMapping(name, [f](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function { + auto offset = variantToProperty(value, fbb); + return [offset, f](BufferBuilder &builder) { + (builder.*f)(offset); + }; + }); + } private: QHash(const QVariant &, flatbuffers::FlatBufferBuilder &)> > mWriteAccessors; }; -- cgit v1.2.3