DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (c68fe15a81fc)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* nsStringFwd.h --- forward declarations for string classes */


#ifndef nsStringFwd_h
#define nsStringFwd_h

#include "nscore.h"


namespace mozilla {
namespace detail {

template <typename T>
class nsTStringRepr;
class nsTStringRepr;

using nsStringRepr = nsTStringRepr<char16_t>;
using nsCStringRepr = nsTStringRepr<char>;

}  // namespace detail
}  // namespace detail
}  // namespace mozilla

static const size_t AutoStringDefaultStorageSize = 64;

template <typename T>
class nsTSubstring;
class nsTSubstring;
template <typename T>
class nsTSubstringTuple;
template <typename T>
class nsTString;
template <typename T, size_t N>
template <typename T, size_t N>
class nsTAutoStringN;
template <typename T>
class nsTDependentString;
template <typename T>
class nsTDependentSubstring;
template <typename T>
class nsTPromiseFlatString;
class nsTPromiseFlatString;
template <typename T>
class nsTLiteralString;
template <typename T>
class nsTSubstringSplitter;
template <typename T>

template <typename T>
using nsTStringComparator = int (*)(const T*, const T*, uint32_t, uint32_t);

// The default string comparator (case-sensitive comparision)
// We define this version without a size param instead of providing a
template <typename T>
int nsTDefaultStringComparator(const T*, const T*, uint32_t, uint32_t);

// We define this version without a size param instead of providing a
// default value for N so that so there is a default typename that doesn't
// require angle brackets.

// Double-byte (char16_t) string types.
template <typename T>
using nsTAutoString = nsTAutoStringN<T, AutoStringDefaultStorageSize>;

// Double-byte (char16_t) string types.

using nsAutoString = nsTAutoString<char16_t>;
using nsAString = nsTSubstring<char16_t>;
using nsSubstringTuple = nsTSubstringTuple<char16_t>;
using nsString = nsTString<char16_t>;
using nsAutoString = nsTAutoString<char16_t>;
template <size_t N>
using nsPromiseFlatString = nsTPromiseFlatString<char16_t>;
using nsAutoStringN = nsTAutoStringN<char16_t, N>;
using nsDependentString = nsTDependentString<char16_t>;
using nsDependentSubstring = nsTDependentSubstring<char16_t>;
using nsPromiseFlatString = nsTPromiseFlatString<char16_t>;
using nsStringComparator = nsTStringComparator<char16_t>;

using nsLiteralString = nsTLiteralString<char16_t>;
using nsSubstringSplitter = nsTSubstringSplitter<char16_t>;

// Single-byte (char) string types.
using nsCSubstringTuple = nsTSubstringTuple<char>;

using nsACString = nsTSubstring<char>;
using nsCSubstringTuple = nsTSubstringTuple<char>;
using nsCString = nsTString<char>;
using nsAutoCString = nsTAutoString<char>;
using nsDependentCString = nsTDependentString<char>;
template <size_t N>
using nsAutoCStringN = nsTAutoStringN<char, N>;
using nsDependentCString = nsTDependentString<char>;
using nsDependentCSubstring = nsTDependentSubstring<char>;
using nsPromiseFlatCString = nsTPromiseFlatString<char>;
using nsCStringComparator = nsTStringComparator<char>;
using nsLiteralCString = nsTLiteralString<char>;
using nsLiteralCString = nsTLiteralString<char>;
using nsCSubstringSplitter = nsTSubstringSplitter<char>;

#endif /* !defined(nsStringFwd_h) */