База Hintsage

Владение и заимствование

Ownership, borrowing, moves и правила безопасной памяти.

Практика

Вопросы: Владение и заимствование

Разберите, какую операцию предотвращает Pin<Box<T>> для типа без Unpin и зачем это нужно. Рассмотрите код:

use std::marker::PhantomPinned;

struct Task {
    value: String,
    _pin: PhantomPinned,
}

fn main() {
    let pinned = Box::pin(Task {
        value: String::from("ready"),
        _pin: PhantomPinned,
    });

    // let moved: Task = *pinned;
    println!("{}", pinned.value);
}
Программирование RustВладение и заимствованиеRust-разработчик системного программного обеспечения

Показано 120 из 50