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