# 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. 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)
  Return value: New reference.

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

PyObject* `PyByteArray_FromStringAndSize`(const char *string, Py_ssize_t len)
  Return value: New reference.

  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)
  Return value: New reference.

  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 bytearray após verificar se há um ponteiro `NULL`.

char* `PyByteArray_AsString`(PyObject *bytearray)

  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)

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