1*dda28197Spatrick //===-- NameMatches.cpp ---------------------------------------------------===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick #include "lldb/Utility/NameMatches.h"
9061da546Spatrick #include "lldb/Utility/RegularExpression.h"
10061da546Spatrick 
11061da546Spatrick #include "llvm/ADT/StringRef.h"
12061da546Spatrick 
13061da546Spatrick using namespace lldb_private;
14061da546Spatrick 
NameMatches(llvm::StringRef name,NameMatch match_type,llvm::StringRef match)15061da546Spatrick bool lldb_private::NameMatches(llvm::StringRef name, NameMatch match_type,
16061da546Spatrick                                llvm::StringRef match) {
17061da546Spatrick   switch (match_type) {
18061da546Spatrick   case NameMatch::Ignore:
19061da546Spatrick     return true;
20061da546Spatrick   case NameMatch::Equals:
21061da546Spatrick     return name == match;
22061da546Spatrick   case NameMatch::Contains:
23061da546Spatrick     return name.contains(match);
24061da546Spatrick   case NameMatch::StartsWith:
25061da546Spatrick     return name.startswith(match);
26061da546Spatrick   case NameMatch::EndsWith:
27061da546Spatrick     return name.endswith(match);
28061da546Spatrick   case NameMatch::RegularExpression: {
29061da546Spatrick     RegularExpression regex(match);
30061da546Spatrick     return regex.Execute(name);
31061da546Spatrick   }
32061da546Spatrick   }
33061da546Spatrick   return false;
34061da546Spatrick }
35