crate_sample/lib.rs
1// lib.rs predstavlja korenski modul biblioteke, odnosno crate-a
2mod example {
3 // Ukoliko bi se ovde koristio pub mod, umesto dole pub use, poznavala bi se struktura modula, odnosno bilo bi moguće pozivati funkcije iz modula sa crate_sample::example::add_one
4 /// Adds one to the number given.
5 ///
6 /// # Examples
7 ///
8 /// ```
9 /// let arg = 5;
10 /// let answer = crate_sample::example::add_one(arg);
11 ///
12 /// assert_eq!(6, answer);
13 /// ```
14 pub fn add_one(x: i32) -> i32 {
15 // Ukoliko se pub ne navede, funkcija je vidljiva samo u ovom modulu
16 x + 1
17 }
18}
19
20mod example2 {
21 use crate::example::add_one;
22 /// Adds any number to the number given.
23 ///
24 /// # Examples
25 ///
26 /// ```
27 /// let arg = 5;
28 /// let num = 10;
29 /// let answer = crate_sample::example2::add_any(arg, num);
30 ///
31 /// assert_eq!(15, answer);
32 /// ```
33 pub fn add_any(x: i32, y: i32) -> i32 {
34 y + add_one(x) - 1
35 }
36}
37
38pub use example::add_one; // Ovako se funkcija iz modula može koristiti izvan modula, na način da se poziva sa crate_sample::add_one, odnosno da se ne poznaje struktura modula
39pub use example2::add_any;