erigon-pulse/erigon-lib/sais/sais.go
battlmonstr 231e468e19 Add 'erigon-lib/' from commit '93d9c9d9fe4bd8a49f7a98a6bce0f0da7094c7d3'
git-subtree-dir: erigon-lib
git-subtree-mainline: 3c8cbda809
git-subtree-split: 93d9c9d9fe
2023-09-20 14:50:25 +02:00

28 lines
409 B
Go

package sais
/*
#include "sais.h"
#include "utils.h"
*/
import "C"
import (
"fmt"
"unsafe"
)
func Sais(data []byte, sa []int32) error {
size := C.int(len(data))
tPtr := unsafe.Pointer(&data[0]) // source "text"
saPtr := unsafe.Pointer(&sa[0])
result := C.sais(
(*C.uchar)(tPtr),
(*C.int)(saPtr),
size,
)
if int(result) != 0 {
return fmt.Errorf("sais returned: %d", result)
}
return nil
}