LINUX.ORG.RU

История изменений

Исправление 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 (особенно последний, там как раз на разные файлы разносят).