История изменений
Исправление ozkriff, (текущая версия) :
Если тебе просто надо разнести на несколько модулей, то так:
$ tree
.
├── Cargo.toml
└── src
├── main.rs
└── test.rs
1 directory, 3 files
$ cat src/main.rs
mod test;
fn main() {
test::test_func(1);
}
$ cat src/test.rs
pub fn test_func(n: i32) {
println!("test: {}", n);
}
$ cat Cargo.toml
[package]
name = "test_mod"
version = "0.0.1"
authors = [
"ozkriff@gmail.com",
]
[[bin]]
name = "test_mod"
$ cargo run -v
Compiling test_mod v0.0.1 (file:///home/ozkriff/Downloads/lor-rust-mod)
Running `rustc /home/ozkriff/Downloads/lor-rust-mod/src/main.rs --crate-name test_mod --crate-type bin -g --out-dir /home/ozkriff/Downloads/lor-rust-mod/target --dep-info /home/ozkriff/Downloads/lor-rust-mod/target/.fingerprint/test_mod-452e11bfcdee8e92/dep-bin-test_mod -L /home/ozkriff/Downloads/lor-rust-mod/target -L /home/ozkriff/Downloads/lor-rust-mod/target/deps`
Running `target/test_mod`
test: 1
$ cargo clean
$ cargo run
Compiling test_mod v0.0.1 (file:///home/ozkriff/Downloads/lor-rust-mod)
Running `target/test_mod`
test: 1
$ ./target/test_mod
test: 1
$
Так это все соберется как одна еденица трансляции.
Просто модули в Cargo.toml указывать не надо, их найдет rustc.
Посмотри http://rustbyexample.com/mod.html. В смысле не только эту страничку, но и 12.1, 12.2, 12.3 и 12.4 (особенно последний, там как раз на разные файлы разносят).
Исправление ozkriff, :
Если тебе просто надо разнести на несколько модулей, то так:
$ tree
.
├── Cargo.toml
└── src
├── main.rs
└── test.rs
1 directory, 3 files
$ cat src/main.rs
mod test;
fn main() {
test::test_func(1);
}
$ cat src/test.rs
pub fn test_func(n: i32) {
println!("test: {}", n);
}
$ cat Cargo.toml
[package]
name = "test_mod"
version = "0.0.1"
authors = [
"ozkriff@gmail.com",
]
[[bin]]
name = "test_mod"
$ cargo run -v
Compiling test_mod v0.0.1 (file:///home/ozkriff/Downloads/lor-rust-mod)
Running `rustc /home/ozkriff/Downloads/lor-rust-mod/src/main.rs --crate-name test_mod --crate-type bin -g --out-dir /home/ozkriff/Downloads/lor-rust-mod/target --dep-info /home/ozkriff/Downloads/lor-rust-mod/target/.fingerprint/test_mod-452e11bfcdee8e92/dep-bin-test_mod -L /home/ozkriff/Downloads/lor-rust-mod/target -L /home/ozkriff/Downloads/lor-rust-mod/target/deps`
Running `target/test_mod`
test: 1
$ cargo clean
$ cargo run
Compiling test_mod v0.0.1 (file:///home/ozkriff/Downloads/lor-rust-mod)
Running `target/test_mod`
test: 1
$ ./target/test_mod
test: 1
$
Так это все соберется как одна еденица трансляции Просто модули в Cargo.toml указывать не надо, их найдет rustc.
Посмотри http://rustbyexample.com/mod.html. В смысле не только эту страничку, но и 12.1, 12.2, 12.3 и 12.4 (особенно последний, там как раз на разные файлы разносят).
Исходная версия ozkriff, :
Если тебе просто надо разнести на несколько модулей, то так:
$ tree
.
├── Cargo.toml
└── src
├── main.rs
└── test.rs
1 directory, 3 files
$ cat src/main.rs
mod test;
fn main() {
test::test_func(1);
}
$ cat src/test.rs
pub fn test_func(n: i32) {
println!("test: {}", n);
}
$ cat Cargo.toml
[package]
name = "test_mod"
version = "0.0.1"
authors = [
"ozkriff@gmail.com",
]
[[bin]]
name = "test_mod"
$ cargo run -v
Compiling test_mod v0.0.1 (file:///home/ozkriff/Downloads/lor-rust-mod)
Running `rustc /home/ozkriff/Downloads/lor-rust-mod/src/main.rs --crate-name test_mod --crate-type bin -g --out-dir /home/ozkriff/Downloads/lor-rust-mod/target --dep-info /home/ozkriff/Downloads/lor-rust-mod/target/.fingerprint/test_mod-452e11bfcdee8e92/dep-bin-test_mod -L /home/ozkriff/Downloads/lor-rust-mod/target -L /home/ozkriff/Downloads/lor-rust-mod/target/deps`
Running `target/test_mod`
test: 1
$ cargo clean
$ cargo run
Compiling test_mod v0.0.1 (file:///home/ozkriff/Downloads/lor-rust-mod)
Running `target/test_mod`
test: 1
$ ./target/test_mod
test: 1
$
Так это все соберется как одна еденица трансляции Просто модули в Cargo.toml указывать не надо, их найдет rustc.
Посмотри:
http://rustbyexample.com/mod.html. В смысле не только эту страничку, но и 12.1, 12.2, 12.3 и 12.4 (особенно последний, там как раз на разные файлы разносят).