summaryrefslogtreecommitdiff
path: root/src/storage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/storage.cpp')
-rw-r--r--src/storage.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/storage.cpp b/src/storage.cpp
index 19f35a9..fd985c7 100644
--- a/src/storage.cpp
+++ b/src/storage.cpp
@@ -1579,6 +1579,21 @@ optional<ObjectT<S>> ObjectT<S>::decode(const S & st,
return nullopt;
}
+template< class S >
+vector< ObjectT< S >> ObjectT< S >::decodeMany( const S & st,
+ const std::vector< uint8_t > & data)
+{
+ vector< ObjectT< S >> objects;
+ auto cur = data.begin();
+
+ while( auto pair = decodePrefix( st, cur, data.end() )) {
+ auto [ obj, next ] = *pair;
+ objects.push_back( move( obj ));
+ cur = next;
+ }
+ return objects;
+}
+
template<class S>
vector<uint8_t> ObjectT<S>::encode() const
{