xref: /freebsd/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/NSString.h (revision 700637cbb5e582861067a11aaca4d053546871d2)
1 //===-- NSString.h ---------------------------------------------------*- C++
2 //-*-===//
3 //
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_NSSTRING_H
11 #define LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_NSSTRING_H
12 
13 #include "lldb/DataFormatters/TypeSummary.h"
14 #include "lldb/Utility/Stream.h"
15 #include "lldb/ValueObject/ValueObject.h"
16 
17 #include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"
18 
19 namespace lldb_private {
20 namespace formatters {
21 bool NSStringSummaryProvider(ValueObject &valobj, Stream &stream,
22                              const TypeSummaryOptions &options);
23 
24 bool NSTaggedString_SummaryProvider(
25     ValueObject &valobj, ObjCLanguageRuntime::ClassDescriptorSP descriptor,
26     Stream &stream, const TypeSummaryOptions &summary_options);
27 
28 bool NSIndirectTaggedString_SummaryProvider(
29     ValueObject &valobj, ObjCLanguageRuntime::ClassDescriptorSP descriptor,
30     Stream &stream, const TypeSummaryOptions &summary_options);
31 
32 bool NSAttributedStringSummaryProvider(ValueObject &valobj, Stream &stream,
33                                        const TypeSummaryOptions &options);
34 
35 bool NSMutableAttributedStringSummaryProvider(
36     ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options);
37 
38 class NSString_Additionals {
39 public:
40   static std::map<ConstString, CXXFunctionSummaryFormat::Callback> &
41   GetAdditionalSummaries();
42 };
43 } // namespace formatters
44 } // namespace lldb_private
45 
46 #endif // LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_NSSTRING_H
47