aboutsummaryrefslogtreecommitdiff
path: root/raindrops/src
diff options
context:
space:
mode:
authorFederico Igne <git@federicoigne.com>2020-12-26 17:48:38 +0000
committerFederico Igne <git@federicoigne.com>2021-11-03 18:55:08 +0000
commit02481656966b0a8dfc95cf3c22bcc049660ff7d4 (patch)
tree8e39798fcaf27931d91c2088423fd4e97adcfc2d /raindrops/src
parent4e2052c4d792540c2f742b2c2a081b11117ed41d (diff)
downloadexercism-02481656966b0a8dfc95cf3c22bcc049660ff7d4.tar.gz
exercism-02481656966b0a8dfc95cf3c22bcc049660ff7d4.zip
Move Rust exercises in a subdirectory
Diffstat (limited to 'raindrops/src')
-rw-r--r--raindrops/src/lib.rs28
1 files changed, 0 insertions, 28 deletions
diff --git a/raindrops/src/lib.rs b/raindrops/src/lib.rs
deleted file mode 100644
index 811c569..0000000
--- a/raindrops/src/lib.rs
+++ /dev/null
@@ -1,28 +0,0 @@
1struct Drops {
2 num: u32,
3 drops: Option<String>
4}
5
6impl Drops {
7 pub fn new(num: u32) -> Drops {
8 Drops { num, drops: None }
9 }
10
11 pub fn add_if_factor(&mut self, div: u32, suffix: &str) {
12 if self.num % div == 0 {
13 self.drops.get_or_insert(String::new()).push_str(suffix);
14 }
15 }
16
17 pub fn get(self) -> String {
18 self.drops.unwrap_or(self.num.to_string())
19 }
20}
21
22pub fn raindrops(n: u32) -> String {
23 let mut drops = Drops::new(n);
24 drops.add_if_factor(3, "Pling");
25 drops.add_if_factor(5, "Plang");
26 drops.add_if_factor(7, "Plong");
27 drops.get()
28}