#pragma once #include #include #include namespace mln { namespace style { class CustomLayer final : public Layer { public: CustomLayer(const std::string& id, std::unique_ptr host); CustomLayer(const CustomLayer&) = delete; ~CustomLayer() final; class Impl; const Impl& impl() const; Mutable mutableImpl() const; private: std::optional setPropertyInternal(const std::string& name, const conversion::Convertible& value) final; StyleProperty getProperty(const std::string&) const final; std::unique_ptr cloneRef(const std::string& id) const final; Mutable mutableBaseImpl() const final; }; } // namespace style } // namespace mln