ExpertiDict

Rust · Avançado · Inglês · Técnico

Sized

/saɪzd/substantivo

Trait automático para tipos cujo tamanho é conhecido na compilação. Todo parâmetro genérico é Sized por padrão; para aceitar str, slices ou dyn use T: ?Sized.

Onde usar

Aparece em erros como 'the size for values of type str cannot be known' e em assinaturas com ?Sized, como as de Box<T> e &T.

Em código

fn a<T>(_x: T) {} // T: Sized implícito
fn b<T: ?Sized>(_x: &T) {}
b("texto"); // T = str
b(&[1, 2][..]); // T = [i32]

Exemplos

You need T: ?Sized to accept a str here.

Você precisa de T: ?Sized para aceitar um str aqui.

Slices are not Sized, only references to them are.

Slices não são Sized, só as referências a eles.

Cuidado

O ?Sized não é um trait: é a permissão de retirar o limite Sized implícito.

Veja também

Todos os termos de Rust