2021-12-28 20:03:56 +08:00
|
|
|
// Licensed to the LF AI & Data foundation under one
|
|
|
|
// or more contributor license agreements. See the NOTICE file
|
|
|
|
// distributed with this work for additional information
|
|
|
|
// regarding copyright ownership. The ASF licenses this file
|
|
|
|
// to you under the Apache License, Version 2.0 (the
|
|
|
|
// "License"); you may not use this file except in compliance
|
2021-04-19 11:32:24 +08:00
|
|
|
// with the License. You may obtain a copy of the License at
|
|
|
|
//
|
2021-12-28 20:03:56 +08:00
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
2021-04-19 11:32:24 +08:00
|
|
|
//
|
2021-12-28 20:03:56 +08:00
|
|
|
// 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.
|
2021-04-19 11:32:24 +08:00
|
|
|
|
2020-12-10 09:31:29 +08:00
|
|
|
package storage
|
|
|
|
|
|
|
|
import "unsafe"
|
|
|
|
|
2021-09-23 17:23:54 +08:00
|
|
|
/* #nosec G103 */
|
|
|
|
func UnsafeReadByte(buf []byte, idx int) byte {
|
|
|
|
ptr := unsafe.Pointer(&(buf[idx]))
|
|
|
|
return *((*byte)(ptr))
|
|
|
|
}
|
|
|
|
|
2021-09-18 14:45:50 +08:00
|
|
|
/* #nosec G103 */
|
2020-12-10 09:31:29 +08:00
|
|
|
func UnsafeReadInt8(buf []byte, idx int) int8 {
|
|
|
|
ptr := unsafe.Pointer(&(buf[idx]))
|
|
|
|
return *((*int8)(ptr))
|
|
|
|
}
|
|
|
|
|
2021-09-18 14:45:50 +08:00
|
|
|
/* #nosec G103 */
|
2020-12-10 09:31:29 +08:00
|
|
|
func UnsafeReadInt16(buf []byte, idx int) int16 {
|
|
|
|
ptr := unsafe.Pointer(&(buf[idx]))
|
|
|
|
return *((*int16)(ptr))
|
|
|
|
}
|
|
|
|
|
2021-09-18 14:45:50 +08:00
|
|
|
/* #nosec G103 */
|
2020-12-10 09:31:29 +08:00
|
|
|
func UnsafeReadInt32(buf []byte, idx int) int32 {
|
|
|
|
ptr := unsafe.Pointer(&(buf[idx]))
|
|
|
|
return *((*int32)(ptr))
|
|
|
|
}
|
|
|
|
|
2021-09-18 14:45:50 +08:00
|
|
|
/* #nosec G103 */
|
2020-12-10 09:31:29 +08:00
|
|
|
func UnsafeReadInt64(buf []byte, idx int) int64 {
|
|
|
|
ptr := unsafe.Pointer(&(buf[idx]))
|
|
|
|
return *((*int64)(ptr))
|
|
|
|
}
|
|
|
|
|
2021-09-18 14:45:50 +08:00
|
|
|
/* #nosec G103 */
|
2020-12-10 09:31:29 +08:00
|
|
|
func UnsafeReadFloat32(buf []byte, idx int) float32 {
|
|
|
|
ptr := unsafe.Pointer(&(buf[idx]))
|
|
|
|
return *((*float32)(ptr))
|
|
|
|
}
|
|
|
|
|
2021-09-18 14:45:50 +08:00
|
|
|
/* #nosec G103 */
|
2020-12-10 09:31:29 +08:00
|
|
|
func UnsafeReadFloat64(buf []byte, idx int) float64 {
|
|
|
|
ptr := unsafe.Pointer(&(buf[idx]))
|
|
|
|
return *((*float64)(ptr))
|
|
|
|
}
|
2024-06-19 17:08:00 +08:00
|
|
|
|
|
|
|
/* #nosec G103 */
|
|
|
|
func UnsafeReadBool(buf []byte, idx int) bool {
|
|
|
|
ptr := unsafe.Pointer(&(buf[idx]))
|
|
|
|
return *((*bool)(ptr))
|
|
|
|
}
|