Arr matey! Grab yer compass and let's navigate the treacherous seas of Rust modulesβa map to code treasures, if ye be brave enough. Picture modules as secret islands, keepin' their loot guarded. But fear not! The pub
keyword be our trusty pirate flag, hoisting it high to claim the code booty.
Modules in Rust
Diving into Rust's realm, we encounter the concept of modules, serving as organized containers for functions, structs, traits, and even other modules. These modules enhance code structure and wield the power to control the visibility of their contents.
mod my_treasure {
pub fn share_the_booty() {
println!("Avast! This function be public gold!");
}
fn keep_hidden_treasure() {
println!("Shh! This function be stashin' the secret loot!");
}
}
In this seafaring script, share_the_booty
be in the limelight, thanks to the pub
flag, while keep_hidden_treasure
stays below decks, away from prying eyes.
The Swashbuckling use
Keyword: No More Scrollin' the Code Seas πΊοΈ
Hoist the Jolly Roger! The use
keyword be our pirate's spyglass, bringin' paths into view with a swish of the cutlass. It be like charting a course with ease. Imagine a function, plunder_town
, dwellin' in the mystical harbor of harboring
. With the use
sword, ye can call it in another function, raid_village
, without breakin' a sweat.
mod harbor {
pub mod harboring {
pub fn plunder_town() {}
}
}
use crate::harbor::harboring;
fn raid_village() {
harboring::plunder_town();
}
With this pirate's magic, the use
spell crafts a shortcut, lettin' ye summon plunder_town
directly like findin' buried treasure.
Advanced use Declarations: A Buccaneer's Ballet πΊ
Rust be a land of advanced tricks, and the use
keyword be no different.
Rust offers advanced patterns in the use of the use keyword, showcasing its versatility:
Importing with a Common Prefix: Unifying multiple items under a common prefix using nested paths.
Renaming Items with the as Keyword: Crafting aliases for imported items.
Glob Operator
*
for All Public Items: Unleashing the power of all public items in a path at once.Importing Trait Methods with
_
: The mysterious underscore allowing the invocation of trait methods without binding them to a name.
Organizin' the Code Seas with Modules and use: A Sailor's Shanty πΆ
Modules be like sails in the wind, creatin' a sea shanty of code harmony. The use
spell be the compass, makin' paths clear as the starry night. Imagine a code ship with modules like port_side
and starboard_side
, each contributin' to the melody.
// src/main.rs
mod port_side;
mod starboard_side;
fn main() {
println!("Turn the ship left: {}", port_side::turn_left(45));
println!("Turn the ship right: {}", starboard_side::turn_right(30));
}
// src/port_side.rs
pub fn turn_left(degrees: i32) -> i32 {
// Code for turning left
degrees
}
// src/starboard_side.rs
pub fn turn_right(degrees: i32) -> i32 {
// Code for turning right
degrees
}
In this seafarin' symphony, the modules dance together, creatin' a code chantey as sweet as the sirens' song.
Conclusion: Charting the Rusty Seas on Day 22!Β πΊοΈπ¦
Avast, brave code adventurers! On Day 22 of our #100DaysOfCode Rust saga, we navigated the mystical waters of modules and danced with the enchanting use
keyword. From hoisting the pub
flag to reveal hidden treasures to crafting shortcuts with the use
spell, we've embarked on a code corsair journey.
As we sail forward, let the Rusty winds guide us through the intricate hierarchies of modules and the clever incantations of use
and pub
. Our Rustiverse expands, and with each code piece, we're becoming true masters of the Rusty seas. Onward, fellow sailors! #RustLang #CodeAdventures π’β
Top comments (0)