1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
// Three dashes is a documentation comment (generates HTML documentation) // Generate it through cargo doc //! # Publish Create //! This is for contained items rather than following items. //! Often used for documenting the entire crate or module /// Adds one to the number given. /// /// # Herp /// ## Derp /// ### hurr /// `dope` /// # Examples /// /// ``` /// let arg = 5; /// let answer = publish_crate::add_one(arg); /// /// assert_eq!(6, answer); /// ``` // cargo test will run examples as tests pub fn add_one(x: i32) -> i32 { return x + 1; } // re-arranging internal organization by re-exporting items through pub use pub use self::kinds::PrimaryColor; // this does so the user only have to write "use publish_crate::PrimaryColor" //rather than specify the internal module pub use self::kinds::SecondaryColor; pub use self::utils::mix; pub mod kinds { /// The primary colors according to the RYB color model. pub enum PrimaryColor { Red, Yellow, Blue, } /// The secondary colors according to the RYB color model. pub enum SecondaryColor { Orange, Green, Purple, } } pub mod utils { use crate::kinds::*; /// Combines two primary colors in equal amounts to create /// a secondary color. pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor { // --snip-- SecondaryColor::Orange } }