Source code
Revision control
Copy as Markdown
Other Tools
/* 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
#include "mozilla/intl/BidiEmbeddingLevel.h"
#include "mozilla/Casting.h"
#include "mozilla/intl/ICU4CGlue.h"
namespace mozilla::intl {
bool BidiEmbeddingLevel::IsDefaultLTR() const { return *this == DefaultLTR(); };
bool BidiEmbeddingLevel::IsDefaultRTL() const { return *this == DefaultRTL(); };
bool BidiEmbeddingLevel::IsRTL() const {
// If the least significant bit is 1, then the embedding level
// is right-to-left.
// If the least significant bit is 0, then the embedding level
// is left-to-right.
return (mValue & 0x1) == 1;
};
bool BidiEmbeddingLevel::IsLTR() const { return !IsRTL(); };
bool BidiEmbeddingLevel::IsSameDirection(BidiEmbeddingLevel aOther) const {
return (((mValue ^ aOther) & 1) == 0);
}
BidiEmbeddingLevel BidiEmbeddingLevel::LTR() { return BidiEmbeddingLevel(0); };
BidiEmbeddingLevel BidiEmbeddingLevel::RTL() { return BidiEmbeddingLevel(1); };
BidiEmbeddingLevel BidiEmbeddingLevel::DefaultLTR() {
return BidiEmbeddingLevel(kDefaultLTR);
};
BidiEmbeddingLevel BidiEmbeddingLevel::DefaultRTL() {
return BidiEmbeddingLevel(kDefaultRTL);
};
BidiDirection BidiEmbeddingLevel::Direction() {
return IsRTL() ? BidiDirection::RTL : BidiDirection::LTR;
};
uint8_t BidiEmbeddingLevel::Value() const { return mValue; }
} // namespace mozilla::intl