chromium/v8/src/objects/string-forwarding-table-inl.h

// Copyright 2022 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef V8_OBJECTS_STRING_FORWARDING_TABLE_INL_H_
#define V8_OBJECTS_STRING_FORWARDING_TABLE_INL_H_

#include "src/base/atomicops.h"
#include "src/common/globals.h"
#include "src/heap/safepoint.h"
#include "src/objects/name-inl.h"
#include "src/objects/slots-inl.h"
#include "src/objects/slots.h"
#include "src/objects/string-forwarding-table.h"
#include "src/objects/string-inl.h"
// Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h"

namespace v8 {
namespace internal {

class StringForwardingTable::Record final {};

uint32_t StringForwardingTable::Record::raw_hash(
    PtrComprCageBase cage_base) const {}

v8::String::ExternalStringResourceBase*
StringForwardingTable::Record::external_resource(bool* is_one_byte) const {}

void StringForwardingTable::Record::set_raw_hash_if_empty(uint32_t raw_hash) {}

void StringForwardingTable::Record::set_external_resource(
    v8::String::ExternalStringResourceBase* resource, bool is_one_byte) {}

void StringForwardingTable::Record::SetInternalized(Tagged<String> string,
                                                    Tagged<String> forward_to) {}

void StringForwardingTable::Record::SetExternal(
    Tagged<String> string, v8::String::ExternalStringResourceBase* resource,
    bool is_one_byte, uint32_t raw_hash) {}

bool StringForwardingTable::Record::TryUpdateExternalResource(
    v8::String::ExternalStringResourceBase* resource, bool is_one_byte) {}

bool StringForwardingTable::Record::TryUpdateExternalResource(Address address) {}

void StringForwardingTable::Record::DisposeExternalResource() {}

void StringForwardingTable::Record::DisposeUnusedExternalResource(
    Tagged<String> original) {}

class StringForwardingTable::Block {};

class StringForwardingTable::BlockVector {};

int StringForwardingTable::size() const {}
bool StringForwardingTable::empty() const {}

// static
uint32_t StringForwardingTable::BlockForIndex(int index,
                                              uint32_t* index_in_block) {}

// static
uint32_t StringForwardingTable::IndexInBlock(int index, uint32_t block_index) {}

// static
uint32_t StringForwardingTable::CapacityForBlock(uint32_t block_index) {}

template <typename Func>
void StringForwardingTable::IterateElements(Func&& callback) {}

}  // namespace internal
}  // namespace v8

#include "src/objects/object-macros-undef.h"

#endif  // V8_OBJECTS_STRING_FORWARDING_TABLE_INL_H_