// _____ _ _____ // |_ _|____ _| ||_ _|_ __ // | |/ _ \ \/ / __|| | \ \ / / // | | __/> <| |_ | | \ V / // |_|\___/_/\_\\__||_| \_/ // Author: Love Billenius // License: GPL-3 #include "Pager.hpp" Page &Pager::seek(const int number) { Page &page = get_page_at(number); m_page_number = number; return page; } Pager &Pager::operator+=(const int number) { seek(m_page_number + number); return *this; } Pager &Pager::operator-=(const int number) { seek(m_page_number - number); return *this; } Page &Pager::operator*() { return get_page_at(m_page_number); } Page *Pager::operator->() { return &get_page_at(m_page_number); } void Pager::set(const int number) { m_page_number = number; } void Pager::clear() { m_pages.clear(); } Page &Pager::get_page_at(const int number) { if (!m_pages.contains(number)) { const Page p(number); m_pages[number] = p; } return m_pages.at(number); }