From e0635b47c2f30719e1ea026812af85c988632c0e Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 5 Apr 2025 21:27:17 +0800 Subject: Move things to internal/ --- internal/misc/unsafe.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 internal/misc/unsafe.go (limited to 'internal/misc/unsafe.go') diff --git a/internal/misc/unsafe.go b/internal/misc/unsafe.go new file mode 100644 index 0000000..6c2192f --- /dev/null +++ b/internal/misc/unsafe.go @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu + +package misc + +import "unsafe" + +// StringToBytes converts a string to a byte slice without copying the string. +// Memory is borrowed from the string. +// The resulting byte slice must not be modified in any form. +func StringToBytes(s string) (bytes []byte) { + return unsafe.Slice(unsafe.StringData(s), len(s)) +} + +// BytesToString converts a byte slice to a string without copying the bytes. +// Memory is borrowed from the byte slice. +// The source byte slice must not be modified. +func BytesToString(b []byte) string { + return unsafe.String(unsafe.SliceData(b), len(b)) +} -- cgit v1.2.3