W3cubDocs

/Rust

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

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/error_codes/E0199.html