// Copyright 2025 Buf Technologies, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by ./make_shapes.sh. DO NOT EDIT.

package arena

import (
	"reflect"
	"unsafe"
)

// Pre-allocate a shape for every power of 2.
var shapes = [...]reflect.Type{
	// Doing it like this forces Go to statically generate type information,
	// which makes reflect.New much faster, because it does not need to hammer
	// the dynamically-generated-type cache, either for the {[]byte, unsafe.Pointer}
	// type or for its associated *struct{[N]byte; unsafe.Pointer} pointer type.
	reflect.TypeOf((*struct {D [1 << 0]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 1]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 2]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 3]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 4]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 5]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 6]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 7]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 8]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 9]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 10]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 11]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 12]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 13]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 14]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 15]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 16]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 17]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 18]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 19]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 20]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 21]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 22]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 23]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 24]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 25]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 26]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 27]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 28]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 29]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 30]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 31]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 32]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 33]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 34]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 35]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 36]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 37]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 38]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 39]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 40]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 41]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 42]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 43]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 44]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 45]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 46]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 47]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 48]byte; P unsafe.Pointer})(nil)).Elem(),
	reflect.TypeOf((*struct {D [1 << 49]byte; P unsafe.Pointer})(nil)).Elem(),
	// Any larger than this will cause Go to emit a build error.
	// This also currently prevents builds on 32-bit targets.
}
