mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
450fa4d1d3
Summary: Folly's molly target combines a number of targets that are supposed to be useable on mobile. Since we're trying to move away from folly, we should instead list explicitly which parts of folly we're using so we can remove them over time, and track which targets no longer have any folly dependencies. Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D38352060 fbshipit-source-id: 09d0d84793692f97f4d49390c99c38b23441df54
56 lines
1.6 KiB
C++
56 lines
1.6 KiB
C++
/*
|
|
* Copyright (c) Meta Platforms, Inc. and 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 <folly/Hash.h>
|
|
#include <limits>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
/*
|
|
* Type used to represent an index of some stored values in small arrays.
|
|
*/
|
|
using RawPropsValueIndex = uint8_t;
|
|
static_assert(
|
|
sizeof(RawPropsValueIndex) == 1,
|
|
"RawPropsValueIndex must be one byte size.");
|
|
using RawPropsPropNameLength = uint8_t;
|
|
using RawPropsPropNameHash = uint32_t;
|
|
|
|
/*
|
|
* The number which is *usually* bigger than a number of explicitly specified
|
|
* props for some component.
|
|
*/
|
|
constexpr static int kNumberOfExplicitlySpecifedPropsSoftCap = 16;
|
|
|
|
/*
|
|
* Special value of `RawPropsValueIndex` which is used to represent `no value`.
|
|
*/
|
|
constexpr static RawPropsValueIndex kRawPropsValueIndexEmpty =
|
|
std::numeric_limits<RawPropsValueIndex>::max();
|
|
|
|
/*
|
|
* The number of props that usually more than `*Props` classes have.
|
|
* Should be roughly equal to the number of props inside `ViewProps` plus
|
|
* about twenty. It's okay if some `*Props` class has more than this amount of
|
|
* props but the majority of those classes should be below this cap.
|
|
*/
|
|
constexpr static auto kNumberOfPropsPerComponentSoftCap = 150;
|
|
|
|
/*
|
|
* The maximum length of the prop name.
|
|
* To process prop names efficiently we have to allocate the memory statically,
|
|
* therefore we have to have a hard limit.
|
|
* Can be increased up to 254.
|
|
*/
|
|
constexpr static auto kPropNameLengthHardCap = 64;
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|