#pragma once #include #include namespace mbgl { class AnnotationSource final : public style::Source { public: AnnotationSource(); class Impl; const Impl& impl() const; protected: Mutable createMutable() const noexcept final; private: void loadDescription(FileSource&) final; bool supportsLayerType(const mbgl::style::LayerTypeInfo*) const override; mapbox::base::WeakPtr makeWeakPtr() override { return weakFactory.makeWeakPtr(); } mapbox::base::WeakPtrFactory weakFactory {this}; }; class AnnotationSource::Impl : public style::Source::Impl { public: Impl(); optional getAttribution() const final; }; } // namespace mbgl