| /* |
| * Copyright 2021 Google LLC. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "include/sksl/DSLCase.h" |
| |
| namespace SkSL { |
| |
| namespace dsl { |
| |
| DSLCase::DSLCase(DSLExpression value, SkSL::StatementArray statements, Position pos) |
| : fValue(std::move(value)) |
| , fStatements(std::move(statements)) |
| , fPosition(pos) {} |
| |
| DSLCase::DSLCase(DSLExpression value, SkTArray<DSLStatement> statements, Position pos) |
| : fValue(std::move(value)) |
| , fPosition(pos) { |
| fStatements.reserve_back(statements.count()); |
| for (DSLStatement& stmt : statements) { |
| fStatements.push_back(stmt.release()); |
| } |
| } |
| |
| DSLCase::DSLCase(DSLCase&& other) |
| : fValue(std::move(other.fValue)) |
| , fStatements(std::move(other.fStatements)) {} |
| |
| DSLCase::~DSLCase() {} |
| |
| DSLCase& DSLCase::operator=(DSLCase&& other) { |
| fValue.assign(std::move(other.fValue)); |
| fStatements = std::move(other.fStatements); |
| return *this; |
| } |
| |
| void DSLCase::append(DSLStatement stmt) { |
| fStatements.push_back(stmt.release()); |
| } |
| |
| } // namespace dsl |
| |
| } // namespace SkSL |