// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Package unsafeheader contains header declarations for the Go runtime's slice // and string implementations. // // This package allows packages that cannot import "reflect" to use types that // are tested to be equivalent to reflect.SliceHeader and reflect.StringHeader.
package unsafeheader import ( ) // Slice is the runtime representation of a slice. // It cannot be used safely or portably and its representation may // change in a later release. // // Unlike reflect.SliceHeader, its Data field is sufficient to guarantee the // data it references will not be garbage collected. type Slice struct { Data unsafe.Pointer Len int Cap int } // String is the runtime representation of a string. // It cannot be used safely or portably and its representation may // change in a later release. // // Unlike reflect.StringHeader, its Data field is sufficient to guarantee the // data it references will not be garbage collected. type String struct { Data unsafe.Pointer Len int }