`T` cannot be unpinned: the trait `Unpin` is not implemented for `T` – Rust E0277_UNPIN

E0277_UNPIN

L'errore compare quando si manipolano Future asincrone generate da blocchi async che contengono riferimenti interni e richiedono la macro 'tokio::pin!' o 'Box::pin' prima di poter essere interrogate con poll o stream.

Cosa significa questo errore?

L'errore compare quando si manipolano Future asincrone generate da blocchi async che contengono riferimenti interni e richiedono la macro 'tokio::pin!' o 'Box::pin' prima di poter essere interrogate con poll o stream.

Messaggio originale

`T` cannot be unpinned: the trait `Unpin` is not implemented for `T`

Contesto e parole chiave

Alias

  • cannot be unpinned Unpin trait

Messaggi alternativi

  • trait Unpin non implementato per future

Prodotti

  • Rust Compiler (rustc) / Cargo / Tokio

Piattaforme

  • Linux
  • macOS
  • Windows

Parole chiave

  • Concorrenza e Async
  • errore-rust-future-cannot-be-unpinned
  • rust
  • rust.async.future-cannot-be-unpinned

Cause possibili

Causa tecnica per Errore Rust Async: `T` cannot be unpinned (Future Richiede Pinning Esplicito)

L'errore compare quando si manipolano Future asincrone generate da blocchi async che contengono riferimenti interni e richiedono la macro 'tokio::pin!' o 'Box::pin' prima di poter essere interrogate con poll o stream.

molto comune

Diagnosi

Verifica di compilazione e diagnostica per Errore Rust Async: `T` cannot be unpinned (Future Richiede Pinning Esplicito)

Eseguire il comando cargo check per visualizzare l'output dettagliato del compilatore con suggerimenti (explain).

Come leggere il risultato. Fornisce la spiegazione estesa dell'errore di compilazione o stack trace del panic.

cargo
cargo check --explain E0277_UNPIN

Risoluzione

Risoluzione standard per Errore Rust Async: `T` cannot be unpinned (Future Richiede Pinning Esplicito)

Difficoltà: mediaRischio: basso

Applica le correzioni consigliate per conformarsi alle regole di ownership, tipi o runtime in Rust.

  1. Ispezionare la riga evidenziata dal compilatore rustc
  2. Riformulare il codice secondo le linee guida della gestione ownership e borrow
  3. Eseguire cargo check per confermare la risoluzione
cargo
cargo check

Domande frequenti

Cosa significa Errore Rust Async: `T` cannot be unpinned (Future Richiede Pinning Esplicito)?

L'errore compare quando si manipolano Future asincrone generate da blocchi async che contengono riferimenti interni e richiedono la macro 'tokio::pin!' o 'Box::pin' prima di poter essere interrogate con poll o stream.

Approfondimenti

Schede correlate