packages feed

haroonga-0.1.5.0: Bindings/Groonga/Raw.hsc

{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{- generated by c2hsc with groonga.h of groonga 3.1.1. -}
#include <bindings.dsl.h>
#include <groonga.h>
module Bindings.Groonga.Raw where
import Foreign.Ptr
#strict_import

{- typedef unsigned int grn_id; -}
#synonym_t grn_id , CUInt
{- typedef unsigned char grn_bool; -}
#synonym_t grn_bool , CUChar
{- typedef enum {
            GRN_SUCCESS = 0,
            GRN_END_OF_DATA = 1,
            GRN_UNKNOWN_ERROR = -1,
            GRN_OPERATION_NOT_PERMITTED = -2,
            GRN_NO_SUCH_FILE_OR_DIRECTORY = -3,
            GRN_NO_SUCH_PROCESS = -4,
            GRN_INTERRUPTED_FUNCTION_CALL = -5,
            GRN_INPUT_OUTPUT_ERROR = -6,
            GRN_NO_SUCH_DEVICE_OR_ADDRESS = -7,
            GRN_ARG_LIST_TOO_LONG = -8,
            GRN_EXEC_FORMAT_ERROR = -9,
            GRN_BAD_FILE_DESCRIPTOR = -10,
            GRN_NO_CHILD_PROCESSES = -11,
            GRN_RESOURCE_TEMPORARILY_UNAVAILABLE = -12,
            GRN_NOT_ENOUGH_SPACE = -13,
            GRN_PERMISSION_DENIED = -14,
            GRN_BAD_ADDRESS = -15,
            GRN_RESOURCE_BUSY = -16,
            GRN_FILE_EXISTS = -17,
            GRN_IMPROPER_LINK = -18,
            GRN_NO_SUCH_DEVICE = -19,
            GRN_NOT_A_DIRECTORY = -20,
            GRN_IS_A_DIRECTORY = -21,
            GRN_INVALID_ARGUMENT = -22,
            GRN_TOO_MANY_OPEN_FILES_IN_SYSTEM = -23,
            GRN_TOO_MANY_OPEN_FILES = -24,
            GRN_INAPPROPRIATE_I_O_CONTROL_OPERATION = -25,
            GRN_FILE_TOO_LARGE = -26,
            GRN_NO_SPACE_LEFT_ON_DEVICE = -27,
            GRN_INVALID_SEEK = -28,
            GRN_READ_ONLY_FILE_SYSTEM = -29,
            GRN_TOO_MANY_LINKS = -30,
            GRN_BROKEN_PIPE = -31,
            GRN_DOMAIN_ERROR = -32,
            GRN_RESULT_TOO_LARGE = -33,
            GRN_RESOURCE_DEADLOCK_AVOIDED = -34,
            GRN_NO_MEMORY_AVAILABLE = -35,
            GRN_FILENAME_TOO_LONG = -36,
            GRN_NO_LOCKS_AVAILABLE = -37,
            GRN_FUNCTION_NOT_IMPLEMENTED = -38,
            GRN_DIRECTORY_NOT_EMPTY = -39,
            GRN_ILLEGAL_BYTE_SEQUENCE = -40,
            GRN_SOCKET_NOT_INITIALIZED = -41,
            GRN_OPERATION_WOULD_BLOCK = -42,
            GRN_ADDRESS_IS_NOT_AVAILABLE = -43,
            GRN_NETWORK_IS_DOWN = -44,
            GRN_NO_BUFFER = -45,
            GRN_SOCKET_IS_ALREADY_CONNECTED = -46,
            GRN_SOCKET_IS_NOT_CONNECTED = -47,
            GRN_SOCKET_IS_ALREADY_SHUTDOWNED = -48,
            GRN_OPERATION_TIMEOUT = -49,
            GRN_CONNECTION_REFUSED = -50,
            GRN_RANGE_ERROR = -51,
            GRN_TOKENIZER_ERROR = -52,
            GRN_FILE_CORRUPT = -53,
            GRN_INVALID_FORMAT = -54,
            GRN_OBJECT_CORRUPT = -55,
            GRN_TOO_MANY_SYMBOLIC_LINKS = -56,
            GRN_NOT_SOCKET = -57,
            GRN_OPERATION_NOT_SUPPORTED = -58,
            GRN_ADDRESS_IS_IN_USE = -59,
            GRN_ZLIB_ERROR = -60,
            GRN_LZO_ERROR = -61,
            GRN_STACK_OVER_FLOW = -62,
            GRN_SYNTAX_ERROR = -63,
            GRN_RETRY_MAX = -64,
            GRN_INCOMPATIBLE_FILE_FORMAT = -65,
            GRN_UPDATE_NOT_ALLOWED = -66,
            GRN_TOO_SMALL_OFFSET = -67,
            GRN_TOO_LARGE_OFFSET = -68,
            GRN_TOO_SMALL_LIMIT = -69,
            GRN_CAS_ERROR = -70,
            GRN_UNSUPPORTED_COMMAND_VERSION = -71,
            GRN_NORMALIZER_ERROR = -72
        } grn_rc; -}
#integral_t grn_rc
#num GRN_SUCCESS
#num GRN_END_OF_DATA
#num GRN_UNKNOWN_ERROR
#num GRN_OPERATION_NOT_PERMITTED
#num GRN_NO_SUCH_FILE_OR_DIRECTORY
#num GRN_NO_SUCH_PROCESS
#num GRN_INTERRUPTED_FUNCTION_CALL
#num GRN_INPUT_OUTPUT_ERROR
#num GRN_NO_SUCH_DEVICE_OR_ADDRESS
#num GRN_ARG_LIST_TOO_LONG
#num GRN_EXEC_FORMAT_ERROR
#num GRN_BAD_FILE_DESCRIPTOR
#num GRN_NO_CHILD_PROCESSES
#num GRN_RESOURCE_TEMPORARILY_UNAVAILABLE
#num GRN_NOT_ENOUGH_SPACE
#num GRN_PERMISSION_DENIED
#num GRN_BAD_ADDRESS
#num GRN_RESOURCE_BUSY
#num GRN_FILE_EXISTS
#num GRN_IMPROPER_LINK
#num GRN_NO_SUCH_DEVICE
#num GRN_NOT_A_DIRECTORY
#num GRN_IS_A_DIRECTORY
#num GRN_INVALID_ARGUMENT
#num GRN_TOO_MANY_OPEN_FILES_IN_SYSTEM
#num GRN_TOO_MANY_OPEN_FILES
#num GRN_INAPPROPRIATE_I_O_CONTROL_OPERATION
#num GRN_FILE_TOO_LARGE
#num GRN_NO_SPACE_LEFT_ON_DEVICE
#num GRN_INVALID_SEEK
#num GRN_READ_ONLY_FILE_SYSTEM
#num GRN_TOO_MANY_LINKS
#num GRN_BROKEN_PIPE
#num GRN_DOMAIN_ERROR
#num GRN_RESULT_TOO_LARGE
#num GRN_RESOURCE_DEADLOCK_AVOIDED
#num GRN_NO_MEMORY_AVAILABLE
#num GRN_FILENAME_TOO_LONG
#num GRN_NO_LOCKS_AVAILABLE
#num GRN_FUNCTION_NOT_IMPLEMENTED
#num GRN_DIRECTORY_NOT_EMPTY
#num GRN_ILLEGAL_BYTE_SEQUENCE
#num GRN_SOCKET_NOT_INITIALIZED
#num GRN_OPERATION_WOULD_BLOCK
#num GRN_ADDRESS_IS_NOT_AVAILABLE
#num GRN_NETWORK_IS_DOWN
#num GRN_NO_BUFFER
#num GRN_SOCKET_IS_ALREADY_CONNECTED
#num GRN_SOCKET_IS_NOT_CONNECTED
#num GRN_SOCKET_IS_ALREADY_SHUTDOWNED
#num GRN_OPERATION_TIMEOUT
#num GRN_CONNECTION_REFUSED
#num GRN_RANGE_ERROR
#num GRN_TOKENIZER_ERROR
#num GRN_FILE_CORRUPT
#num GRN_INVALID_FORMAT
#num GRN_OBJECT_CORRUPT
#num GRN_TOO_MANY_SYMBOLIC_LINKS
#num GRN_NOT_SOCKET
#num GRN_OPERATION_NOT_SUPPORTED
#num GRN_ADDRESS_IS_IN_USE
#num GRN_ZLIB_ERROR
#num GRN_LZO_ERROR
#num GRN_STACK_OVER_FLOW
#num GRN_SYNTAX_ERROR
#num GRN_RETRY_MAX
#num GRN_INCOMPATIBLE_FILE_FORMAT
#num GRN_UPDATE_NOT_ALLOWED
#num GRN_TOO_SMALL_OFFSET
#num GRN_TOO_LARGE_OFFSET
#num GRN_TOO_SMALL_LIMIT
#num GRN_CAS_ERROR
#num GRN_UNSUPPORTED_COMMAND_VERSION
#num GRN_NORMALIZER_ERROR
#ccall grn_init , IO <grn_rc>
#ccall grn_fin , IO <grn_rc>
{- typedef enum {
            GRN_ENC_DEFAULT = 0,
            GRN_ENC_NONE,
            GRN_ENC_EUC_JP,
            GRN_ENC_UTF8,
            GRN_ENC_SJIS,
            GRN_ENC_LATIN1,
            GRN_ENC_KOI8R
        } grn_encoding; -}
#integral_t grn_encoding
#num GRN_ENC_DEFAULT
#num GRN_ENC_NONE
#num GRN_ENC_EUC_JP
#num GRN_ENC_UTF8
#num GRN_ENC_SJIS
#num GRN_ENC_LATIN1
#num GRN_ENC_KOI8R
{- typedef enum {
            GRN_COMMAND_VERSION_DEFAULT = 0,
            GRN_COMMAND_VERSION_1,
            GRN_COMMAND_VERSION_2
        } grn_command_version; -}
#integral_t grn_command_version
#num GRN_COMMAND_VERSION_DEFAULT
#num GRN_COMMAND_VERSION_1
#num GRN_COMMAND_VERSION_2
{- typedef enum {
            GRN_LOG_NONE = 0,
            GRN_LOG_EMERG,
            GRN_LOG_ALERT,
            GRN_LOG_CRIT,
            GRN_LOG_ERROR,
            GRN_LOG_WARNING,
            GRN_LOG_NOTICE,
            GRN_LOG_INFO,
            GRN_LOG_DEBUG,
            GRN_LOG_DUMP
        } grn_log_level; -}
#integral_t grn_log_level
#num GRN_LOG_NONE
#num GRN_LOG_EMERG
#num GRN_LOG_ALERT
#num GRN_LOG_CRIT
#num GRN_LOG_ERROR
#num GRN_LOG_WARNING
#num GRN_LOG_NOTICE
#num GRN_LOG_INFO
#num GRN_LOG_DEBUG
#num GRN_LOG_DUMP
{- log flags -}
#num GRN_QUERY_LOG_NONE
#num GRN_QUERY_LOG_COMMAND
#num GRN_QUERY_LOG_RESULT_CODE
#num GRN_QUERY_LOG_DESTINATION
#num GRN_QUERY_LOG_CACHE
#num GRN_QUERY_LOG_SIZE
#num GRN_QUERY_LOG_SCORE
#num GRN_QUERY_LOG_ALL
#num GRN_QUERY_LOG_DEFAULT
{- typedef enum {
            GRN_CONTENT_NONE = 0,
            GRN_CONTENT_TSV,
            GRN_CONTENT_JSON,
            GRN_CONTENT_XML,
            GRN_CONTENT_MSGPACK
        } grn_content_type; -}
#integral_t grn_content_type
#num GRN_CONTENT_NONE
#num GRN_CONTENT_TSV
#num GRN_CONTENT_JSON
#num GRN_CONTENT_XML
#num GRN_CONTENT_MSGPACK
{- typedef struct _grn_obj grn_obj; -}
-- #opaque_t _grn_obj
-- #synonym_t grn_obj , <_grn_obj>
{- typedef struct _grn_ctx grn_ctx; -}
-- #opaque_t _grn_ctx
-- #synonym_t grn_ctx , <_grn_ctx>
#num GRN_CTX_MSGSIZE
#num GRN_CTX_FIN
{- typedef union {
            int int_value; grn_id id; void * ptr;
        } grn_user_data; -}
#starttype grn_user_data
#union_field int_value , CInt
#union_field id , CUInt
#union_field ptr , Ptr ()
#stoptype
#callback_t grn_proc_func , Ptr <_grn_ctx> -> CInt -> Ptr (Ptr <_grn_obj>) -> Ptr <grn_user_data> -> IO (Ptr <_grn_obj>)
{- struct _grn_ctx {
    grn_rc rc;
    int flags;
    grn_encoding encoding;
    unsigned char ntrace;
    unsigned char errlvl;
    unsigned char stat;
    unsigned int seqno;
    unsigned int subno;
    unsigned int seqno2;
    unsigned int errline;
    grn_user_data user_data;
    grn_ctx * prev;
    grn_ctx * next;
    const char * errfile;
    const char * errfunc;
    struct _grn_ctx_impl * impl;
    void * trace[16];
    char errbuf[0x80];
}; -}
#opaque_t _grn_ctx_impl
#starttype struct _grn_ctx
#field rc , <grn_rc>
#field flags , CInt
#field encoding , <grn_encoding>
#field ntrace , CUChar
#field errlvl , CUChar
#field stat , CUChar
#field seqno , CUInt
#field subno , CUInt
#field seqno2 , CUInt
#field errline , CUInt
#field user_data , <grn_user_data>
#field prev , Ptr <_grn_ctx>
#field next , Ptr <_grn_ctx>
#field errfile , CString
#field errfunc , CString
#field impl , Ptr <_grn_ctx_impl>
#array_field trace , Ptr ()
#array_field errbuf , CChar
#stoptype
#num GRN_CTX_USE_QL
#num GRN_CTX_BATCH_MODE
#num GRN_CTX_PER_DB
#ccall grn_ctx_init , Ptr <_grn_ctx> -> CInt -> IO <grn_rc>
#ccall grn_ctx_fin , Ptr <_grn_ctx> -> IO <grn_rc>
#ccall grn_ctx_open , CInt -> IO (Ptr <_grn_ctx>)
#ccall grn_ctx_close , Ptr <_grn_ctx> -> IO <grn_rc>
#ccall grn_ctx_set_finalizer , Ptr <_grn_ctx> -> Ptr <grn_proc_func> -> IO <grn_rc>
#ccall grn_get_default_encoding , IO <grn_encoding>
#ccall grn_set_default_encoding , <grn_encoding> -> IO <grn_rc>
#ccall grn_get_version , IO CString
#ccall grn_get_package , IO CString
#ccall grn_get_default_command_version , IO <grn_command_version>
#ccall grn_set_default_command_version , <grn_command_version> -> IO <grn_rc>
#ccall grn_ctx_get_command_version , Ptr <_grn_ctx> -> IO <grn_command_version>
#ccall grn_ctx_set_command_version , Ptr <_grn_ctx> -> <grn_command_version> -> IO <grn_rc>
#ccall grn_ctx_get_match_escalation_threshold , Ptr <_grn_ctx> -> IO CLong
#ccall grn_ctx_set_match_escalation_threshold , Ptr <_grn_ctx> -> CLong -> IO <grn_rc>
#ccall grn_get_default_match_escalation_threshold , IO CLong
#ccall grn_set_default_match_escalation_threshold , CLong -> IO <grn_rc>
#ccall grn_get_lock_timeout , IO CInt
#ccall grn_set_lock_timeout , CInt -> IO <grn_rc>
{- typedef struct _grn_cache grn_cache; -}
#opaque_t _grn_cache
#synonym_t grn_cache , <_grn_cache>
#ccall grn_cache_open , Ptr <_grn_ctx> -> IO (Ptr <_grn_cache>)
#ccall grn_cache_close , Ptr <_grn_ctx> -> Ptr <_grn_cache> -> IO <grn_rc>
#ccall grn_cache_current_set , Ptr <_grn_ctx> -> Ptr <_grn_cache> -> IO <grn_rc>
#ccall grn_cache_current_get , Ptr <_grn_ctx> -> IO (Ptr <_grn_cache>)
#ccall grn_cache_set_max_n_entries , Ptr <_grn_ctx> -> Ptr <_grn_cache> -> CUInt -> IO <grn_rc>
#ccall grn_cache_get_max_n_entries , Ptr <_grn_ctx> -> Ptr <_grn_cache> -> IO CUInt
#ccall grn_encoding_to_string , <grn_encoding> -> IO CString
#ccall grn_encoding_parse , CString -> IO <grn_encoding>
{- typedef unsigned short int grn_obj_flags; -}
#synonym_t grn_obj_flags , CUShort
{- typedef struct _grn_section grn_section; -}
-- #opaque_t _grn_section
-- #synonym_t grn_section , <_grn_section>
{- typedef struct _grn_obj_header grn_obj_header; -}
-- #opaque_t _grn_obj_header
-- #synonym_t grn_obj_header , <_grn_obj_header>
{- struct _grn_section {
    unsigned int offset;
    unsigned int length;
    unsigned int weight;
    grn_id domain;
}; -}
{- obj macros -}
#num GRN_OBJ_TABLE_TYPE_MASK
#num GRN_OBJ_TABLE_HASH_KEY
#num GRN_OBJ_TABLE_PAT_KEY
#num GRN_OBJ_TABLE_DAT_KEY
#num GRN_OBJ_TABLE_NO_KEY

#num GRN_OBJ_KEY_MASK
#num GRN_OBJ_KEY_UINT
#num GRN_OBJ_KEY_INT
#num GRN_OBJ_KEY_FLOAT
#num GRN_OBJ_KEY_GEO_POINT

#num GRN_OBJ_KEY_WITH_SIS
#num GRN_OBJ_KEY_NORMALIZE

#num GRN_OBJ_COLUMN_TYPE_MASK
#num GRN_OBJ_COLUMN_SCALAR
#num GRN_OBJ_COLUMN_VECTOR
#num GRN_OBJ_COLUMN_INDEX

#num GRN_OBJ_COMPRESS_MASK
#num GRN_OBJ_COMPRESS_NONE
#num GRN_OBJ_COMPRESS_ZLIB
#num GRN_OBJ_COMPRESS_LZO

#num GRN_OBJ_WITH_SECTION
#num GRN_OBJ_WITH_WEIGHT
#num GRN_OBJ_WITH_POSITION
#num GRN_OBJ_RING_BUFFER

#num GRN_OBJ_UNIT_MASK
#num GRN_OBJ_UNIT_DOCUMENT_NONE
#num GRN_OBJ_UNIT_DOCUMENT_SECTION
#num GRN_OBJ_UNIT_DOCUMENT_POSITION
#num GRN_OBJ_UNIT_SECTION_NONE
#num GRN_OBJ_UNIT_SECTION_POSITION
#num GRN_OBJ_UNIT_POSITION_NONE
#num GRN_OBJ_UNIT_USERDEF_DOCUMENT
#num GRN_OBJ_UNIT_USERDEF_SECTION
#num GRN_OBJ_UNIT_USERDEF_POSITION

#num GRN_OBJ_NO_SUBREC
#num GRN_OBJ_WITH_SUBREC

#num GRN_OBJ_KEY_VAR_SIZE

#num GRN_OBJ_TEMPORARY
#num GRN_OBJ_PERSISTENT

{- obj types -}

#num GRN_VOID
#num GRN_BULK
#num GRN_PTR
#num GRN_UVECTOR
#num GRN_PVECTOR
#num GRN_VECTOR
#num GRN_MSG
#num GRN_QUERY
#num GRN_ACCESSOR
#num GRN_SNIP
#num GRN_PATSNIP
#num GRN_STRING
#num GRN_CURSOR_TABLE_HASH_KEY
#num GRN_CURSOR_TABLE_PAT_KEY
#num GRN_CURSOR_TABLE_DAT_KEY
#num GRN_CURSOR_TABLE_NO_KEY
#num GRN_CURSOR_COLUMN_INDEX
#num GRN_CURSOR_COLUMN_GEO_INDEX
#num GRN_TYPE
#num GRN_PROC
#num GRN_EXPR
#num GRN_TABLE_HASH_KEY
#num GRN_TABLE_PAT_KEY
#num GRN_TABLE_DAT_KEY
#num GRN_TABLE_NO_KEY
#num GRN_DB
#num GRN_COLUMN_FIX_SIZE
#num GRN_COLUMN_VAR_SIZE
#num GRN_COLUMN_INDEX
#starttype struct _grn_section
#field offset , CUInt
#field length , CUInt
#field weight , CUInt
#field domain , CUInt
#stoptype
{- struct _grn_obj_header {
    unsigned char type;
    unsigned char impl_flags;
    grn_obj_flags flags;
    grn_id domain;
}; -}
#starttype struct _grn_obj_header
#field type , CUChar
#field impl_flags , CUChar
#field flags , CUShort
#field domain , CUInt
#stoptype
{- struct _grn_obj {
    grn_obj_header header;
    union {
        struct {
            char * head; char * curr; char * tail;
        } b;
        struct {
            grn_obj * body; grn_section * sections; int n_sections;
        } v;
    } u;
}; -}
{- FIXME?: perhaps, /struct _grn_obj/'s field don't need to reach. -}
#starttype struct _grn_obj
#stoptype
{- typedef struct _grn_db_create_optarg grn_db_create_optarg; -}
{- typedef struct _grn_db_create_optarg grn_db_create_optarg; -}
-- #opaque_t _grn_db_create_optarg
-- #synonym_t grn_db_create_optarg , <_grn_db_create_optarg>
{- struct _grn_db_create_optarg {
    char ** builtin_type_names; int n_builtin_type_names;
}; -}
#starttype struct _grn_db_create_optarg
#field builtin_type_names , Ptr CString
#field n_builtin_type_names , CInt
#stoptype
#ccall grn_db_create , Ptr <_grn_ctx> -> CString -> Ptr <_grn_db_create_optarg> -> IO (Ptr <_grn_obj>)
#ccall grn_db_open , Ptr <_grn_ctx> -> CString -> IO (Ptr <_grn_obj>)
#ccall grn_db_touch , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO ()
#ccall grn_ctx_use , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_ctx_db , Ptr <_grn_ctx> -> IO (Ptr <_grn_obj>)
#ccall grn_ctx_get , Ptr <_grn_ctx> -> CString -> CInt -> IO (Ptr <_grn_obj>)
{- typedef enum {
            GRN_DB_VOID = 0,
            GRN_DB_DB,
            GRN_DB_OBJECT,
            GRN_DB_BOOL,
            GRN_DB_INT8,
            GRN_DB_UINT8,
            GRN_DB_INT16,
            GRN_DB_UINT16,
            GRN_DB_INT32,
            GRN_DB_UINT32,
            GRN_DB_INT64,
            GRN_DB_UINT64,
            GRN_DB_FLOAT,
            GRN_DB_TIME,
            GRN_DB_SHORT_TEXT,
            GRN_DB_TEXT,
            GRN_DB_LONG_TEXT,
            GRN_DB_TOKYO_GEO_POINT,
            GRN_DB_WGS84_GEO_POINT
        } grn_builtin_type; -}
#integral_t grn_builtin_type
#num GRN_DB_VOID
#num GRN_DB_DB
#num GRN_DB_OBJECT
#num GRN_DB_BOOL
#num GRN_DB_INT8
#num GRN_DB_UINT8
#num GRN_DB_INT16
#num GRN_DB_UINT16
#num GRN_DB_INT32
#num GRN_DB_UINT32
#num GRN_DB_INT64
#num GRN_DB_UINT64
#num GRN_DB_FLOAT
#num GRN_DB_TIME
#num GRN_DB_SHORT_TEXT
#num GRN_DB_TEXT
#num GRN_DB_LONG_TEXT
#num GRN_DB_TOKYO_GEO_POINT
#num GRN_DB_WGS84_GEO_POINT
{- typedef enum {
            GRN_DB_MECAB = 64,
            GRN_DB_DELIMIT,
            GRN_DB_UNIGRAM,
            GRN_DB_BIGRAM,
            GRN_DB_TRIGRAM
        } grn_builtin_tokenizer; -}
#integral_t grn_builtin_tokenizer
#num GRN_DB_MECAB
#num GRN_DB_DELIMIT
#num GRN_DB_UNIGRAM
#num GRN_DB_BIGRAM
#num GRN_DB_TRIGRAM
#ccall grn_ctx_at , Ptr <_grn_ctx> -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_type_create , Ptr <_grn_ctx> -> CString -> CUInt -> CUShort -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_plugin_register , Ptr <_grn_ctx> -> CString -> IO <grn_rc>
#ccall grn_plugin_register_by_path , Ptr <_grn_ctx> -> CString -> IO <grn_rc>
#ccall grn_plugin_get_system_plugins_dir , IO CString
#ccall grn_plugin_get_suffix , IO CString
{- typedef struct {
            const char * name; unsigned int name_size; grn_obj value;
        } grn_expr_var; -}
#starttype grn_expr_var
#field name , CString
#field name_size , CUInt
#field value , <_grn_obj>
#stoptype
#callback_t grn_plugin_func , Ptr <_grn_ctx> -> IO <grn_rc>
{- typedef enum {
            RN_PROC_INVALID = 0,
            GRN_PROC_TOKENIZER,
            GRN_PROC_COMMAND,
            GRN_PROC_FUNCTION,
            GRN_PROC_HOOK,
            GRN_PROC_NORMALIZER
        } grn_proc_type; -}
#integral_t grn_proc_type
#num GRN_PROC_TOKENIZER
#num GRN_PROC_COMMAND
#num GRN_PROC_FUNCTION
#num GRN_PROC_HOOK
#num GRN_PROC_NORMALIZER
#ccall grn_proc_create , Ptr <_grn_ctx> -> CString -> CInt -> <grn_proc_type> -> Ptr <grn_proc_func> -> Ptr <grn_proc_func> -> Ptr <grn_proc_func> -> CUInt -> Ptr <grn_expr_var> -> IO (Ptr <_grn_obj>)
#ccall grn_proc_get_info , Ptr <_grn_ctx> -> Ptr <grn_user_data> -> Ptr (Ptr <grn_expr_var>) -> Ptr CUInt -> Ptr (Ptr <_grn_obj>) -> IO (Ptr <_grn_obj>)
#ccall grn_proc_get_type , Ptr <struct _grn_ctx> -> Ptr <struct _grn_obj> -> IO <grn_proc_type>
#ccall grn_table_create , Ptr <_grn_ctx> -> CString -> CUInt -> CString -> CUShort -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
#ccall grn_table_add , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr () -> CUInt -> Ptr CInt -> IO CUInt
#ccall grn_table_get , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr () -> CUInt -> IO CUInt
#ccall grn_table_at , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO CUInt
#ccall grn_table_lcp_search , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr () -> CUInt -> IO CUInt
#ccall grn_table_get_key , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> Ptr () -> CInt -> IO CInt
#ccall grn_table_delete , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr () -> CUInt -> IO <grn_rc>
#ccall grn_table_delete_by_id , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_table_update_by_id , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> Ptr () -> CUInt -> IO <grn_rc>
#ccall grn_table_update , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr () -> CUInt -> Ptr () -> CUInt -> IO <grn_rc>
#ccall grn_table_truncate , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
{- typedef grn_obj grn_table_cursor; -}
#synonym_t grn_table_cursor , <_grn_obj>
{- grn cursor -}
#num GRN_CURSOR_ASCENDING
#num GRN_CURSOR_DESCENDING
#num GRN_CURSOR_GE
#num GRN_CURSOR_GT
#num GRN_CURSOR_LE
#num GRN_CURSOR_LT
#num GRN_CURSOR_BY_KEY
#num GRN_CURSOR_BY_ID
#num GRN_CURSOR_PREFIX
#num GRN_CURSOR_SIZE_BY_BIT
#num GRN_CURSOR_RK
#ccall grn_table_cursor_open , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr () -> CUInt -> Ptr () -> CUInt -> CInt -> CInt -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_table_cursor_close , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_table_cursor_next , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUInt
#ccall grn_table_cursor_get_key , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr (Ptr ()) -> IO CInt
#ccall grn_table_cursor_get_value , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr (Ptr ()) -> IO CInt
#ccall grn_table_cursor_set_value , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr () -> CInt -> IO <grn_rc>
#ccall grn_table_cursor_delete , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_table_cursor_table , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
{- typedef struct {
            grn_id rid;
            grn_id sid;
            unsigned int pos;
            unsigned int tf;
            unsigned int weight;
            unsigned int rest;
        } grn_posting; -}
#starttype grn_posting
#field rid , CUInt
#field sid , CUInt
#field pos , CUInt
#field tf , CUInt
#field weight , CUInt
#field rest , CUInt
#stoptype
#ccall grn_index_cursor_open , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> CUInt -> CUInt -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_index_cursor_next , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr CUInt -> IO (Ptr <grn_posting>)
{- typedef struct _grn_table_sort_key grn_table_sort_key; -}
-- #opaque_t _grn_table_sort_key
-- #synonym_t grn_table_sort_key , <_grn_table_sort_key>
{- typedef unsigned char grn_table_sort_flags; -}
#synonym_t grn_table_sort_flags , CUChar
{- struct _grn_table_sort_key {
    grn_obj * key; grn_table_sort_flags flags; int offset;
}; -}
#starttype struct _grn_table_sort_key
#field key , Ptr <_grn_obj>
#field flags , CUChar
#field offset , CInt
#stoptype
#ccall grn_table_sort , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> CInt -> Ptr <_grn_obj> -> Ptr <_grn_table_sort_key> -> CInt -> IO CInt
{- typedef struct _grn_table_group_result grn_table_group_result; -}
-- #opaque_t _grn_table_group_result
-- #synonym_t grn_table_group_result , <_grn_table_group_result>
{- typedef unsigned int grn_table_group_flags; -}
#synonym_t grn_table_group_flags , CUInt
{- typedef enum {
            GRN_OP_PUSH = 0,
            GRN_OP_POP,
            GRN_OP_NOP,
            GRN_OP_CALL,
            GRN_OP_INTERN,
            GRN_OP_GET_REF,
            GRN_OP_GET_VALUE,
            GRN_OP_AND,
            GRN_OP_AND_NOT,
            GRN_OP_OR,
            GRN_OP_ASSIGN,
            GRN_OP_STAR_ASSIGN,
            GRN_OP_SLASH_ASSIGN,
            GRN_OP_MOD_ASSIGN,
            GRN_OP_PLUS_ASSIGN,
            GRN_OP_MINUS_ASSIGN,
            GRN_OP_SHIFTL_ASSIGN,
            GRN_OP_SHIFTR_ASSIGN,
            GRN_OP_SHIFTRR_ASSIGN,
            GRN_OP_AND_ASSIGN,
            GRN_OP_XOR_ASSIGN,
            GRN_OP_OR_ASSIGN,
            GRN_OP_JUMP,
            GRN_OP_CJUMP,
            GRN_OP_COMMA,
            GRN_OP_BITWISE_OR,
            GRN_OP_BITWISE_XOR,
            GRN_OP_BITWISE_AND,
            GRN_OP_BITWISE_NOT,
            GRN_OP_EQUAL,
            GRN_OP_NOT_EQUAL,
            GRN_OP_LESS,
            GRN_OP_GREATER,
            GRN_OP_LESS_EQUAL,
            GRN_OP_GREATER_EQUAL,
            GRN_OP_IN,
            GRN_OP_MATCH,
            GRN_OP_NEAR,
            GRN_OP_NEAR2,
            GRN_OP_SIMILAR,
            GRN_OP_TERM_EXTRACT,
            GRN_OP_SHIFTL,
            GRN_OP_SHIFTR,
            GRN_OP_SHIFTRR,
            GRN_OP_PLUS,
            GRN_OP_MINUS,
            GRN_OP_STAR,
            GRN_OP_SLASH,
            GRN_OP_MOD,
            GRN_OP_DELETE,
            GRN_OP_INCR,
            GRN_OP_DECR,
            GRN_OP_INCR_POST,
            GRN_OP_DECR_POST,
            GRN_OP_NOT,
            GRN_OP_ADJUST,
            GRN_OP_EXACT,
            GRN_OP_LCP,
            GRN_OP_PARTIAL,
            GRN_OP_UNSPLIT,
            GRN_OP_PREFIX,
            GRN_OP_SUFFIX,
            GRN_OP_GEO_DISTANCE1,
            GRN_OP_GEO_DISTANCE2,
            GRN_OP_GEO_DISTANCE3,
            GRN_OP_GEO_DISTANCE4,
            GRN_OP_GEO_WITHINP5,
            GRN_OP_GEO_WITHINP6,
            GRN_OP_GEO_WITHINP8,
            GRN_OP_OBJ_SEARCH,
            GRN_OP_EXPR_GET_VAR,
            GRN_OP_TABLE_CREATE,
            GRN_OP_TABLE_SELECT,
            GRN_OP_TABLE_SORT,
            GRN_OP_TABLE_GROUP,
            GRN_OP_JSON_PUT,
            GRN_OP_GET_MEMBER
        } grn_operator; -}
#integral_t grn_operator
#num GRN_OP_PUSH
#num GRN_OP_POP
#num GRN_OP_NOP
#num GRN_OP_CALL
#num GRN_OP_INTERN
#num GRN_OP_GET_REF
#num GRN_OP_GET_VALUE
#num GRN_OP_AND
#num GRN_OP_AND_NOT
#num GRN_OP_OR
#num GRN_OP_ASSIGN
#num GRN_OP_STAR_ASSIGN
#num GRN_OP_SLASH_ASSIGN
#num GRN_OP_MOD_ASSIGN
#num GRN_OP_PLUS_ASSIGN
#num GRN_OP_MINUS_ASSIGN
#num GRN_OP_SHIFTL_ASSIGN
#num GRN_OP_SHIFTR_ASSIGN
#num GRN_OP_SHIFTRR_ASSIGN
#num GRN_OP_AND_ASSIGN
#num GRN_OP_XOR_ASSIGN
#num GRN_OP_OR_ASSIGN
#num GRN_OP_JUMP
#num GRN_OP_CJUMP
#num GRN_OP_COMMA
#num GRN_OP_BITWISE_OR
#num GRN_OP_BITWISE_XOR
#num GRN_OP_BITWISE_AND
#num GRN_OP_BITWISE_NOT
#num GRN_OP_EQUAL
#num GRN_OP_NOT_EQUAL
#num GRN_OP_LESS
#num GRN_OP_GREATER
#num GRN_OP_LESS_EQUAL
#num GRN_OP_GREATER_EQUAL
#num GRN_OP_IN
#num GRN_OP_MATCH
#num GRN_OP_NEAR
#num GRN_OP_NEAR2
#num GRN_OP_SIMILAR
#num GRN_OP_TERM_EXTRACT
#num GRN_OP_SHIFTL
#num GRN_OP_SHIFTR
#num GRN_OP_SHIFTRR
#num GRN_OP_PLUS
#num GRN_OP_MINUS
#num GRN_OP_STAR
#num GRN_OP_SLASH
#num GRN_OP_MOD
#num GRN_OP_DELETE
#num GRN_OP_INCR
#num GRN_OP_DECR
#num GRN_OP_INCR_POST
#num GRN_OP_DECR_POST
#num GRN_OP_NOT
#num GRN_OP_ADJUST
#num GRN_OP_EXACT
#num GRN_OP_LCP
#num GRN_OP_PARTIAL
#num GRN_OP_UNSPLIT
#num GRN_OP_PREFIX
#num GRN_OP_SUFFIX
#num GRN_OP_GEO_DISTANCE1
#num GRN_OP_GEO_DISTANCE2
#num GRN_OP_GEO_DISTANCE3
#num GRN_OP_GEO_DISTANCE4
#num GRN_OP_GEO_WITHINP5
#num GRN_OP_GEO_WITHINP6
#num GRN_OP_GEO_WITHINP8
#num GRN_OP_OBJ_SEARCH
#num GRN_OP_EXPR_GET_VAR
#num GRN_OP_TABLE_CREATE
#num GRN_OP_TABLE_SELECT
#num GRN_OP_TABLE_SORT
#num GRN_OP_TABLE_GROUP
#num GRN_OP_JSON_PUT
#num GRN_OP_GET_MEMBER
{- struct _grn_table_group_result {
    grn_obj * table;
    unsigned char key_begin;
    unsigned char key_end;
    int limit;
    grn_table_group_flags flags;
    grn_operator op;
}; -}
#starttype struct _grn_table_group_result
#field table , Ptr <_grn_obj>
#field key_begin , CUChar
#field key_end , CUChar
#field limit , CInt
#field flags , CUInt
#field op , <grn_operator>
#stoptype
#ccall grn_table_group , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_table_sort_key> -> CInt -> Ptr <_grn_table_group_result> -> CInt -> IO <grn_rc>
#ccall grn_table_setoperation , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> <grn_operator> -> IO <grn_rc>
#ccall grn_table_difference , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_table_columns , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> Ptr <_grn_obj> -> IO CInt
#ccall grn_obj_column , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_table_size , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUInt
#ccall grn_column_create , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> CString -> CUShort -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
#ccall grn_column_index_update , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> CUInt -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_column_table , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
{- typedef enum {
            GRN_INFO_ENCODING = 0,
            GRN_INFO_SOURCE,
            GRN_INFO_DEFAULT_TOKENIZER,
            GRN_INFO_ELEMENT_SIZE,
            GRN_INFO_CURR_MAX,
            GRN_INFO_MAX_ELEMENT_SIZE,
            GRN_INFO_SEG_SIZE,
            GRN_INFO_CHUNK_SIZE,
            GRN_INFO_MAX_SECTION,
            GRN_INFO_HOOK_LOCAL_DATA,
            GRN_INFO_ELEMENT_A,
            GRN_INFO_ELEMENT_CHUNK,
            GRN_INFO_ELEMENT_CHUNK_SIZE,
            GRN_INFO_ELEMENT_BUFFER_FREE,
            GRN_INFO_ELEMENT_NTERMS,
            GRN_INFO_ELEMENT_NTERMS_VOID,
            GRN_INFO_ELEMENT_SIZE_IN_CHUNK,
            GRN_INFO_ELEMENT_POS_IN_CHUNK,
            GRN_INFO_ELEMENT_SIZE_IN_BUFFER,
            GRN_INFO_ELEMENT_POS_IN_BUFFER,
            GRN_INFO_ELEMENT_ESTIMATE_SIZE,
            GRN_INFO_NGRAM_UNIT_SIZE,
            GRN_INFO_PARTIAL_MATCH_THRESHOLD,
            GRN_INFO_II_SPLIT_THRESHOLD,
            GRN_INFO_SUPPORT_ZLIB,
            GRN_INFO_SUPPORT_LZO,
            GRN_INFO_NORMALIZER
        } grn_info_type; -}
#integral_t grn_info_type
#num GRN_INFO_ENCODING
#num GRN_INFO_SOURCE
#num GRN_INFO_DEFAULT_TOKENIZER
#num GRN_INFO_ELEMENT_SIZE
#num GRN_INFO_CURR_MAX
#num GRN_INFO_MAX_ELEMENT_SIZE
#num GRN_INFO_SEG_SIZE
#num GRN_INFO_CHUNK_SIZE
#num GRN_INFO_MAX_SECTION
#num GRN_INFO_HOOK_LOCAL_DATA
#num GRN_INFO_ELEMENT_A
#num GRN_INFO_ELEMENT_CHUNK
#num GRN_INFO_ELEMENT_CHUNK_SIZE
#num GRN_INFO_ELEMENT_BUFFER_FREE
#num GRN_INFO_ELEMENT_NTERMS
#num GRN_INFO_ELEMENT_NTERMS_VOID
#num GRN_INFO_ELEMENT_SIZE_IN_CHUNK
#num GRN_INFO_ELEMENT_POS_IN_CHUNK
#num GRN_INFO_ELEMENT_SIZE_IN_BUFFER
#num GRN_INFO_ELEMENT_POS_IN_BUFFER
#num GRN_INFO_ELEMENT_ESTIMATE_SIZE
#num GRN_INFO_NGRAM_UNIT_SIZE
#num GRN_INFO_PARTIAL_MATCH_THRESHOLD
#num GRN_INFO_II_SPLIT_THRESHOLD
#num GRN_INFO_SUPPORT_ZLIB
#num GRN_INFO_SUPPORT_LZO
#num GRN_INFO_NORMALIZER
#ccall grn_obj_get_info , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_info_type> -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
#ccall grn_obj_set_info , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_info_type> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_obj_get_element_info , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> <grn_info_type> -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
#ccall grn_obj_set_element_info , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> <grn_info_type> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_obj_is_builtin , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUChar
#ccall grn_obj_get_value , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
#ccall grn_obj_get_values , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> Ptr (Ptr ()) -> IO CInt
#ccall grn_obj_set_value , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> Ptr <_grn_obj> -> CInt -> IO <grn_rc>
#ccall grn_obj_remove , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_obj_rename , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO <grn_rc>
#ccall grn_table_rename , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO <grn_rc>
#ccall grn_column_rename , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO <grn_rc>
#ccall grn_obj_close , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_obj_reinit , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> CUChar -> IO <grn_rc>
#ccall grn_obj_unlink , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO ()
#ccall grn_obj_user_data , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr <grn_user_data>)
#ccall grn_obj_set_finalizer , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <grn_proc_func> -> IO <grn_rc>
#ccall grn_obj_path , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CString
#ccall grn_obj_name , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CInt -> IO CInt
#ccall grn_column_name , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CInt -> IO CInt
#ccall grn_obj_get_range , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUInt
#ccall grn_obj_expire , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> IO CInt
#ccall grn_obj_check , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CInt
#ccall grn_obj_lock , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> CInt -> IO <grn_rc>
#ccall grn_obj_unlock , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_obj_clear_lock , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_obj_is_locked , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUInt
#ccall grn_obj_defrag , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> IO CInt
#ccall grn_obj_db , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
#ccall grn_obj_id , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUInt
{- typedef struct _grn_search_optarg grn_search_optarg; -}
-- #opaque_t _grn_search_optarg
-- #synonym_t grn_search_optarg , <_grn_search_optarg>
{- struct _grn_search_optarg {
    grn_operator mode;
    int similarity_threshold;
    int max_interval;
    int * weight_vector;
    int vector_size;
    grn_obj * proc;
    int max_size;
}; -}
#starttype struct _grn_search_optarg
#field mode , <grn_operator>
#field similarity_threshold , CInt
#field max_interval , CInt
#field weight_vector , Ptr CInt
#field vector_size , CInt
#field proc , Ptr <_grn_obj>
#field max_size , CInt
#stoptype
#ccall grn_obj_search , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> <grn_operator> -> Ptr <_grn_search_optarg> -> IO <grn_rc>
#callback grn_selector_func , Ptr <struct _grn_ctx> -> Ptr <struct _grn_obj> -> Ptr <struct _grn_obj> -> CInt -> Ptr (Ptr <struct _grn_obj>) -> Ptr <struct _grn_obj> -> <grn_operator> -> IO <grn_rc>
#ccall grn_proc_set_selector , Ptr <struct _grn_ctx> -> Ptr <struct _grn_obj> -> <grn_selector_func> -> IO <grn_rc>
#ccall grn_vector_size , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUInt
#ccall grn_vector_add_element , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> CUInt -> CUInt -> IO <grn_rc>
#ccall grn_vector_get_element , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> Ptr CString -> Ptr CUInt -> Ptr CUInt -> IO CUInt
#ccall grn_proc_call_next , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> IO CInt
#ccall grn_proc_get_ctx_local_data , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr ())
#ccall grn_proc_get_hook_local_data , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr ())
{- typedef enum {
            GRN_HOOK_SET = 0,
            GRN_HOOK_GET,
            GRN_HOOK_INSERT,
            GRN_HOOK_DELETE,
            GRN_HOOK_SELECT
        } grn_hook_entry; -}
#integral_t grn_hook_entry
#num GRN_HOOK_SET
#num GRN_HOOK_GET
#num GRN_HOOK_INSERT
#num GRN_HOOK_DELETE
#num GRN_HOOK_SELECT
#ccall grn_obj_add_hook , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_hook_entry> -> CInt -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_obj_get_nhooks , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_hook_entry> -> IO CInt
#ccall grn_obj_get_hook , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_hook_entry> -> CInt -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
#ccall grn_obj_delete_hook , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_hook_entry> -> CInt -> IO <grn_rc>
#ccall grn_obj_open , Ptr <_grn_ctx> -> CUChar -> CUShort -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_column_index , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_operator> -> Ptr (Ptr <_grn_obj>) -> CInt -> Ptr CInt -> IO CInt
#ccall grn_obj_delete_by_id , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> CUChar -> IO <grn_rc>
#ccall grn_obj_path_by_id , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> CString -> IO <grn_rc>
{- typedef struct {
            int latitude; int longitude;
        } grn_geo_point; -}
#starttype grn_geo_point
#field latitude , CInt
#field longitude , CInt
#stoptype
#ccall grn_geo_select_in_rectangle , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> <grn_operator> -> IO <grn_rc>
#ccall grn_geo_estimate_in_rectangle , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> IO CInt
#ccall grn_geo_cursor_open_in_rectangle , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> CInt -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_geo_cursor_next , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr <grn_posting>)
{- typedef struct _grn_snip grn_snip; -}
#opaque_t _grn_snip
#synonym_t grn_snip , <_grn_snip>
{- typedef struct _grn_snip_mapping grn_snip_mapping; -}
-- #opaque_t _grn_snip_mapping
-- #synonym_t grn_snip_mapping , <_grn_snip_mapping>
{- struct _grn_snip_mapping {
    void * dummy;
}; -}
#starttype struct _grn_snip_mapping
#field dummy , Ptr ()
#stoptype
#ccall grn_snip_open , Ptr <_grn_ctx> -> CInt -> CUInt -> CUInt -> CString -> CUInt -> CString -> CUInt -> Ptr <_grn_snip_mapping> -> IO (Ptr <_grn_snip>)
#ccall grn_snip_add_cond , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> CString -> CUInt -> CString -> CUInt -> IO <grn_rc>
#ccall grn_snip_set_normalizer , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_snip_get_normalizer , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr <_grn_obj>)
#ccall grn_snip_exec , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> Ptr CUInt -> Ptr CUInt -> IO <grn_rc>
#ccall grn_snip_get_result , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> CString -> Ptr CUInt -> IO <grn_rc>

{- typedef struct _grn_logger_info grn_logger_info; -}
-- #opaque_t _grn_logger_info
-- #synonym_t grn_logger_info , <_grn_logger_info>
{- struct _grn_logger_info {
    grn_log_level max_level;
    int flags;
    void (* func)(int,
                  const char *,
                  const char *,
                  const char *,
                  const char *,
                  void *);
    void * func_arg;
}; -}
#starttype struct _grn_logger_info
#field max_level , <grn_log_level>
#field flags , CInt
#field func , FunPtr (CInt -> CString -> CString -> CString -> CString -> Ptr () -> IO ())
#field func_arg , Ptr ()
#stoptype
#ccall grn_logger_info_set , Ptr <_grn_ctx> -> Ptr <_grn_logger_info> -> IO <grn_rc>
{- typedef struct _grn_logger grn_logger; -}
-- #opaque_t _grn_logger
-- #synonym_t grn_logger , <_grn_logger>
{- struct _grn_logger {
    grn_log_level max_level;
    int flags;
    void * user_data;
    void (* log)(grn_ctx * ctx,
                 grn_log_level level,
                 const char * timestamp,
                 const char * title,
                 const char * message,
                 const char * location,
                 void * user_data);
    void (* reopen)(grn_ctx * ctx, void * user_data);
    void (* fin)(grn_ctx * ctx, void * user_data);
}; -}
#starttype struct _grn_logger
#field max_level , <grn_log_level>
#field flags , CInt
#field user_data , Ptr ()
#field log , FunPtr (Ptr <_grn_ctx> -> <grn_log_level> -> CString -> CString -> CString -> CString -> Ptr () -> IO ())
#field reopen , FunPtr (Ptr <_grn_ctx> -> Ptr () -> IO ())
#field fin , FunPtr (Ptr <_grn_ctx> -> Ptr () -> IO ())
#stoptype
#ccall grn_logger_set , Ptr <_grn_ctx> -> Ptr <_grn_logger> -> IO <grn_rc>
#ccall grn_logger_set_max_level , Ptr <_grn_ctx> -> <grn_log_level> -> IO ()
#ccall grn_logger_get_max_level , Ptr <_grn_ctx> -> IO <grn_log_level>
#ccall grn_logger_put , Ptr <_grn_ctx> -> <grn_log_level> -> CString -> CInt -> CString -> CString -> IO ()
#ccall grn_logger_reopen , Ptr <_grn_ctx> -> IO ()
#ccall grn_logger_pass , Ptr <_grn_ctx> -> <grn_log_level> -> IO CUChar
#ccall grn_default_logger_set_max_level , <grn_log_level> -> IO ()
#ccall grn_default_logger_get_max_level , IO <grn_log_level>
#ccall grn_default_logger_set_path , CString -> IO ()
#ccall grn_default_logger_get_path , IO CString
{- typedef struct _grn_query_logger grn_query_logger; -}
-- #opaque_t _grn_query_logger
-- #synonym_t grn_query_logger , <_grn_query_logger>
{- struct _grn_query_logger {
    unsigned int flags;
    void * user_data;
    void (* log)(grn_ctx * ctx,
                 unsigned int flag,
                 const char * timestamp,
                 const char * info,
                 const char * message,
                 void * user_data);
    void (* reopen)(grn_ctx * ctx, void * user_data);
    void (* fin)(grn_ctx * ctx, void * user_data);
}; -}
#starttype struct _grn_query_logger
#field flags , CUInt
#field user_data , Ptr ()
#field log , FunPtr (Ptr <_grn_ctx> -> CUInt -> CString -> CString -> CString -> Ptr () -> IO ())
#field reopen , FunPtr (Ptr <_grn_ctx> -> Ptr () -> IO ())
#field fin , FunPtr (Ptr <_grn_ctx> -> Ptr () -> IO ())
#stoptype
#ccall grn_query_logger_set , Ptr <_grn_ctx> -> Ptr <_grn_query_logger> -> IO <grn_rc>
#ccall grn_query_logger_put , Ptr <_grn_ctx> -> CUInt -> CString -> CString -> IO ()
#ccall grn_query_logger_reopen , Ptr <_grn_ctx> -> IO ()
#ccall grn_query_logger_pass , Ptr <_grn_ctx> -> CUInt -> IO CUChar
#ccall grn_default_query_logger_set_flags , CUInt -> IO ()
#ccall grn_default_query_logger_get_flags , IO CUInt
#ccall grn_default_query_logger_set_path , CString -> IO ()
#ccall grn_default_query_logger_get_path , IO CString
#ccall grn_bulk_reinit , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_bulk_resize , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_bulk_write , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO <grn_rc>
#ccall grn_bulk_write_from , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> CUInt -> IO <grn_rc>
#ccall grn_bulk_reserve , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_bulk_space , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_bulk_truncate , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_bulk_fin , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_text_itoa , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> IO <grn_rc>
#ccall grn_text_itoa_padded , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> CChar -> CUInt -> IO <grn_rc>
#ccall grn_text_lltoa , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CLong -> IO <grn_rc>
#ccall grn_text_ftoa , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CDouble -> IO <grn_rc>
#ccall grn_text_itoh , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> CUInt -> IO <grn_rc>
#ccall grn_text_itob , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_text_lltob32h , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CLong -> IO <grn_rc>
#ccall grn_text_benc , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO <grn_rc>
#ccall grn_text_esc , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO <grn_rc>
#ccall grn_text_urlenc , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO <grn_rc>
#ccall grn_text_urldec , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CString -> CChar -> IO CString
#ccall grn_text_escape_xml , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO <grn_rc>
#ccall grn_text_time2rfc1123 , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> IO <grn_rc>
#ccall grn_text_printf , Ptr <struct _grn_ctx> -> Ptr <struct _grn_obj> -> CString -> IO <grn_rc>
-- #ccall grn_text_vprintf , Ptr <struct _grn_ctx> -> Ptr <struct _grn_obj> -> CString -> <__builtin_va_list> -> IO <grn_rc>
{- typedef struct _grn_obj_format grn_obj_format; -}
-- #opaque_t _grn_obj_format
-- #synonym_t grn_obj_format , <_grn_obj_format>
{- struct _grn_obj_format {
    grn_obj columns;
    const void * min;
    const void * max;
    unsigned int min_size;
    unsigned int max_size;
    int nhits;
    int offset;
    int limit;
    int hits_offset;
    int flags;
    grn_obj * expression;
}; -}
#starttype struct _grn_obj_format
#field columns , <_grn_obj>
#field min , Ptr ()
#field max , Ptr ()
#field min_size , CUInt
#field max_size , CUInt
#field nhits , CInt
#field offset , CInt
#field limit , CInt
#field hits_offset , CInt
#field flags , CInt
#field expression , Ptr <_grn_obj>
#stoptype
#ccall grn_output_obj , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_content_type> -> Ptr <_grn_obj> -> Ptr <_grn_obj_format> -> IO ()
#ccall grn_output_envelope , Ptr <_grn_ctx> -> <grn_rc> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> CString -> CInt -> IO ()
#ccall grn_ctx_output_array_open , Ptr <_grn_ctx> -> CString -> CInt -> IO ()
#ccall grn_ctx_output_array_close , Ptr <_grn_ctx> -> IO ()
#ccall grn_ctx_output_map_open , Ptr <_grn_ctx> -> CString -> CInt -> IO ()
#ccall grn_ctx_output_map_close , Ptr <_grn_ctx> -> IO ()
#ccall grn_ctx_output_int32 , Ptr <_grn_ctx> -> CInt -> IO ()
#ccall grn_ctx_output_int64 , Ptr <_grn_ctx> -> CLong -> IO ()
#ccall grn_ctx_output_float , Ptr <_grn_ctx> -> CDouble -> IO ()
#ccall grn_ctx_output_cstr , Ptr <_grn_ctx> -> CString -> IO ()
#ccall grn_ctx_output_str , Ptr <_grn_ctx> -> CString -> CUInt -> IO ()
#ccall grn_ctx_output_bool , Ptr <_grn_ctx> -> CUChar -> IO ()
#ccall grn_ctx_output_obj , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj_format> -> IO ()
#ccall grn_ctx_get_mime_type , Ptr <_grn_ctx> -> IO CString
#ccall grn_ctx_recv_handler_set , Ptr <_grn_ctx> -> FunPtr (Ptr <_grn_ctx> -> CInt -> Ptr () -> IO ()) -> Ptr () -> IO ()
#ccall grn_text_otoj , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj_format> -> IO <grn_rc>
#ccall grn_time_now , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO ()
{- typedef struct {
            const char * orig;
            char * norm;
            short * checks;
            unsigned char * ctypes;
            int flags;
            unsigned int orig_blen;
            unsigned int norm_blen;
            unsigned int length;
            grn_encoding encoding;
        } grn_str; -}
#starttype grn_str
#field orig , CString
#field norm , CString
#field checks , Ptr CShort
#field ctypes , Ptr CUChar
#field flags , CInt
#field orig_blen , CUInt
#field norm_blen , CUInt
#field length , CUInt
#field encoding , <grn_encoding>
#stoptype
#ccall grn_str_open , Ptr <_grn_ctx> -> CString -> CUInt -> CInt -> IO (Ptr <grn_str>)
#ccall grn_str_close , Ptr <_grn_ctx> -> Ptr <grn_str> -> IO <grn_rc>
{- typedef enum {
            GRN_CHAR_NULL = 0,
            GRN_CHAR_ALPHA,
            GRN_CHAR_DIGIT,
            GRN_CHAR_SYMBOL,
            GRN_CHAR_HIRAGANA,
            GRN_CHAR_KATAKANA,
            GRN_CHAR_KANJI,
            GRN_CHAR_OTHERS
        } grn_char_type; -}
#integral_t grn_char_type
#num GRN_CHAR_NULL
#num GRN_CHAR_ALPHA
#num GRN_CHAR_DIGIT
#num GRN_CHAR_SYMBOL
#num GRN_CHAR_HIRAGANA
#num GRN_CHAR_KATAKANA
#num GRN_CHAR_KANJI
#num GRN_CHAR_OTHERS
#ccall grn_string_open , Ptr <_grn_ctx> -> CString -> CUInt -> Ptr <_grn_obj> -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_string_get_original , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr CString -> Ptr CUInt -> IO <grn_rc>
#ccall grn_string_get_flags , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CInt
#ccall grn_string_get_normalized , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr CString -> Ptr CUInt -> Ptr CUInt -> IO <grn_rc>
#ccall grn_string_set_normalized , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> CUInt -> IO <grn_rc>
#ccall grn_string_get_checks , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr CShort)
#ccall grn_string_set_checks , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr CShort -> IO <grn_rc>
#ccall grn_string_get_types , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO (Ptr CUChar)
#ccall grn_string_set_types , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr CUChar -> IO <grn_rc>
#ccall grn_string_get_encoding , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_encoding>
#ccall grn_charlen , Ptr <_grn_ctx> -> CString -> CString -> IO CInt
#ccall grn_expr_create , Ptr <_grn_ctx> -> CString -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_expr_close , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_expr_add_var , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_expr_get_var , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_expr_get_var_by_offset , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_expr_append_obj , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> <grn_operator> -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_expr_append_const , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> <grn_operator> -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_expr_append_const_str , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> <grn_operator> -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_expr_append_const_int , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> <grn_operator> -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_expr_append_op , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> <grn_operator> -> CInt -> IO <grn_rc>
#ccall grn_expr_syntax_escape , Ptr <_grn_ctx> -> CString -> CInt -> CString -> CChar -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_expr_syntax_escape_query , Ptr <_grn_ctx> -> CString -> CInt -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_expr_compile , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_expr_exec , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> IO (Ptr <_grn_obj>)
#ccall grn_ctx_push , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_ctx_pop , Ptr <_grn_ctx> -> IO (Ptr <_grn_obj>)
#ccall grn_expr_alloc , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> CUShort -> IO (Ptr <_grn_obj>)
#ccall grn_table_select , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> <grn_operator> -> IO (Ptr <_grn_obj>)
#ccall grn_obj_columns , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> Ptr <_grn_obj> -> IO CInt
{- typedef unsigned int grn_expr_flags; -}
#synonym_t grn_expr_flags , CUInt
#ccall grn_expr_parse , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> Ptr <_grn_obj> -> <grn_operator> -> <grn_operator> -> CUInt -> IO <grn_rc>
#ccall grn_expr_snip , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CInt -> CUInt -> CUInt -> CUInt -> Ptr CString -> Ptr CUInt -> Ptr CString -> Ptr CUInt -> Ptr <_grn_snip_mapping> -> IO (Ptr <_grn_obj>)
#ccall grn_expr_snip_add_conditions , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> CUInt -> Ptr CString -> Ptr CUInt -> Ptr CString -> Ptr CUInt -> IO <grn_rc>
#ccall grn_table_sort_key_from_str , Ptr <_grn_ctx> -> CString -> CUInt -> Ptr <_grn_obj> -> Ptr CUInt -> IO (Ptr <_grn_table_sort_key>)
#ccall grn_table_sort_key_close , Ptr <_grn_ctx> -> Ptr <_grn_table_sort_key> -> CUInt -> IO <grn_rc>
#ccall grn_table_is_grouped , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUChar
#ccall grn_table_max_n_subrecs , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> IO CUInt
#ccall grn_table_create_for_group , Ptr <_grn_ctx> -> CString -> CUInt -> CString -> Ptr <_grn_obj> -> Ptr <_grn_obj> -> CUInt -> IO (Ptr <_grn_obj>)
#ccall grn_table_get_subrecs , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> Ptr CUInt -> Ptr CInt -> CInt -> IO CUInt
#ccall grn_table_tokenize , Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CString -> CUInt -> Ptr <_grn_obj> -> CUChar -> IO (Ptr <_grn_obj>)
#ccall grn_load , Ptr <_grn_ctx> -> <grn_content_type> -> CString -> CUInt -> CString -> CUInt -> CString -> CUInt -> CString -> CUInt -> CString -> CUInt -> IO <grn_rc>
#ccall grn_ctx_connect , Ptr <_grn_ctx> -> CString -> CInt -> CInt -> IO <grn_rc>
#ccall grn_ctx_send , Ptr <_grn_ctx> -> CString -> CUInt -> CInt -> IO CUInt
#ccall grn_ctx_recv , Ptr <_grn_ctx> -> Ptr CString -> Ptr CUInt -> Ptr CInt -> IO CUInt
{- typedef struct _grn_ctx_info grn_ctx_info; -}
-- #opaque_t _grn_ctx_info
#synonym_t grn_ctx_info , <_grn_ctx_info>
{- struct _grn_ctx_info {
    int fd;
    unsigned int com_status;
    grn_obj * outbuf;
    unsigned char stat;
}; -}
#starttype struct _grn_ctx_info
#field fd , CInt
#field com_status , CUInt
#field outbuf , Ptr <_grn_obj>
#field stat , CUChar
#stoptype
#ccall grn_ctx_info_get , Ptr <_grn_ctx> -> Ptr <_grn_ctx_info> -> IO <grn_rc>
#ccall grn_set_segv_handler , IO <grn_rc>
#ccall grn_set_int_handler , IO <grn_rc>
#ccall grn_set_term_handler , IO <grn_rc>
{- typedef struct _grn_hash grn_hash; -}
#opaque_t _grn_hash
#synonym_t grn_hash , <_grn_hash>
{- typedef struct _grn_hash_cursor grn_hash_cursor; -}
#opaque_t _grn_hash_cursor
#synonym_t grn_hash_cursor , <_grn_hash_cursor>
#ccall grn_hash_create , Ptr <_grn_ctx> -> CString -> CUInt -> CUInt -> CUInt -> IO (Ptr <_grn_hash>)
#ccall grn_hash_open , Ptr <_grn_ctx> -> CString -> IO (Ptr <_grn_hash>)
#ccall grn_hash_close , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> IO <grn_rc>
#ccall grn_hash_add , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> Ptr () -> CUInt -> Ptr (Ptr ()) -> Ptr CInt -> IO CUInt
#ccall grn_hash_get , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> Ptr () -> CUInt -> Ptr (Ptr ()) -> IO CUInt
#ccall grn_hash_get_key , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> CUInt -> Ptr () -> CInt -> IO CInt
#ccall grn_hash_get_key2 , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> CUInt -> Ptr <_grn_obj> -> IO CInt
#ccall grn_hash_get_value , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> CUInt -> Ptr () -> IO CInt
#ccall grn_hash_set_value , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> CUInt -> Ptr () -> CInt -> IO <grn_rc>
{- typedef struct _grn_table_delete_optarg grn_table_delete_optarg; -}
-- #opaque_t _grn_table_delete_optarg
-- #synonym_t grn_table_delete_optarg , <_grn_table_delete_optarg>
{- struct _grn_table_delete_optarg {
    int flags;
    int (* func)(grn_ctx * ctx, grn_obj *, grn_id, void *);
    void * func_arg;
}; -}
#starttype struct _grn_table_delete_optarg
#field flags , CInt
#field func , FunPtr (Ptr <_grn_ctx> -> Ptr <_grn_obj> -> CUInt -> Ptr () -> CInt)
#field func_arg , Ptr ()
#stoptype
#ccall grn_hash_delete_by_id , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> CUInt -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
#ccall grn_hash_delete , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> Ptr () -> CUInt -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
#ccall grn_hash_cursor_open , Ptr <_grn_ctx> -> Ptr <_grn_hash> -> Ptr () -> CUInt -> Ptr () -> CUInt -> CInt -> CInt -> CInt -> IO (Ptr <_grn_hash_cursor>)
#ccall grn_hash_cursor_next , Ptr <_grn_ctx> -> Ptr <_grn_hash_cursor> -> IO CUInt
#ccall grn_hash_cursor_close , Ptr <_grn_ctx> -> Ptr <_grn_hash_cursor> -> IO ()
#ccall grn_hash_cursor_get_key , Ptr <_grn_ctx> -> Ptr <_grn_hash_cursor> -> Ptr (Ptr ()) -> IO CInt
#ccall grn_hash_cursor_get_value , Ptr <_grn_ctx> -> Ptr <_grn_hash_cursor> -> Ptr (Ptr ()) -> IO CInt
#ccall grn_hash_cursor_set_value , Ptr <_grn_ctx> -> Ptr <_grn_hash_cursor> -> Ptr () -> CInt -> IO <grn_rc>
#ccall grn_hash_cursor_get_key_value , Ptr <_grn_ctx> -> Ptr <_grn_hash_cursor> -> Ptr (Ptr ()) -> Ptr CUInt -> Ptr (Ptr ()) -> IO CInt
#ccall grn_hash_cursor_delete , Ptr <_grn_ctx> -> Ptr <_grn_hash_cursor> -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
{- typedef struct _grn_array grn_array; -}
#opaque_t _grn_array
#synonym_t grn_array , <_grn_array>
{- typedef struct _grn_array_cursor grn_array_cursor; -}
#opaque_t _grn_array_cursor
#synonym_t grn_array_cursor , <_grn_array_cursor>
#ccall grn_array_create , Ptr <_grn_ctx> -> CString -> CUInt -> CUInt -> IO (Ptr <_grn_array>)
#ccall grn_array_open , Ptr <_grn_ctx> -> CString -> IO (Ptr <_grn_array>)
#ccall grn_array_close , Ptr <_grn_ctx> -> Ptr <_grn_array> -> IO <grn_rc>
#ccall grn_array_add , Ptr <_grn_ctx> -> Ptr <_grn_array> -> Ptr (Ptr ()) -> IO CUInt
#ccall grn_array_push , Ptr <_grn_ctx> -> Ptr <_grn_array> -> FunPtr (Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUInt -> Ptr () -> IO ()) -> Ptr () -> IO CUInt
#ccall grn_array_pull , Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUChar -> FunPtr (Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUInt -> Ptr () -> IO ()) -> Ptr () -> IO CUInt
#ccall grn_array_unblock , Ptr <_grn_ctx> -> Ptr <_grn_array> -> IO ()
#ccall grn_array_get_value , Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUInt -> Ptr () -> IO CInt
#ccall grn_array_set_value , Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUInt -> Ptr () -> CInt -> IO <grn_rc>
#ccall grn_array_cursor_open , Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUInt -> CUInt -> CInt -> CInt -> CInt -> IO (Ptr <_grn_array_cursor>)
#ccall grn_array_cursor_next , Ptr <_grn_ctx> -> Ptr <_grn_array_cursor> -> IO CUInt
#ccall grn_array_cursor_get_value , Ptr <_grn_ctx> -> Ptr <_grn_array_cursor> -> Ptr (Ptr ()) -> IO CInt
#ccall grn_array_cursor_set_value , Ptr <_grn_ctx> -> Ptr <_grn_array_cursor> -> Ptr () -> CInt -> IO <grn_rc>
#ccall grn_array_cursor_delete , Ptr <_grn_ctx> -> Ptr <_grn_array_cursor> -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
#ccall grn_array_cursor_close , Ptr <_grn_ctx> -> Ptr <_grn_array_cursor> -> IO ()
#ccall grn_array_delete_by_id , Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUInt -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
#ccall grn_array_next , Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUInt -> IO CUInt
#ccall _grn_array_get_value , Ptr <_grn_ctx> -> Ptr <_grn_array> -> CUInt -> IO (Ptr ())
{- typedef struct _grn_pat grn_pat; -}
#opaque_t _grn_pat
#synonym_t grn_pat , <_grn_pat>
{- typedef struct _grn_pat_cursor grn_pat_cursor; -}
#opaque_t _grn_pat_cursor
#synonym_t grn_pat_cursor , <_grn_pat_cursor>
#ccall grn_pat_create , Ptr <_grn_ctx> -> CString -> CUInt -> CUInt -> CUInt -> IO (Ptr <_grn_pat>)
#ccall grn_pat_open , Ptr <_grn_ctx> -> CString -> IO (Ptr <_grn_pat>)
#ccall grn_pat_close , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> IO <grn_rc>
#ccall grn_pat_remove , Ptr <_grn_ctx> -> CString -> IO <grn_rc>
#ccall grn_pat_get , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> Ptr () -> CUInt -> Ptr (Ptr ()) -> IO CUInt
#ccall grn_pat_add , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> Ptr () -> CUInt -> Ptr (Ptr ()) -> Ptr CInt -> IO CUInt
#ccall grn_pat_get_key , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> CUInt -> Ptr () -> CInt -> IO CInt
#ccall grn_pat_get_key2 , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> CUInt -> Ptr <_grn_obj> -> IO CInt
#ccall grn_pat_get_value , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> CUInt -> Ptr () -> IO CInt
#ccall grn_pat_set_value , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> CUInt -> Ptr () -> CInt -> IO <grn_rc>
#ccall grn_pat_delete_by_id , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> CUInt -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
#ccall grn_pat_delete , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> Ptr () -> CUInt -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
#ccall grn_pat_delete_with_sis , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> CUInt -> Ptr <_grn_table_delete_optarg> -> IO CInt
{- typedef struct _grn_pat_scan_hit grn_pat_scan_hit; -}
-- #opaque_t _grn_pat_scan_hit
-- #synonym_t grn_pat_scan_hit , <_grn_pat_scan_hit>
{- struct _grn_pat_scan_hit {
    grn_id id; unsigned int offset; unsigned int length;
}; -}
#starttype struct _grn_pat_scan_hit
#field id , CUInt
#field offset , CUInt
#field length , CUInt
#stoptype
#ccall grn_pat_scan , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> CString -> CUInt -> Ptr <_grn_pat_scan_hit> -> CUInt -> Ptr CString -> IO CInt
#ccall grn_pat_prefix_search , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> Ptr () -> CUInt -> Ptr <_grn_hash> -> IO <grn_rc>
#ccall grn_pat_suffix_search , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> Ptr () -> CUInt -> Ptr <_grn_hash> -> IO <grn_rc>
#ccall grn_pat_lcp_search , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> Ptr () -> CUInt -> IO CUInt
#ccall grn_pat_size , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> IO CUInt
#ccall grn_pat_cursor_open , Ptr <_grn_ctx> -> Ptr <_grn_pat> -> Ptr () -> CUInt -> Ptr () -> CUInt -> CInt -> CInt -> CInt -> IO (Ptr <_grn_pat_cursor>)
#ccall grn_pat_cursor_next , Ptr <_grn_ctx> -> Ptr <_grn_pat_cursor> -> IO CUInt
#ccall grn_pat_cursor_close , Ptr <_grn_ctx> -> Ptr <_grn_pat_cursor> -> IO ()
#ccall grn_pat_cursor_get_key , Ptr <_grn_ctx> -> Ptr <_grn_pat_cursor> -> Ptr (Ptr ()) -> IO CInt
#ccall grn_pat_cursor_get_value , Ptr <_grn_ctx> -> Ptr <_grn_pat_cursor> -> Ptr (Ptr ()) -> IO CInt
#ccall grn_pat_cursor_get_key_value , Ptr <_grn_ctx> -> Ptr <_grn_pat_cursor> -> Ptr (Ptr ()) -> Ptr CUInt -> Ptr (Ptr ()) -> IO CInt
#ccall grn_pat_cursor_set_value , Ptr <_grn_ctx> -> Ptr <_grn_pat_cursor> -> Ptr () -> CInt -> IO <grn_rc>
#ccall grn_pat_cursor_delete , Ptr <_grn_ctx> -> Ptr <_grn_pat_cursor> -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
{- typedef struct _grn_dat grn_dat; -}
#opaque_t _grn_dat
#synonym_t grn_dat , <_grn_dat>
{- typedef struct _grn_dat_cursor grn_dat_cursor; -}
#opaque_t _grn_dat_cursor
#synonym_t grn_dat_cursor , <_grn_dat_cursor>
#ccall grn_dat_create , Ptr <_grn_ctx> -> CString -> CUInt -> CUInt -> CUInt -> IO (Ptr <_grn_dat>)
#ccall grn_dat_open , Ptr <_grn_ctx> -> CString -> IO (Ptr <_grn_dat>)
#ccall grn_dat_close , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> IO <grn_rc>
#ccall grn_dat_remove , Ptr <_grn_ctx> -> CString -> IO <grn_rc>
#ccall grn_dat_get , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> Ptr () -> CUInt -> Ptr (Ptr ()) -> IO CUInt
#ccall grn_dat_add , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> Ptr () -> CUInt -> Ptr (Ptr ()) -> Ptr CInt -> IO CUInt
#ccall grn_dat_get_key , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> CUInt -> Ptr () -> CInt -> IO CInt
#ccall grn_dat_get_key2 , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> CUInt -> Ptr <_grn_obj> -> IO CInt
#ccall grn_dat_delete_by_id , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> CUInt -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
#ccall grn_dat_delete , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> Ptr () -> CUInt -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
#ccall grn_dat_update_by_id , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> CUInt -> Ptr () -> CUInt -> IO <grn_rc>
#ccall grn_dat_update , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> Ptr () -> CUInt -> Ptr () -> CUInt -> IO <grn_rc>
#ccall grn_dat_size , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> IO CUInt
#ccall grn_dat_cursor_open , Ptr <_grn_ctx> -> Ptr <_grn_dat> -> Ptr () -> CUInt -> Ptr () -> CUInt -> CInt -> CInt -> CInt -> IO (Ptr <_grn_dat_cursor>)
#ccall grn_dat_cursor_next , Ptr <_grn_ctx> -> Ptr <_grn_dat_cursor> -> IO CUInt
#ccall grn_dat_cursor_close , Ptr <_grn_ctx> -> Ptr <_grn_dat_cursor> -> IO ()
#ccall grn_dat_cursor_get_key , Ptr <_grn_ctx> -> Ptr <_grn_dat_cursor> -> Ptr (Ptr ()) -> IO CInt
#ccall grn_dat_cursor_delete , Ptr <_grn_ctx> -> Ptr <_grn_dat_cursor> -> Ptr <_grn_table_delete_optarg> -> IO <grn_rc>
{- typedef struct _grn_ii grn_ii; -}
#opaque_t _grn_ii
#synonym_t grn_ii , <_grn_ii>
{- typedef struct _grn_ii_buffer grn_ii_buffer; -}
#opaque_t _grn_ii_buffer
#synonym_t grn_ii_buffer , <_grn_ii_buffer>
#ccall grn_ii_buffer_open , Ptr <_grn_ctx> -> Ptr <_grn_ii> -> CLong -> IO (Ptr <_grn_ii_buffer>)
#ccall grn_ii_buffer_append , Ptr <_grn_ctx> -> Ptr <_grn_ii_buffer> -> CUInt -> CUInt -> Ptr <_grn_obj> -> IO <grn_rc>
#ccall grn_ii_buffer_commit , Ptr <_grn_ctx> -> Ptr <_grn_ii_buffer> -> IO <grn_rc>
#ccall grn_ii_buffer_close , Ptr <_grn_ctx> -> Ptr <_grn_ii_buffer> -> IO <grn_rc>