.. _program_listing_file_include_util_db_keyvalue_BackendConcept.hpp: Program Listing for File BackendConcept.hpp =========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include\util\db\keyvalue\BackendConcept.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "util/common/Result.hpp" #include "util/db/DbTypes.hpp" #include #include #include #include namespace PDJE_UTIL::db::keyvalue { template concept KeyValueBackendConcept = requires(typename Backend::config_type cfg, Backend backend, std::string_view key, std::span bytes, std::string_view text) { typename Backend::config_type; { Backend::create(cfg) } -> std::same_as>; { Backend::destroy(cfg) } -> std::same_as>; { backend.open(cfg) } -> std::same_as>; { backend.close() } -> std::same_as>; { backend.contains(key) } -> std::same_as>; { backend.get_text(key) } -> std::same_as>; { backend.get_bytes(key) } -> std::same_as>; { backend.put_text(key, text) } -> std::same_as>; { backend.put_bytes(key, bytes) } -> std::same_as>; { backend.erase(key) } -> std::same_as>; { backend.list_keys(std::string_view {}) } -> std::same_as>>; }; } // namespace PDJE_UTIL::db::keyvalue