error[E0277]: the trait bound `NotZerocopy: FromBytes` is not satisfied --> $DIR/diagnostic-not-implemented.rs:16:24 | 16 | takes_from_bytes::(); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `FromBytes` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(FromBytes)]` to `NotZerocopy` = help: the following other types implement trait `FromBytes`: () (A, B) (A, B, C) (A, B, C, D) (A, B, C, D, E) (A, B, C, D, E, F) (A, B, C, D, E, F, G) (A, B, C, D, E, F, G, H) and 79 others note: required by a bound in `takes_from_bytes` --> $DIR/diagnostic-not-implemented.rs:77:24 | 77 | fn takes_from_bytes() {} | ^^^^^^^^^ required by this bound in `takes_from_bytes` error[E0277]: the trait bound `NotZerocopy: FromZeros` is not satisfied --> $DIR/diagnostic-not-implemented.rs:18:24 | 18 | takes_from_zeros::(); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `FromZeros` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(FromZeros)]` to `NotZerocopy` = help: the following other types implement trait `FromZeros`: () (A, B) (A, B, C) (A, B, C, D) (A, B, C, D, E) (A, B, C, D, E, F) (A, B, C, D, E, F, G) (A, B, C, D, E, F, G, H) and 141 others note: required by a bound in `takes_from_zeros` --> $DIR/diagnostic-not-implemented.rs:78:24 | 78 | fn takes_from_zeros() {} | ^^^^^^^^^ required by this bound in `takes_from_zeros` error[E0277]: the trait bound `NotZerocopy: Immutable` is not satisfied --> $DIR/diagnostic-not-implemented.rs:20:23 | 20 | takes_immutable::(); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `Immutable` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(Immutable)]` to `NotZerocopy` = help: the following other types implement trait `Immutable`: &T &mut T () (A, B) (A, B, C) (A, B, C, D) (A, B, C, D, E) (A, B, C, D, E, F) and 128 others note: required by a bound in `takes_immutable` --> $DIR/diagnostic-not-implemented.rs:79:23 | 79 | fn takes_immutable() {} | ^^^^^^^^^ required by this bound in `takes_immutable` error[E0277]: the trait bound `NotZerocopy: IntoBytes` is not satisfied --> $DIR/diagnostic-not-implemented.rs:22:24 | 22 | takes_into_bytes::(); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `IntoBytes` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(IntoBytes)]` to `NotZerocopy` = help: the following other types implement trait `IntoBytes`: () AU16 AtomicBool AtomicI16 AtomicI32 AtomicI64 AtomicI8 AtomicIsize and 68 others note: required by a bound in `takes_into_bytes` --> $DIR/diagnostic-not-implemented.rs:80:24 | 80 | fn takes_into_bytes() {} | ^^^^^^^^^ required by this bound in `takes_into_bytes` error[E0277]: the trait bound `NotZerocopy: KnownLayout` is not satisfied --> $DIR/diagnostic-not-implemented.rs:24:26 | 24 | takes_known_layout::(); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `KnownLayout` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(KnownLayout)]` to `NotZerocopy` = help: the following other types implement trait `KnownLayout`: &T &mut T () *const T *mut T AU16 AtomicBool AtomicI16 and 65 others note: required by a bound in `takes_known_layout` --> $DIR/diagnostic-not-implemented.rs:81:26 | 81 | fn takes_known_layout() {} | ^^^^^^^^^^^ required by this bound in `takes_known_layout` error[E0277]: the trait bound `NotZerocopy: TryFromBytes` is not satisfied --> $DIR/diagnostic-not-implemented.rs:26:28 | 26 | takes_try_from_bytes::(); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `TryFromBytes` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(TryFromBytes)]` to `NotZerocopy` = help: the following other types implement trait `TryFromBytes`: () (A, B) (A, B, C) (A, B, C, D) (A, B, C, D, E) (A, B, C, D, E, F) (A, B, C, D, E, F, G) (A, B, C, D, E, F, G, H) and 153 others note: required by a bound in `takes_try_from_bytes` --> $DIR/diagnostic-not-implemented.rs:82:28 | 82 | fn takes_try_from_bytes() {} | ^^^^^^^^^^^^ required by this bound in `takes_try_from_bytes` error[E0277]: the trait bound `NotZerocopy: zerocopy::Unaligned` is not satisfied --> $DIR/diagnostic-not-implemented.rs:28:23 | 28 | takes_unaligned::(); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `zerocopy::Unaligned` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(Unaligned)]` to `NotZerocopy` = help: the following other types implement trait `zerocopy::Unaligned`: () AtomicBool AtomicI8 AtomicU8 Cell F32 F64 I128 and 26 others note: required by a bound in `takes_unaligned` --> $DIR/diagnostic-not-implemented.rs:83:23 | 83 | fn takes_unaligned() {} | ^^^^^^^^^ required by this bound in `takes_unaligned` error[E0277]: the trait bound `NotZerocopy: Immutable` is not satisfied --> $DIR/diagnostic-not-implemented.rs:66:19 | 66 | Foo.write_obj(NotZerocopy(())); | --------- ^^^^^^^^^^^^^^^ the trait `Immutable` is not implemented for `NotZerocopy` | | | required by a bound introduced by this call | note: required by a bound in `Foo::write_obj` --> $DIR/diagnostic-not-implemented.rs:73:25 | 73 | fn write_obj(&mut self, _val: T) {} | ^^^^^^^^^ required by this bound in `Foo::write_obj` help: consider borrowing here | 66 | Foo.write_obj(&NotZerocopy(())); | + 66 | Foo.write_obj(&mut NotZerocopy(())); | ++++ error[E0277]: the trait bound `NotZerocopy: IntoBytes` is not satisfied --> $DIR/diagnostic-not-implemented.rs:66:19 | 66 | Foo.write_obj(NotZerocopy(())); | --------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | help: the trait `IntoBytes` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(IntoBytes)]` to `NotZerocopy` = help: the following other types implement trait `IntoBytes`: () AU16 AtomicBool AtomicI16 AtomicI32 AtomicI64 AtomicI8 AtomicIsize and 68 others note: required by a bound in `Foo::write_obj` --> $DIR/diagnostic-not-implemented.rs:73:37 | 73 | fn write_obj(&mut self, _val: T) {} | ^^^^^^^^^ required by this bound in `Foo::write_obj` error: aborting due to 9 previous errors For more information about this error, try `rustc --explain E0277`.