[serializer] Add serialize_copy()
diff --git a/src/hb-open-type.hh b/src/hb-open-type.hh
index bde0596..17e8d2a 100644
--- a/src/hb-open-type.hh
+++ b/src/hb-open-type.hh
@@ -305,6 +305,20 @@
     return ret;
   }
 
+  template <typename T>
+  bool serialize_copy (hb_serialize_context_t *c, const T &src, const void *base)
+  {
+    *this = 0;
+    if (has_null && &src == &Null (T))
+      return false;
+
+    c->push ();
+
+    c->copy (src);
+
+    c->add_link (*this, c->pop_pack (), base);
+  }
+
   bool sanitize_shallow (hb_sanitize_context_t *c, const void *base) const
   {
     TRACE_SANITIZE (this);