Objects/stringobject

Search:
Group by:
Source   Edit  

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 add(r: seq[Rune]; c: char)
Source   Edit  
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