| 123456789101112131415161718192021222324252627282930313233343536 |
- // +build !unsafe
- // Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.
- // Use of this source code is governed by a MIT license found in the LICENSE file.
- package codec
- // stringView returns a view of the []byte as a string.
- // In unsafe mode, it doesn't incur allocation and copying caused by conversion.
- // In regular safe mode, it is an allocation and copy.
- //
- // Usage: Always maintain a reference to v while result of this call is in use,
- // and call keepAlive4BytesView(v) at point where done with view.
- func stringView(v []byte) string {
- return string(v)
- }
- // bytesView returns a view of the string as a []byte.
- // In unsafe mode, it doesn't incur allocation and copying caused by conversion.
- // In regular safe mode, it is an allocation and copy.
- //
- // Usage: Always maintain a reference to v while result of this call is in use,
- // and call keepAlive4BytesView(v) at point where done with view.
- func bytesView(v string) []byte {
- return []byte(v)
- }
- // keepAlive4BytesView maintains a reference to the input parameter for bytesView.
- //
- // Usage: call this at point where done with the bytes view.
- func keepAlive4BytesView(v string) {}
- // keepAlive4BytesView maintains a reference to the input parameter for stringView.
- //
- // Usage: call this at point where done with the string view.
- func keepAlive4StringView(v []byte) {}
|