Lines Matching refs:Value
56 class alignas(8) Value {
68 * @return The type of this value.
100 * @return The string representation of this value.
106 Value implementation notes:
148 // the high bits, sizeof(T) must be less than sizeof(Value) when accessing inline payloads.
169 static_assert(sizeof (T) <= sizeof(Value), "");
170 static_assert(alignof(T) <= alignof(Value), "");
175 T* cast() { return const_cast<T*>(const_cast<const Value*>(this)->cast<T>()); }
180 static_assert(sizeof(uintptr_t) == sizeof(Value) ||
181 sizeof(uintptr_t) * 2 == sizeof(Value), "");
183 return (sizeof(uintptr_t) < sizeof(Value))
201 // The current value layout assumes LE and will take some tweaking for BE.
206 class NullValue final : public Value {
213 class BoolValue final : public Value {
225 class NumberValue final : public Value {
242 template <typename T, Value::Type vtype>
243 class VectorValue : public Value {
273 class ArrayValue final : public VectorValue<Value, Value::Type::kArray> {
275 ArrayValue(const Value* src, size_t size, SkArenaAlloc& alloc);
278 class StringValue final : public Value {
294 return this->cast<VectorValue<char, Value::Type::kString>>()->size();
303 : this->cast<VectorValue<char, Value::Type::kString>>()->begin();
309 : this->cast<VectorValue<char, Value::Type::kString>>()->end();
315 Value fValue;
318 class ObjectValue final : public VectorValue<Member, Value::Type::kObject> {
322 const Value& operator[](const char*) const;
333 const Value& root() const { return fRoot; }
339 Value fRoot;
342 inline Value::Type Value::getType() const {