diff options
| author | Federico Igne <git@federicoigne.com> | 2020-12-26 17:48:38 +0000 |
|---|---|---|
| committer | Federico Igne <git@federicoigne.com> | 2021-11-03 18:55:08 +0000 |
| commit | 02481656966b0a8dfc95cf3c22bcc049660ff7d4 (patch) | |
| tree | 8e39798fcaf27931d91c2088423fd4e97adcfc2d /nucleotide-count/src/lib.rs | |
| parent | 4e2052c4d792540c2f742b2c2a081b11117ed41d (diff) | |
| download | exercism-02481656966b0a8dfc95cf3c22bcc049660ff7d4.tar.gz exercism-02481656966b0a8dfc95cf3c22bcc049660ff7d4.zip | |
Move Rust exercises in a subdirectory
Diffstat (limited to 'nucleotide-count/src/lib.rs')
| -rw-r--r-- | nucleotide-count/src/lib.rs | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/nucleotide-count/src/lib.rs b/nucleotide-count/src/lib.rs deleted file mode 100644 index 98b0c38..0000000 --- a/nucleotide-count/src/lib.rs +++ /dev/null | |||
| @@ -1,21 +0,0 @@ | |||
| 1 | use maplit::hashmap; | ||
| 2 | use std::collections::HashMap; | ||
| 3 | |||
| 4 | pub fn count(nucleotide: char, dna: &str) -> Result<usize, char> { | ||
| 5 | nucleotide_counts(dna)? | ||
| 6 | .remove(&nucleotide) | ||
| 7 | .ok_or(nucleotide) | ||
| 8 | } | ||
| 9 | |||
| 10 | pub fn nucleotide_counts(dna: &str) -> Result<HashMap<char, usize>, char> { | ||
| 11 | dna.chars().fold( | ||
| 12 | Ok(hashmap![ 'A' => 0, 'C' => 0, 'G' => 0, 'T' => 0 ]), | ||
| 13 | |acc, n| match n { | ||
| 14 | 'A' | 'C' | 'G' | 'T' => acc.map(|mut hmap| { | ||
| 15 | hmap.entry(n).and_modify(|e| *e += 1).or_insert(0); | ||
| 16 | hmap | ||
| 17 | }), | ||
| 18 | _ => Err(n), | ||
| 19 | }, | ||
| 20 | ) | ||
| 21 | } | ||
