#ifndef ICACHE_H
#define ICACHE_H
#include <string>
#include <string_view>
#include <optional>
#include "../utils.h"
class ICache
{
public:
	virtual std::optional<std::string> get(std::string_view key) const = 0;
	virtual void put(std::string_view key, std::string val) = 0;
	virtual void remove(std::string_view key) = 0;
	virtual void removePrefix(std::string_view prefix) = 0;
	virtual void clear() = 0;
	virtual ~ICache() { }
};

#endif // ICACHE_H