You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The compiler errors when a type is missing Immutable are somewhat misleading, although I'm not sure there's much zerocopy can do about this. An example where the compiler recommends adding a reference rather than implementing Immutable (some were even more confusing than this):
error[E0277]: the trait bound `virtio::wl::CtrlVfdNewDmabuf: zerocopy::Immutable` is not satisfied
--> devices/src/virtio/wl.rs:317:20
|
317 | .write_obj(ctrl_vfd_new_dmabuf)
| --------- ^^^^^^^^^^^^^^^^^^^ the trait `zerocopy::Immutable` is not implemented for `virtio::wl::CtrlVfdNewDmabuf`
| |
| required by a bound introduced by this call
|
note: required by a bound in `virtio::descriptor_utils::Writer::write_obj`
--> devices/src/virtio/descriptor_utils.rs:536:25
|
536 | pub fn write_obj<T: Immutable + IntoBytes>(&mut self, val: T) -> io::Result<()> {
| ^^^^^^^^^ required by this bound in `Writer::write_obj`
help: consider borrowing here
|
317 | .write_obj(&ctrl_vfd_new_dmabuf)
| +
317 | .write_obj(&mut ctrl_vfd_new_dmabuf)
| ++++
Taking the compiler's suggestion results in a different error with a recommendation to remove the reference (back to the original code).
Per #1288 (comment):
We might be able to improve this via #1168.
The text was updated successfully, but these errors were encountered: