Sha256: 04dd66b306e9d43d01a181da38add1ae8b8dee9e1fd16a3a0f39571cbb467f62

Contents?: true

Size: 564 Bytes

Versions: 33

Compression:

Stored size: 564 Bytes

Contents

use pin_utils::{unsafe_pinned, unsafe_unpinned, pin_mut};
use std::pin::Pin;
use std::marker::Unpin;

struct Foo<T1, T2> {
    field1: T1,
    field2: T2,
}

impl<T1, T2> Foo<T1, T2> {
    unsafe_pinned!(field1: T1);
    unsafe_unpinned!(field2: T2);
}

impl<T1: Unpin, T2> Unpin for Foo<T1, T2> {} // Conditional Unpin impl

#[test]
fn projection() {
    let foo = Foo { field1: 1, field2: 2 };
    pin_mut!(foo);

    let x1: Pin<&mut i32> = foo.as_mut().field1();
    assert_eq!(*x1, 1);

    let x2: &mut i32 = foo.as_mut().field2();
    assert_eq!(*x2, 2);
}

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
wasmtime-29.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-28.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-27.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-26.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-25.0.2 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-25.0.1 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-25.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-24.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-23.0.2 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-22.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-21.0.1 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-20.0.2 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-20.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-18.0.3 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-17.0.1 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-17.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-16.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-15.0.1 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-15.0.0 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs
wasmtime-14.0.4 ./ext/cargo-vendor/pin-utils-0.1.0/tests/projection.rs