// SPDX-License-Identifier: MIT
#pragma once
#include <ostream>
#include <plugin/Plugin.hh>
namespace plugin
{
namespace example
{
class Shape
: public Plugin< Shape >
{
public:
Shape( ) = default;
virtual void setSize( unsigned int value ) = 0;
virtual unsigned int getSize( ) const = 0;
virtual void printOn( std::ostream& stream ) const = 0;
};
} // namespace example
} // namespace plugin
inline std::ostream& operator<<( std::ostream& stream, plugin::example::Shape& object )
{
object.printOn( stream );
return stream;
}