1 //===-- tools/extra/clang-reorder-fields/ReorderFieldsAction.h -*- C++ -*-===//
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-exception
7 //===----------------------------------------------------------------------===//
10 /// This file contains the declarations of the ReorderFieldsAction class and
11 /// the FieldPosition struct.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_REORDER_FIELDS_ACTION_H
16 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_REORDER_FIELDS_ACTION_H
18 #include "clang/Tooling/Refactoring.h"
23 namespace reorder_fields
{
25 class ReorderFieldsAction
{
26 llvm::StringRef RecordName
;
27 llvm::ArrayRef
<std::string
> DesiredFieldsOrder
;
28 std::map
<std::string
, tooling::Replacements
> &Replacements
;
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
) {}
38 ReorderFieldsAction(const ReorderFieldsAction
&) = delete;
39 ReorderFieldsAction
&operator=(const ReorderFieldsAction
&) = delete;
41 std::unique_ptr
<ASTConsumer
> newASTConsumer();
43 } // namespace reorder_fields
46 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_REORDER_FIELDS_ACTION_H