1 #pragma once
2 
3 #include <mbgl/style/source.hpp>
4 #include <mbgl/util/noncopyable.hpp>
5 
6 #include <string>
7 
8 namespace mbgl {
9 
10 class RenderSource;
11 
12 namespace style {
13 
14 class SourceObserver;
15 
16 class Source::Impl {
17 public:
18     virtual ~Impl() = default;
19 
20     Impl& operator=(const Impl&) = delete;
21 
22     virtual optional<std::string> getAttribution() const = 0;
23 
24     const SourceType type;
25     const std::string id;
26 
27 protected:
28     Impl(SourceType, std::string);
29     Impl(const Impl&) = default;
30 };
31 
32 } // namespace style
33 } // namespace mbgl
34