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;