| A private type was used in a public type signature. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0446 |
| #![deny(private_in_public)] |
| |
| mod Foo { |
| struct Bar(u32); |
| |
| pub fn bar() -> Bar { // error: private type in public interface |
| Bar(0) |
| } |
| } |
| ``` |
| |
| To solve this error, please ensure that the type is also public. The type |
| can be made inaccessible if necessary by placing it into a private inner |
| module, but it still has to be marked with `pub`. |
| Example: |
| |
| ``` |
| mod Foo { |
| pub struct Bar(u32); // we set the Bar type public |
| |
| pub fn bar() -> Bar { // ok! |
| Bar(0) |
| } |
| } |
| ``` |