## 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 E0046

Items are missing in a trait implementation.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    trait Foo {
        fn foo();
    }

    struct Bar;

    impl Foo for Bar {}
    // error: not all trait items implemented, missing: `foo`
    }

When trying to make some type implement a trait `Foo`, you must, at minimum, provide implementations for all of `Foo`'s required methods (meaning the methods that do not have default implementations), as well as any required trait items like associated types or constants. Example:

    #![allow(unused)]
    fn main() {
    trait Foo {
        fn foo();
    }

    struct Bar;

    impl Foo for Bar {
        fn foo() {} // ok!
    }
    }