Skip to content

src/storage/trie/serialization/trie_serializer.hpp

Namespaces

Name
sgns
sgns::storage
sgns::storage::trie

Classes

Name
class sgns::storage::trie::TrieSerializer

Source code

#ifndef SUPERGENIUS_STORAGE_SUPERGENIUS_TRIE_SERIALIZER
#define SUPERGENIUS_STORAGE_SUPERGENIUS_TRIE_SERIALIZER

#include "outcome/outcome.hpp"
#include "storage/trie/supergenius_trie/supergenius_trie.hpp"
#include "singleton/IComponent.hpp"

namespace sgns::storage::trie {

  class TrieSerializer : public IComponent{
   public:
       ~TrieSerializer() override = default;

    virtual base::Buffer getEmptyRootHash() const = 0;

    virtual outcome::result<base::Buffer> storeTrie(SuperGeniusTrie &trie) = 0;

    virtual outcome::result<std::unique_ptr<SuperGeniusTrie>> retrieveTrie(
        const base::Buffer &db_key) const = 0;
  };

}  // namespace sgns::storage::trie

#endif  // SUPERGENIUS_STORAGE_SUPERGENIUS_TRIE_SERIALIZER

Updated on 2026-03-04 at 13:10:45 -0800