В интерфейсе sqlite для расширений файл fts5.h определяет структурку fts5_tokenizer, у которой есть указатель на функцию xTokenize()
int(*xTokenize)(Fts5Tokenizer*,
void *pCtx,
int flags, /* Mask of FTS5_TOKENIZE_* flags */
const char *pText, int nText,
int(*xToken)(
void *pCtx, /* Copy of 2nd argument to xTokenize() */
int tflags, /* Mask of FTS5_TOKEN_* flags */
const char *pToken, /* Pointer to buffer containing token */
int nToken, /* Size of token in bytes */
int iStart, /* Byte offset of token within input text */
int iEnd /* Byte offset of end of token within input text */
)
);
один из аргументов которой коллбек xToken(). У меня не получается выудить из доков и интернета роль данного коллбека. Должны ли мы написать тут свой, или это некий коллбек, который предоставляет внутренняя реализация sqlite? Обязаны ли мы его вызывать? Что он делает с нашими данными? Если его должны реализовать мы, то как мы можем передать свой с вызовом xTokenize(), если этот вызов обеспечивают внутренности sqlite?