type LREFlag* {.size: sizeof(cint).} = enum LRE_FLAG_GLOBAL = "g" LRE_FLAG_IGNORECASE = "i" LRE_FLAG_MULTILINE = "m" LRE_FLAG_DOTALL = "s" LRE_FLAG_UNICODE = "u" LRE_FLAG_STICKY = "y" LREFlags* = set[LREFlag] func toCInt*(flags: LREFlags): cint = cint(cast[uint8](flags)) func toLREFlags*(flags: cint): LREFlags = cast[LREFlags](flags) {.passc: "-Ilib/".} {.push header: "quickjs/libregexp.h", importc.} proc lre_compile*(plen: ptr cint; error_msg: cstring; error_msg_size: cint; buf: cstring; buf_len: csize_t; re_flags: cint; opaque: pointer): ptr uint8 proc lre_exec*(capture: ptr ptr uint8; bc_buf, cbuf: ptr uint8; cindex, clen, cbuf_type: cint; opaque: pointer): cint proc lre_get_capture_count*(bc_buf: ptr uint8): cint proc lre_get_flags*(bc_buf: ptr uint8): cint {.pop.}