summaryrefslogtreecommitdiff
path: root/rustlings/exercises/23_conversions/as_ref_mut.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rustlings/exercises/23_conversions/as_ref_mut.rs')
-rw-r--r--rustlings/exercises/23_conversions/as_ref_mut.rs62
1 files changed, 0 insertions, 62 deletions
diff --git a/rustlings/exercises/23_conversions/as_ref_mut.rs b/rustlings/exercises/23_conversions/as_ref_mut.rs
deleted file mode 100644
index d7892dd..0000000
--- a/rustlings/exercises/23_conversions/as_ref_mut.rs
+++ /dev/null
@@ -1,62 +0,0 @@
-// AsRef and AsMut allow for cheap reference-to-reference conversions. Read more
-// about them at https://doc.rust-lang.org/std/convert/trait.AsRef.html and
-// https://doc.rust-lang.org/std/convert/trait.AsMut.html, respectively.
-
-// Obtain the number of bytes (not characters) in the given argument
-// (`.len()` returns the number of bytes in a string).
-// TODO: Add the `AsRef` trait appropriately as a trait bound.
-fn byte_counter<T>(arg: T) -> usize {
- arg.as_ref().len()
-}
-
-// Obtain the number of characters (not bytes) in the given argument.
-// TODO: Add the `AsRef` trait appropriately as a trait bound.
-fn char_counter<T>(arg: T) -> usize {
- arg.as_ref().chars().count()
-}
-
-// Squares a number using `as_mut()`.
-// TODO: Add the appropriate trait bound.
-fn num_sq<T>(arg: &mut T) {
- // TODO: Implement the function body.
-}
-
-fn main() {
- // You can optionally experiment here.
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn different_counts() {
- let s = "Café au lait";
- assert_ne!(char_counter(s), byte_counter(s));
- }
-
- #[test]
- fn same_counts() {
- let s = "Cafe au lait";
- assert_eq!(char_counter(s), byte_counter(s));
- }
-
- #[test]
- fn different_counts_using_string() {
- let s = String::from("Café au lait");
- assert_ne!(char_counter(s.clone()), byte_counter(s));
- }
-
- #[test]
- fn same_counts_using_string() {
- let s = String::from("Cafe au lait");
- assert_eq!(char_counter(s.clone()), byte_counter(s));
- }
-
- #[test]
- fn mut_box() {
- let mut num: Box<u32> = Box::new(3);
- num_sq(&mut num);
- assert_eq!(*num, 9);
- }
-}