ESP8266_swiss_army_board/src/app/ListInterface.h

36 lines
893 B
C++

/**
* @file ListInterface.h
* @author Anatole SCHRAMM-HENRY
* @brief Interface defining all the needed function of a List type object
* @version 0.1
* @date 2025-10-29
*
* @copyright MIT
*
*/
#ifndef LISTINTERFACE__H
#define LISTINTERFACE__H
template <typename T>
class ListInterface
{
public:
virtual boolean addFirst(T element) = 0;
virtual boolean add(T element) = 0;
virtual T remove(size_t index) = 0;
virtual T removeFirst() = 0;
virtual T removeLast() = 0;
virtual T get(size_t index) = 0;
virtual T operator[](size_t index) = 0;
virtual T getFirst() = 0;
virtual T getLast() = 0;
virtual int64_t contains(T element) = 0;
virtual size_t count() = 0;
virtual size_t clear() = 0;
virtual size_t dispose() = 0;
protected:
private:
};
#endif //LISTINTERFACE__H