Bug 1824490 - Use the end page value rather than the start page value of the previous...
[gecko.git] / xpcom / string / nsStringFwd.h
blobf7375451634f88e7006463dc9254c157f42bb3e1
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 */
9 #ifndef nsStringFwd_h
10 #define nsStringFwd_h
12 #include "nscore.h"
14 static constexpr int32_t kNotFound = -1;
16 namespace mozilla {
17 namespace detail {
19 template <typename T>
20 class nsTStringRepr;
22 using nsStringRepr = nsTStringRepr<char16_t>;
23 using nsCStringRepr = nsTStringRepr<char>;
25 } // namespace detail
26 } // namespace mozilla
28 static const size_t AutoStringDefaultStorageSize = 64;
30 template <typename T>
31 class nsTSubstring;
32 template <typename T>
33 class nsTSubstringTuple;
34 template <typename T>
35 class nsTString;
36 template <typename T, size_t N>
37 class nsTAutoStringN;
38 template <typename T>
39 class nsTDependentString;
40 template <typename T>
41 class nsTDependentSubstring;
42 template <typename T>
43 class nsTPromiseFlatString;
44 template <typename T>
45 class nsTLiteralString;
46 template <typename T>
47 class nsTSubstringSplitter;
49 template <typename T>
50 using nsTStringComparator = int (*)(const T*, const T*, size_t, size_t);
52 // The default string comparator (case-sensitive comparision)
53 template <typename T>
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.
59 template <typename T>
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>;
68 template <size_t N>
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>;
83 template <size_t N>
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) */