ExpertiDict

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

Pin

/pɪn/substantivo

Wrapper que impede que o valor apontado seja movido na memória, essencial para futures auto-referenciáveis. Tipos Unpin podem ser movidos livremente mesmo fixados.

Onde usar

Aparece na assinatura de Future::poll, com self: Pin<&mut Self>, e em Box::pin para guardar futures em coleções.

Em código

use std::pin::Pin;
let mut x = 5;
let p: Pin<&mut i32> = Pin::new(&mut x);
println!("{}", *p);
let b = Box::pin(String::from("fixo"));
println!("{}", b);

Exemplos

Box::pin the future before storing it.

Use Box::pin na future antes de guardá-la.

poll takes self as Pin<&mut Self>.

O poll recebe self como Pin<&mut Self>.

Cuidado

Pin não impede o acesso nem a alteração do valor, só o seu movimento; a maioria dos tipos, por ser Unpin, ignora o efeito.

Sinônimos

fixar

Antônimos

Unpin

Origem

Do inglês pin, 'alfinete, fixar'.

Veja também

Todos os termos de Rust