bytesobject and bytesarrayobject
Types
CharsView = cstring
- impl is unstable. It's UB if setitem to PyBytes's CharsView and in JS backend, currently it's just a copy, not a real view Source Edit
PyByteArrayObject = ref object of PyObject items*: seq[char] reprLock*: bool readNum*: int writeLock*: bool
- Source Edit
PyBytesObject = ref object of PyObject items*: seq[char] setHash*: bool privateHash*: Hash
- Source Edit
PyBytesWriter = object use_bytearray*: bool
- Source Edit
Lets
pyByteArrayObjectType {.inject.} = newPyType("bytearray", pyObjectType)
- Source Edit
pyBytesObjectType {.inject.} = newPyType("bytes", pyObjectType)
- Source Edit
Procs
proc `&`(s1, s2: PyByteArrayObject): PyByteArrayObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc `&`(s1, s2: PyBytesObject): PyBytesObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc `[]=`(s: PyByteArrayObject; i: int; c: char) {....raises: [], tags: [], forbids: [].}
- Source Edit
proc add(s: PyByteArrayObject; c: char) {....raises: [], tags: [], forbids: [].}
- Source Edit
proc add(self: PyByteArrayObject; b: PyByteLike)
- Source Edit
proc add(self: var PyBytesWriter; c: char) {.inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc allocated(self: PyBytesWriter): int {. error: "this writer is dynamically allocated".}
- Source Edit
proc asString(s: PyByteArrayObject): string {....raises: [], tags: [], forbids: [].}
- Source Edit
proc asString(s: PyBytesObject): string {....raises: [], tags: [], forbids: [].}
- Source Edit
proc bufferNotImpl(): PyNotImplementedErrorObject {....raises: [], tags: [RootEffect], forbids: [].}
- TODO:buffer: delete this once buffer api is implemented Source Edit
proc charsView(s: PyByteArrayObject): CharsView {....raises: [], tags: [], forbids: [].}
- Source Edit
proc charsView(s: PyBytesObject): CharsView {....raises: [], tags: [], forbids: [].}
- Source Edit
proc finish(self: sink PyBytesWriter): PyObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc finish(self: sink PyBytesWriter; res: PyObject) {....raises: [], tags: [], forbids: [].}
- Source Edit
proc getCharPtr(s: PyByteLike; i: int): ptr char
- unstable. not available on JS Source Edit
proc getInt(s: PyByteLike; i: int): PyIntObject
- Source Edit
proc hash(self: PyBytesObject): Hash {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc initFromObject(self: PyByteArrayObject; x: PyObject): PyBaseErrorObject {. ...raises: [], tags: [RootEffect, WriteIOEffect], forbids: [].}
- Source Edit
proc initPyBytesWriter(): PyBytesWriter {....raises: [], tags: [], forbids: [].}
- Source Edit
proc initPyBytesWriter(cap: int): PyBytesWriter {....raises: [], tags: [], forbids: [].}
- Source Edit
proc len(self: PyBytesWriter): int {.inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc newPyByteArray(): PyByteArrayObject {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newPyByteArray(s: seq[char]): PyByteArrayObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newPyByteArray(size: int): PyByteArrayObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newPyByteArraySimple(): PyByteArrayObject {.cdecl, ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newPyBytes(): PyBytesObject {....raises: [], tags: [], forbids: [].}
- Source Edit
proc newPyBytes(s: openArray[char]): PyBytesObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newPyBytes(s: seq[char]): PyBytesObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newPyBytes(size: int): PyBytesObject {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc newPyBytesSimple(): PyBytesObject {.cdecl, ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc ofExactPyByteArrayObject(obj`gensym5: PyObject): bool {.cdecl, inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc ofExactPyBytesObject(obj`gensym0: PyObject): bool {.cdecl, inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc ofPyByteArrayObject(obj`gensym5: PyObject): bool {.cdecl, inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc ofPyBytesObject(obj`gensym0: PyObject): bool {.cdecl, inline, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc PyByteArray_FromObject(x: PyObject): PyObject {....raises: [], tags: [RootEffect, WriteIOEffect], forbids: [].}
- Source Edit
proc PyBytes_FromObject(x: PyObject): PyObject {....raises: [], tags: [RootEffect, WriteIOEffect], forbids: [].}
- Source Edit
proc repr(b: PyByteArrayObject): string {....raises: [], tags: [], forbids: [].}
- Source Edit
proc repr(b: PyBytesObject): string {....raises: [], tags: [], forbids: [].}
- Source Edit
proc reset(self: var PyBytesWriter; cap: int = 0) {....raises: [], tags: [], forbids: [].}
- like _PyBytesWriter_Alloc Source Edit
proc setLen(self: PyByteArrayObject; n: int) {....raises: [], tags: [], forbids: [].}
- Source Edit
Methods
method `$`(s: PyByteArrayObject): string {....raises: [], tags: [], forbids: [].}
- Source Edit
method `$`(s: PyBytesObject): string {....raises: [], tags: [], forbids: [].}
- Source Edit
Iterators
iterator ints(s: PyByteLike): PyIntObject
- Source Edit
Templates
template checkCharRangeOrRetVE(value: int; errSubject = "byte")
- Source Edit
template PyNumber_AsCharOr(vv: PyObject; errSubject = "byte"; orDoIt): char
- Source Edit
template PyNumber_AsCharOrRet(vv: PyObject; errSubject = "byte"): char
- Source Edit