Objetos Byte Array
******************

PyByteArrayObject

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

PyTypeObject PyByteArray_Type

   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.

int PyByteArray_CheckExact(PyObject *o)

   Retorna verdadeiro se o objeto *o* for um objeto bytearray, mas não
   for uma instância de um subtipo do tipo bytearray.


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

PyObject* PyByteArray_FromObject(PyObject *o)

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

PyObject* PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)

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

PyObject* PyByteArray_Concat(PyObject *a, PyObject *b)

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

Py_ssize_t PyByteArray_Size(PyObject *bytearray)

   Retorna o tamanho de *byterray* após checar por um ponteiro *NULL*.

char* PyByteArray_AsString(PyObject *bytearray)

   Retorna o conteúdo de *bytearray* como um array de chars após
   checar por um ponteiro *NULL*. O array resultante sempre será
   acrescido por um byte nulo extra.

int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)

   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()".
