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)15061da546Spatrickbool 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