2018-02-22 13:09:53 +07:00
|
|
|
// modules2.rs
|
2015-09-18 08:21:56 +06:00
|
|
|
// Make me compile! Scroll down for hints :)
|
|
|
|
|
2019-01-24 03:56:05 +07:00
|
|
|
mod delicious_snacks {
|
|
|
|
use self::fruits::PEAR as fruit;
|
|
|
|
use self::veggies::CUCUMBER as veggie;
|
2015-09-18 08:21:56 +06:00
|
|
|
|
2019-01-24 03:56:05 +07:00
|
|
|
mod fruits {
|
|
|
|
pub const PEAR: &'static str = "Pear";
|
|
|
|
pub const APPLE: &'static str = "Apple";
|
2015-09-18 08:21:56 +06:00
|
|
|
}
|
|
|
|
|
2019-01-24 03:56:05 +07:00
|
|
|
mod veggies {
|
|
|
|
pub const CUCUMBER: &'static str = "Cucumber";
|
|
|
|
pub const CARROT: &'static str = "Carrot";
|
2015-09-18 08:21:56 +06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
2019-01-24 03:56:05 +07:00
|
|
|
println!("favorite snacks: {} and {}",
|
|
|
|
delicious_snacks::fruit,
|
|
|
|
delicious_snacks::veggie);
|
2015-09-18 08:21:56 +06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-24 03:56:05 +07:00
|
|
|
// The delicious_snacks module is trying to present an external
|
|
|
|
// interface (the `fruit` and `veggie` constants) that is different than
|
|
|
|
// its internal structure (the `fruits` and `veggies` modules and
|
2015-09-18 08:21:56 +06:00
|
|
|
// associated constants). It's almost there except for one keyword missing for
|
|
|
|
// each constant.
|