#pragma once #include #include #include namespace mbgl::style { class RasterArraySource::Impl final : public Source::Impl { public: Impl(std::string id, std::string fixtureID_, std::string metadataURL_, std::string fieldURL_, std::string nextFixtureID_ = {}, std::string nextMetadataURL_ = {}, std::string nextFieldURL_ = {}, std::vector runtimeFields_ = {}) : Source::Impl(SourceType::RasterArray, std::move(id)), fixtureID(std::move(fixtureID_)), metadataURL(std::move(metadataURL_)), fieldURL(std::move(fieldURL_)), nextFixtureID(std::move(nextFixtureID_)), nextMetadataURL(std::move(nextMetadataURL_)), nextFieldURL(std::move(nextFieldURL_)), runtimeFields(std::move(runtimeFields_)) {} Impl(const Impl&) = default; Impl(const Impl& other, particle::ParticleFieldSnapshot field_) : Source::Impl(other), fixtureID(other.fixtureID), metadataURL(other.metadataURL), fieldURL(other.fieldURL), nextFixtureID(other.nextFixtureID), nextMetadataURL(other.nextMetadataURL), nextFieldURL(other.nextFieldURL), runtimeFields(other.runtimeFields), field(std::move(field_)) {} Impl(const Impl& other, particle::ParticleFieldSnapshot field_, particle::ParticleFieldSnapshot nextField_) : Impl(other, std::move(field_)) { nextField = std::move(nextField_); } std::optional getAttribution() const override { return {}; } std::string fixtureID; std::string metadataURL; std::string fieldURL; std::string nextFixtureID; std::string nextMetadataURL; std::string nextFieldURL; std::vector runtimeFields; std::optional field; std::optional nextField; }; } // namespace mbgl::style