about summary refs log blame commit diff stats
path: root/src/bindings/libunicode.nim
blob: d53fa06026cc82b11fc2dd055ad5dd748bee8510 (plain) (tree)






















                                                                                         
type
  DynBufReallocFunc = proc(opaque: pointer, p: pointer, size: csize_t): pointer {.cdecl.}

  CharRange* = object
    len*: cint # in points, always even
    size*: cint
    points*: ptr uint32 # points sorted by increasing value
    mem_opaque*: pointer
    realloc_func*: DynBufReallocFunc

  UnicodeNormalizationEnum* {.size: sizeof(cint).} = enum
    UNICODE_NFC, UNICODE_NFD, UNICODE_NKFC, UNICODE_NKFD

proc cr_init*(cr: ptr CharRange, mem_opaque: pointer,
              realloc_func: DynBufReallocFunc) {.importc.}

proc cr_free*(cr: ptr CharRange) {.importc.}

proc unicode_normalize*(pdst: ptr ptr uint32, src: ptr uint32, src_len: cint,
                        n_type: UnicodeNormalizationEnum, opaque: pointer,
                        realloc_func: DynBufReallocFunc): cint {.importc.}

proc unicode_general_category*(cr: ptr CharRange, gc_name: cstring): cint {.importc.}