123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*
- * 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.
- */
- #pragma once
- #include <limits>
- #include <memory>
- #include <string>
- #include <vector>
- #include <react/debug/DebugStringConvertible.h>
- #include <react/debug/DebugStringConvertibleItem.h>
- namespace facebook {
- namespace react {
- #if RN_DEBUG_STRING_CONVERTIBLE
- template <typename T>
- inline SharedDebugStringConvertible
- debugStringConvertibleItem(std::string name, T value, T defaultValue = {}) {
- if (value == defaultValue) {
- return nullptr;
- }
- return std::make_shared<DebugStringConvertibleItem>(name, toString(value));
- }
- template <typename T>
- inline SharedDebugStringConvertible debugStringConvertibleItem(
- std::string name,
- folly::Optional<T> value,
- T defaultValue = {}) {
- if (!value.hasValue()) {
- return nullptr;
- }
- return debugStringConvertibleItem(
- name, value.value_or(defaultValue), defaultValue);
- }
- inline SharedDebugStringConvertibleList operator+(
- const SharedDebugStringConvertibleList &lhs,
- const SharedDebugStringConvertibleList &rhs) {
- auto result = SharedDebugStringConvertibleList{};
- std::move(lhs.begin(), lhs.end(), std::back_inserter(result));
- std::move(rhs.begin(), rhs.end(), std::back_inserter(result));
- return result;
- }
- inline SharedDebugStringConvertible debugStringConvertibleItem(
- std::string name,
- DebugStringConvertible value,
- std::string defaultValue) {
- return debugStringConvertibleItem(
- name, value.getDebugDescription(), defaultValue);
- }
- #endif
- } // namespace react
- } // namespace facebook
|