47 lines · c
1//===-- tools/extra/clang-reorder-fields/ReorderFieldsAction.h -*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8///9/// \file10/// This file contains the declarations of the ReorderFieldsAction class and11/// the FieldPosition struct.12///13//===----------------------------------------------------------------------===//14 15#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_REORDER_FIELDS_ACTION_H16#define LLVM_CLANG_TOOLS_EXTRA_CLANG_REORDER_FIELDS_ACTION_H17 18#include "clang/Tooling/Refactoring.h"19 20namespace clang {21class ASTConsumer;22 23namespace reorder_fields {24 25class ReorderFieldsAction {26 llvm::StringRef RecordName;27 llvm::ArrayRef<std::string> DesiredFieldsOrder;28 std::map<std::string, tooling::Replacements> &Replacements;29 30public:31 ReorderFieldsAction(32 llvm::StringRef RecordName,33 llvm::ArrayRef<std::string> DesiredFieldsOrder,34 std::map<std::string, tooling::Replacements> &Replacements)35 : RecordName(RecordName), DesiredFieldsOrder(DesiredFieldsOrder),36 Replacements(Replacements) {}37 38 ReorderFieldsAction(const ReorderFieldsAction &) = delete;39 ReorderFieldsAction &operator=(const ReorderFieldsAction &) = delete;40 41 std::unique_ptr<ASTConsumer> newASTConsumer();42};43} // namespace reorder_fields44} // namespace clang45 46#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_REORDER_FIELDS_ACTION_H47