Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Error code E0199

A trait implementation was marked as unsafe while the trait is safe.

Erroneous code example:

#![allow(unused)] fn main() { struct Foo; trait Bar { } unsafe impl Bar for Foo { } // error! }

Safe traits should not have unsafe implementations, therefore marking an implementation for a safe trait unsafe will cause a compiler error. Removing the unsafe marker on the trait noted in the error will resolve this problem:

#![allow(unused)] fn main() { struct Foo; trait Bar { } impl Bar for Foo { } // ok! }