/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SKSL_EXTENSION #define SKSL_EXTENSION #include "include/private/SkSLProgramElement.h" namespace SkSL { /** * An extension declaration. */ class Extension final : public ProgramElement { public: static constexpr Kind kProgramElementKind = Kind::kExtension; Extension(int offset, String name) : INHERITED(offset, kProgramElementKind) , fName(std::move(name)) {} const String& name() const { return fName; } std::unique_ptr clone() const override { return std::unique_ptr(new Extension(fOffset, this->name())); } String description() const override { return "#extension " + this->name() + " : enable"; } private: String fName; using INHERITED = ProgramElement; }; } // namespace SkSL #endif