1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /* nsStringFwd.h --- forward declarations for string classes */
14 static constexpr int32_t kNotFound
= -1;
22 using nsStringRepr
= nsTStringRepr
<char16_t
>;
23 using nsCStringRepr
= nsTStringRepr
<char>;
26 } // namespace mozilla
28 static const size_t AutoStringDefaultStorageSize
= 64;
33 class nsTSubstringTuple
;
36 template <typename T
, size_t N
>
39 class nsTDependentString
;
41 class nsTDependentSubstring
;
43 class nsTPromiseFlatString
;
45 class nsTLiteralString
;
47 class nsTSubstringSplitter
;
50 using nsTStringComparator
= int (*)(const T
*, const T
*, size_t, size_t);
52 // The default string comparator (case-sensitive comparision)
54 int nsTDefaultStringComparator(const T
*, const T
*, size_t, size_t);
56 // We define this version without a size param instead of providing a
57 // default value for N so that so there is a default typename that doesn't
58 // require angle brackets.
60 using nsTAutoString
= nsTAutoStringN
<T
, AutoStringDefaultStorageSize
>;
62 // Double-byte (char16_t) string types.
64 using nsAString
= nsTSubstring
<char16_t
>;
65 using nsSubstringTuple
= nsTSubstringTuple
<char16_t
>;
66 using nsString
= nsTString
<char16_t
>;
67 using nsAutoString
= nsTAutoString
<char16_t
>;
69 using nsAutoStringN
= nsTAutoStringN
<char16_t
, N
>;
70 using nsDependentString
= nsTDependentString
<char16_t
>;
71 using nsDependentSubstring
= nsTDependentSubstring
<char16_t
>;
72 using nsPromiseFlatString
= nsTPromiseFlatString
<char16_t
>;
73 using nsStringComparator
= nsTStringComparator
<char16_t
>;
74 using nsLiteralString
= nsTLiteralString
<char16_t
>;
75 using nsSubstringSplitter
= nsTSubstringSplitter
<char16_t
>;
77 // Single-byte (char) string types.
79 using nsACString
= nsTSubstring
<char>;
80 using nsCSubstringTuple
= nsTSubstringTuple
<char>;
81 using nsCString
= nsTString
<char>;
82 using nsAutoCString
= nsTAutoString
<char>;
84 using nsAutoCStringN
= nsTAutoStringN
<char, N
>;
85 using nsDependentCString
= nsTDependentString
<char>;
86 using nsDependentCSubstring
= nsTDependentSubstring
<char>;
87 using nsPromiseFlatCString
= nsTPromiseFlatString
<char>;
88 using nsCStringComparator
= nsTStringComparator
<char>;
89 using nsLiteralCString
= nsTLiteralString
<char>;
90 using nsCSubstringSplitter
= nsTSubstringSplitter
<char>;
92 #endif /* !defined(nsStringFwd_h) */