Types
PyStrObject = ref object of PyObject str*: UnicodeVariant
- Source Edit
UnicodeVariant = ref object setHash*: bool hash*: Hash case ascii*: bool of true: asciiStr*: string of false: unicodeStr*: seq[Rune] ## maxchar cannot below high(char)
- UCS1 or UCS4 variant Source Edit
Lets
pyStrObjectType {.inject.} = newPyType("str", pyObjectType)
- Source Edit
Consts
MAX_UNICODE = 0x0010FFFF
- Source Edit
Procs
proc `$`(self: UnicodeVariant): string {....raises: [], tags: [], forbids: [].}
- Source Edit
proc `&`(a, b: UnicodeVariant): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc `&`(a: UnicodeVariant; c: char): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc `&`(self: PyStrObject; c: char): PyStrObject {.cdecl, ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc `&`(self: PyStrObject; i: PyStrObject): PyStrObject {.cdecl, ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc `==`(self, other: PyStrObject): bool {.inline, cdecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc `==`(self, other: UnicodeVariant): bool {.inline, cdecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc `[]`(self: PyStrObject; index: int): Rune {.inline, ...raises: [], tags: [], forbids: [].}
- helper for PyUnicode_READ Source Edit
proc asUTF8(self: PyStrObject): string {....raises: [], tags: [], forbids: [].}
- PyUnicode_AsUTF8 Source Edit
proc asUTF8(self: UnicodeVariant): string {....raises: [], tags: [], forbids: [].}
- Source Edit
proc asUTF8AndSize(self: PyStrObject): tuple[utf8: string, size: int] {. ...raises: [], tags: [], forbids: [].}
- PyUnicode_AsUTF8AndSize Source Edit
proc asUTF8AndSize(self: UnicodeVariant): tuple[utf8: string, size: int] {. ...raises: [], tags: [], forbids: [].}
- Source Edit
proc checkConsistency(self: PyStrObject; check_content: static[bool] = false): bool
- _PyUnicode_CheckConsistency Source Edit
proc cmpAscii(self: PyStrObject; s: string): int {....raises: [], tags: [], forbids: [].}
- PyUnicode_CompareWithASCIIString Source Edit
proc eqAscii(self: PyStrObject; s: string): bool {....raises: [], tags: [], forbids: [].}
- _PyUnicode_EqualToASCIIString Source Edit
proc fastCopyCharacters(dest: PyStrObject; dest_start: int; frm: PyStrObject; frm_start: int = 0; how_many: int = len(frm) - frm_start) {. ...raises: [], tags: [], forbids: [].}
- _PyUnicode_FastCopyCharacters Source Edit
proc hash(self: PyStrObject): Hash {.inline, cdecl, ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc hash(self: UnicodeVariant): Hash {.inline, cdecl, ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc isAscii(self: PyStrObject): bool {.inline, ...raises: [], tags: [], forbids: [].}
- PyUnicode_IS_ASCII Source Edit
proc joinAsRunes(r: openArray[UnicodeVariant]; sep: string): seq[Rune] {. ...raises: [], tags: [], forbids: [].}
- Join UnicodeVariant with a separator. Source Edit
proc len(str: UnicodeVariant): int {.cdecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc len(strObj: PyStrObject): int {.inline, cdecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc newAsciiUnicodeVariant(s: seq[char]): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newAsciiUnicodeVariant(s: string | cstring | char): UnicodeVariant
- Source Edit
proc newAsciiUnicodeVariantOfCap(cap: int): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newPyAscii(): PyStrObject {....raises: [], tags: [], forbids: [].}
- empty string Source Edit
proc newPyAscii(str: string | cstring | char | int): PyStrObject
- Source Edit
proc newPyString(c: char | Rune): PyStrObject
- Source Edit
proc newPyString(str: PyStrObject): PyStrObject {.cdecl, inline, ...raises: [], tags: [], forbids: [].}
- helper for handle type of string|PyStrObject Source Edit
proc newPyString(str: seq[Rune]): PyStrObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newPyString(str: string | cstring | openArray[char] | int; ensureAscii = false): PyStrObject
- Source Edit
proc newPyString(str: UnicodeVariant): PyStrObject {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newPyStrSimple(): PyStrObject {.cdecl, ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newUnicodeOrAsciiUnicodeVariant(s: string | cstring): UnicodeVariant
- Source Edit
proc newUnicodeUnicodeVariant(s: cstring): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newUnicodeUnicodeVariant(s: seq[Rune]): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newUnicodeUnicodeVariant(s: string): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newUnicodeUnicodeVariantOfCap(cap: int): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newUnicodeVariant(c: char): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newUnicodeVariant(c: Rune): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newUnicodeVariant(len: int; isAscii = false): UnicodeVariant {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newUnicodeVariant(s: openArray[char]; ensureAscii = false): UnicodeVariant {. ...raises: [], tags: [], forbids: [].}
- Source Edit
proc newUnicodeVariant(s: string | cstring; ensureAscii = false): UnicodeVariant
- Create a new UnicodeVariant object. Source Edit
proc ofExactPyStrObject(obj`gensym61: PyObject): bool {.cdecl, inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc ofPyStrObject(obj`gensym61: PyObject): bool {.cdecl, inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc PyUnicode_READ(kind: bool; data: UnicodeVariant; index: int): Rune {. inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc repr(strObj: PyStrObject): string {....raises: [], tags: [], forbids: [].}
- Source Edit
proc toRunes(self: UnicodeVariant): seq[Rune] {....raises: [], tags: [], forbids: [].}
- Source Edit
Methods
method `$`(strObj: PyStrObject): string {....raises: [], tags: [], forbids: [].}
- Source Edit
Macros
macro doKindsWith2It(self, other: UnicodeVariant; do0_3): untyped
- Source Edit
Templates
template data(self: PyStrObject): UnicodeVariant
- restype is unstable. Source Edit
template doBothKindOk(self: UnicodeVariant; op): untyped
- Source Edit
template itemSize(self: PyStrObject): int
- PyUnicode_KIND Source Edit
template itemSize(self: UnicodeVariant): int
- returns 1 or 4 currently Source Edit
template kind(self: PyStrObject): bool
- restype is unstable. Source Edit
template newPyStr(s: seq[Rune] | UnicodeVariant | PyStrObject | char | Rune): PyStrObject
- Source Edit
template newPyStr(s: string | cstring | openArray[char] | int; ensureAscii = false): PyStrObject
- Source Edit