#include #include #include namespace mbgl { namespace style { CustomLayer::CustomLayer(const std::string& layerID, std::unique_ptr host) : Layer(makeMutable(layerID, std::move(host))) { } CustomLayer::~CustomLayer() = default; const CustomLayer::Impl& CustomLayer::impl() const { return static_cast(*baseImpl); } Mutable CustomLayer::mutableImpl() const { return makeMutable(impl()); } std::unique_ptr CustomLayer::cloneRef(const std::string&) const { assert(false); return nullptr; } using namespace conversion; optional CustomLayer::setPaintProperty(const std::string&, const Convertible&) { return Error { "layer doesn't support this property" }; } optional CustomLayer::setLayoutProperty(const std::string&, const Convertible&) { return Error { "layer doesn't support this property" }; } Mutable CustomLayer::mutableBaseImpl() const { return staticMutableCast(mutableImpl()); } template <> bool Layer::is() const { return getType() == LayerType::Custom; } } // namespace style } // namespace mbgl