Почему ржавчина не может найти функцию в подмодуле? [Дубликат]

На этот вопрос уже есть ответ здесь:

Как включить модуль из другого файла из того же проекта? 2 ответа

Я пытаюсь вызвать функцию из модуля, расположенного в отдельном файле, функция общедоступна, и я вызываю ее, используя полный путь, но rustc по-прежнему жалуется на «неразрешенное имя».

a.rs
pub mod b;
fn main() {
  b::f()
}
b.rs
pub mod b {
    pub fn f(){
        println!("Hello World!");
    }
}
сборник
$ rustc a.rs
a.rs:3:5: 3:9 error: unresolved name `b::f`.

Когда я перемещаю модуль в основной файл ящика, все работает нормально.

one_file.rs
pub mod b {
    pub fn f(){
        println!("Hello World!");
    }
}
fn main() {
    b::f()
}

Разве эти два способа не должны быть эквивалентны? Я делаю что-то не так, или это ошибка в rustc?