12345678910111213141516171819202122232425262728293031323334353637 |
- // 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 (
- "unsafe"
- )
- // 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
- }
|