1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /*
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- #include "AttributedStringBox.h"
- namespace facebook {
- namespace react {
- AttributedStringBox::AttributedStringBox()
- : mode_(Mode::Value),
- value_(std::make_shared<AttributedString const>(AttributedString{})),
- opaquePointer_({}){};
- AttributedStringBox::AttributedStringBox(AttributedString const &value)
- : mode_(Mode::Value),
- value_(std::make_shared<AttributedString const>(value)),
- opaquePointer_({}){};
- AttributedStringBox::AttributedStringBox(
- std::shared_ptr<void> const &opaquePointer)
- : mode_(Mode::OpaquePointer), value_({}), opaquePointer_(opaquePointer) {}
- AttributedStringBox::Mode AttributedStringBox::getMode() const {
- return mode_;
- }
- AttributedString const &AttributedStringBox::getValue() const {
- assert(mode_ == AttributedStringBox::Mode::Value);
- assert(value_);
- return *value_;
- }
- std::shared_ptr<void> AttributedStringBox::getOpaquePointer() const {
- assert(mode_ == AttributedStringBox::Mode::OpaquePointer);
- assert(opaquePointer_);
- return opaquePointer_;
- }
- bool operator==(
- AttributedStringBox const &lhs,
- AttributedStringBox const &rhs) {
- if (lhs.getMode() != rhs.getMode()) {
- return false;
- }
- switch (lhs.getMode()) {
- case facebook::react::AttributedStringBox::Mode::Value:
- return lhs.getValue() == rhs.getValue();
- case facebook::react::AttributedStringBox::Mode::OpaquePointer:
- return lhs.getOpaquePointer() == rhs.getOpaquePointer();
- }
- }
- bool operator!=(
- AttributedStringBox const &lhs,
- AttributedStringBox const &rhs) {
- return !(lhs == rhs);
- }
- } // namespace react
- } // namespace facebook
|