]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
include/denc.h: add helpers for size of encoded bl
authorSamuel Just <sjust@redhat.com>
Wed, 22 Jan 2020 22:25:11 +0000 (14:25 -0800)
committerSamuel Just <sjust@redhat.com>
Thu, 7 May 2020 06:40:14 +0000 (23:40 -0700)
Includes a constexpr variant for bounded types.

Signed-off-by: Samuel Just <sjust@redhat.com>
src/include/denc.h

index dfd5e923d388132aba3013790e24c6841f6819cb..a7dd3cca4ff2b8e37cab29fcb8713e68d79f0b99 100644 (file)
@@ -1536,6 +1536,29 @@ struct denc_traits<std::nullopt_t> {
     }                                                                  \
   };
 
+// ----------------------------------------------------------------------
+// encoded_sizeof_wrapper
+
+namespace ceph {
+
+template <typename T, typename traits=denc_traits<T>>
+constexpr std::enable_if_t<traits::supported && traits::bounded, size_t>
+encoded_sizeof_bounded() {
+  size_t p = 0;
+  traits::bound_encode(T(), p);
+  return p;
+}
+
+template <typename T, typename traits=denc_traits<T>>
+std::enable_if_t<traits::supported, size_t>
+encoded_sizeof(const T &t) {
+  size_t p = 0;
+  traits::bound_encode(t, p);
+  return p;
+}
+
+} // namespace ceph
+
 
 // ----------------------------------------------------------------------
 // encode/decode wrappers