mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-29 07:07:16 +00:00
28 lines
409 B
Go
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
|
|
}
|