ffi.cdef(""" typedef struct { size_t current_index; size_t total_index; int state; int is_valid; int ends_on_codepoint; } utf8_validator_t; void utf8vld_reset (utf8_validator_t* validator); void utf8vld_validate (utf8_validator_t* validator, const uint8_t* data, size_t offset, size_t length); """) ffi.validator = ffi.dlopen('libutf8validator.so') from test_cffi_validator import Utf8ValidatorCFFI VALIDATORS.append(Utf8ValidatorCFFI(ffi)) except: print "cffi not installed" try: if True or not 'PyPy' in sys.version: from wsaccel.utf8validator import Utf8Validator as ValidatorCython #VALIDATORS.append(ValidatorCython()) else: print "skipping installed wsaccel on PyPy" except:
self._vld[0].current_index, \ self._vld[0].total_index if __name__ == '__main__': ffi = FFI() ffi.cdef(""" typedef struct { size_t current_index; size_t total_index; int state; int is_valid; int ends_on_codepoint; } utf8_validator_t; void utf8vld_reset (utf8_validator_t* validator); void utf8vld_validate (utf8_validator_t* validator, const uint8_t* data, size_t offset, size_t length); """) ffi.validator = ffi.dlopen('libutf8validator.so') validator = Utf8ValidatorCFFI(ffi) test_utf8_incremental(validator) print "ok, validator %s works" % validator