/* * Copyright (c) 2019-2020, Sergey Bugaev * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include class History final { public: void push(const StringView& history_item); String current(); void go_back(); void go_forward(); bool can_go_back() { return m_current_history_item > 0; } bool can_go_forward() { return m_current_history_item + 1 < static_cast(m_items.size()); } void clear(); private: Vector m_items; int m_current_history_item { -1 }; };