# 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()`.