Rust errors / Names, paths and imports
Rust compiler error · checked with rustc 1.99.0
Rust error E0365: `foo` is only public within the crate, and cannot be re-exported outside
What it meansPrivate modules cannot be publicly re-exported. This error indicates that you attempted to pub use a module that was not itself public.
What rustc prints
error[E0365]: `foo` is only public within the crate, and cannot be re-exported outside --> main.rs:5:9 | 5 | pub use foo as foo2; | ^^^^^^^^^^^ re-export of crate public `foo` | = note: consider declaring type or module `foo` with `pub`
Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
Private modules cannot be publicly re-exported. This error indicates that you attempted to pub use a module that was not itself public.
Erroneous code example:
mod foo {
pub const X: u32 = 1;
}
pub use foo as foo2;
fn main() {}
The solution to this problem is to ensure that the module that you are re-exporting is itself marked with pub:
pub mod foo {
pub const X: u32 = 1;
}
pub use foo as foo2;
fn main() {}
See the Use Declarations section of the reference for more information on this topic.
From rustc --explain E0365 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0425cannot find value in this scope
- E0603is private
- E0432unresolved import
- E0005refutable pattern in local binding
- E0259the name `core` is defined multiple times
- E0260the name `core` is defined multiple times
- E0423cannot find function, tuple struct or tuple variant `Foo` in this scope
- E0424cannot find value `self` in this scope
Up next
Often hit nextE0425: cannot find value in this scopeA related error from the same family.Read it next →Did this answer your question?