TYPEMAP
SennaPerl_Index *   T_PTROBJ_INDEX
SennaPerl_Query *   T_PTROBJ_QUERY
SennaPerl_Records * T_PTROBJ_RECORDS
SennaPerl_Snippet * T_PTROBJ_SNIP
SennaPerl_DB *      T_PTROBJ_DB
SennaPerl_Ctx *     T_PTROBJ_CTX
sen_encoding        T_ENUM
sen_sel_mode        T_ENUM
sen_sort_mode       T_ENUM
sen_rc              T_ENUM
sen_rec_unit        T_ENUM
sen_id              T_U_INT
sen_sel_operator    T_ENUM
sen_snip_mapping *  T_PTROBJ

INPUT
T_PTROBJ_INDEX
        $var = XS_STATE(SennaPerl_Index *, $arg);

T_PTROBJ_QUERY
        $var = XS_STATE(SennaPerl_Query *, $arg);

T_PTROBJ_RECORDS
        $var = XS_STATE(SennaPerl_Records *, $arg);

T_PTROBJ_SNIP
        $var = XS_STATE(SennaPerl_Snippet *, $arg);

T_PTROBJ_DB
        $var = XS_STATE(SennaPerl_DB *, $arg);

T_PTROBJ_CTX
        $var = XS_STATE(SennaPerl_Ctx *, $arg);

OUTPUT
T_PTROBJ_SNIP
        XS_STRUCT2OBJ($arg, "Senna::Snippet", $var);
        SvREADONLY_on($arg);

