#pragma once namespace espgui { template struct AccessorInterface { virtual T getValue() const = 0; virtual void setValue(T value) = 0; }; //! A special type of AccessorInterface that allows for simple variable read/write operations //! Can be used to read and write global settings for example. template struct RefAccessor : public virtual AccessorInterface { virtual T& getRef() const = 0; T getValue() const override { return getRef(); }; void setValue(T value) override { getRef() = value; }; }; } // namespace espgui