## 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!
    }