Skip to content

src/storage/face/map_cursor.hpp

Namespaces

Name
sgns
sgns::storage
sgns::storage::face

Classes

Name
struct sgns::storage::face::MapCursor
An abstraction over generic map cursor.

Source code

#ifndef SUPERGENIUS_MAP_CURSOR_HPP
#define SUPERGENIUS_MAP_CURSOR_HPP

#include "outcome/outcome.hpp"

namespace sgns::storage::face {

  template <typename K, typename V>
  struct MapCursor {
    virtual ~MapCursor() = default;

    virtual outcome::result<void> seekToFirst() = 0;

    virtual outcome::result<void> seek(const K &key) = 0;

    virtual outcome::result<void> seekToLast() = 0;

    virtual bool isValid() const = 0;

    virtual outcome::result<void> next() = 0;

    virtual outcome::result<void> prev() = 0;

    virtual outcome::result<K> key() const = 0;

    virtual outcome::result<V> value() const = 0;
  };

}  // namespace sgns::storage::face

#endif  //SUPERGENIUS_MAP_CURSOR_HPP

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