Objetos byte array
******************

type PyByteArrayObject

   Esse subtipo de "PyObject" representa um objeto Python bytearray.

PyTypeObject PyByteArray_Type
    * Part of the Stable ABI.*

   Essa instância de "PyTypeObject" representa um tipo Python
   bytearray; é o mesmo objeto que o "bytearray" na camada Python.


Macros para verificação de tipo
===============================

int PyByteArray_Check(PyObject *o)

   Retorna verdadeiro se o objeto *o* for um objeto bytearray ou se
   for uma instância de um subtipo do tipo bytearray. Esta função
   sempre tem sucesso.

int PyByteArray_CheckExact(PyObject *o)

   Retorna verdadeiro se o objeto *o* for um objeto bytearray, mas não
   uma instância de um subtipo do tipo bytearray. Esta função sempre
   tem sucesso.


Funções diretas da API
======================

PyObject *PyByteArray_FromObject(PyObject *o)
    *Retorna valor: Nova referência.** Part of the Stable ABI.*

   Retorna um novo objeto bytearray, *o*, que implementa o protocolo
   de buffer.

PyObject *PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
    *Retorna valor: Nova referência.** Part of the Stable ABI.*

   Cria um novo objeto bytearray a partir de *string* e seu
   comprimento, *len*. Em caso de falha, "NULL" é retornado.

PyObject *PyByteArray_Concat(PyObject *a, PyObject *b)
    *Retorna valor: Nova referência.** Part of the Stable ABI.*

   Concatena os bytearrays *a* e *b* e retorna um novo bytearray com o
   resultado.

Py_ssize_t PyByteArray_Size(PyObject *bytearray)
    * Part of the Stable ABI.*

   Retorna o tamanho de *bytearray* após verificar se há um ponteiro
   "NULL".

char *PyByteArray_AsString(PyObject *bytearray)
    * Part of the Stable ABI.*

   Retorna o conteúdo de *bytearray* como uma matriz de caracteres
   após verificar um ponteiro "NULL". O array retornado sempre tem um
   byte nulo extra acrescentado.

int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
    * Part of the Stable ABI.*

   Redimensiona o buffer interno de *bytearray* para o tamanho *len*.


Macros
======

Estas macros trocam segurança por velocidade e não verificam os
ponteiros.

char *PyByteArray_AS_STRING(PyObject *bytearray)

   Versão macro de "PyByteArray_AsString()".

Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)

   Versão macro de "PyByteArray_Size()".
