erigon-pulse/sais/sais.go
2022-03-19 11:38:37 +07: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
}