diff options
Diffstat (limited to 'modules/modules2.rs')
| -rw-r--r-- | modules/modules2.rs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/modules/modules2.rs b/modules/modules2.rs new file mode 100644 index 0000000..e6d6f4c --- /dev/null +++ b/modules/modules2.rs @@ -0,0 +1,47 @@ +// Make me compile! Scroll down for hints :) + +mod us_presidential_frontrunners { + use self::democrats::HILLARY_CLINTON as democrat; + use self::republicans::DONALD_TRUMP as republican; + + mod democrats { + pub const HILLARY_CLINTON: &'static str = "Hillary Clinton"; + pub const BERNIE_SANDERS: &'static str = "Bernie Sanders"; + } + + mod republicans { + pub const DONALD_TRUMP: &'static str = "Donald Trump"; + pub const JEB_BUSH: &'static str = "Jeb Bush"; + } +} + +fn main() { + println!("candidates: {} and {}", + us_presidential_frontrunners::democrat, + us_presidential_frontrunners::republican); +} + + + + + + + + + + + + + + + + + +// The us_presidential_frontrunners module is trying to present an external +// interface (the `democrat` and `republican` constants) that is different than +// its internal structure (the `democrats` and `republicans` modules and +// associated constants). It's almost there except for one keyword missing for +// each constant. +// One more hint: I wish the compiler error, instead of saying "unresolved name +// `us_presidential_frontrunners::democrat`", could say "constant +// `us_presidential_frontrunners::democrat` is private"!
\ No newline at end of file |
