In this respect Rust works differently than other languages, because in Rust you don't directly import things from files. Files aren't usable by themselves. You define modules, which may be sourced from a file, and then you can import names from the modules.
The difference is subtle, but important to understand mod and use. Definition of modules with mod works just like definition of struct or fn, it creates a new named item in its scope:
If you put it at the root of the crate (in lib.rs) this will make crate::structs exist, and create::structs::A will refer to the struct in it.
To avoid writing crate::structs::A, you can import the name with use crate::structs::A;
In addition to what Alice said. You generally wouldn't have modules like functions or structs, having modules like that in any languages isn't so much an anti-pattern as it is a beginner's pattern. You generally define your types where you use them with their associated functions.