/* -*- 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 * 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/. */
template <typename T> typename nsTSubstringTuple<T>::size_type nsTSubstringTuple<T>::Length() const {
mozilla::CheckedInt<size_type> len; if (mHead) {
len = mHead->Length();
} else {
len = mFragA->Length();
}
len += mFragB->Length();
MOZ_RELEASE_ASSERT(len.isValid(), "Substring tuple length is invalid"); return len.value();
}
/** * writes the aggregate string to the given buffer. aBufLen is assumed * to be equal to or greater than the value returned by the Length() * method. the string written to |aBuf| is not null-terminated.
*/
/** * returns true if this tuple is dependent on (i.e., overlapping with) * the given char sequence.
*/
template <typename T> bool nsTSubstringTuple<T>::IsDependentOn(const char_type* aStart, const char_type* aEnd) const { // we start with the right-most fragment since it is faster to check.
if (mFragB->IsDependentOn(aStart, aEnd)) { returntrue;
}
if (mHead) { return mHead->IsDependentOn(aStart, aEnd);
}
return mFragA->IsDependentOn(aStart, aEnd);
}
template <typename T> auto nsTSubstringTuple<T>::IsDependentOnWithLength(const char_type* aStart, const char_type* aEnd) const
-> std::pair<bool, size_type> { // we start with the right-most fragment since it is faster to check for // dependency. constbool rightDependentOn = mFragB->IsDependentOn(aStart, aEnd);
if (rightDependentOn) { return {true, Length()};
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.