package plugin
import "io"
// ApplyRangeRead applies offset and size to data slice
// Returns io.EOF if offset+size >= len(data)
func ApplyRangeRead(data []byte, offset int64, size int64) ([]byte, error) {
dataLen := int64(len(data))
// Validate offset
if offset < 0 {
offset = 0
}
if offset >= dataLen {
return nil, io.EOF
}
// Calculate end position
var end int64
if size < 0 {
// Read all remaining data
end = dataLen
} else {
end = offset + size
if end > dataLen {
end = dataLen
}
}
result := data[offset:end]
if end >= dataLen {
return result, io.EOF
}
return result, nil
}