API do PyHash
*************

Veja também o membro "PyTypeObject.tp_hash" e Hashing de tipos
numéricos.

type Py_hash_t

   Tipo de valor do hash: inteiro com sinal.

   Adicionado na versão 3.2.

type Py_uhash_t

   Tipo de valor do hash: inteiro sem sinal.

   Adicionado na versão 3.2.

PyHASH_MODULUS

   O primo de Mersenne "P = 2**n -1", usado para esquema de hash
   numérico.

   Adicionado na versão 3.13.

PyHASH_BITS

   O expoente "n" de "P" em "PyHASH_MODULUS".

   Adicionado na versão 3.13.

PyHASH_MULTIPLIER

   Multiplicador de primo usado em strings e vários outros hashes.

   Adicionado na versão 3.13.

PyHASH_INF

   O valor de hash retornado para um infinito positivo.

   Adicionado na versão 3.13.

PyHASH_IMAG

   O multiplicador usado para a parte imaginária de um número
   complexo.

   Adicionado na versão 3.13.

type PyHash_FuncDef

   Definição de função de hash usada por "PyHash_GetFuncDef()".

   Py_hash_t (*const hash)(const void*, Py_ssize_t)

      Função de hash.

   const char *name

      Nome de função hash (string codificada em UTF-8).

   const int hash_bits

      Tamanho interno do valor do hash em bits.

   const int seed_bits

      Tamanho da entrada de seed em bits.

   Adicionado na versão 3.4.

PyHash_FuncDef *PyHash_GetFuncDef(void)

   Obtém a definição de função de hash.

   Ver também:

     **PEP 456** "Algoritmo de hash seguro e intercambiável".

   Adicionado na versão 3.4.

Py_hash_t Py_HashPointer(const void *ptr)

   Hash de um valor de ponteiro: processa o valor do ponteiro como um
   inteiro (converte-o para "uintptr_t" internamente). O ponteiro não
   é desreferenciado.

   A função não pode falhar: ela não pode retornar "-1".

   Adicionado na versão 3.13.

Py_hash_t Py_HashBuffer(const void *ptr, Py_ssize_t len)

   Calcula e retorna o valor de hash de um buffer de *len* bytes,
   começando no endereço *ptr*. O hash tem garantia de corresponder ao
   de "bytes", "memoryview" e outros objetos embutidos que implementam
   o protocolo de buffer.

   Usa esta função para implementar hash para objetos imutáveis cuja
   função "tp_richcompare" compara ao buffer de outro objeto.

   *len* deve ser maior que ou igual a "0".

   Esta função sempre tem sucesso.

   Adicionado na versão 3.14.

Py_hash_t PyObject_GenericHash(PyObject *obj)

   Função de hash genérica que deve ser colocada no slot "tp_hash" de
   um objeto de tipo. Seu resultado depende apenas da identidade do
   objeto.

   No CPython, é equivalente a "Py_HashPointer()".

   Adicionado na versão 3.13.
