summaryrefslogtreecommitdiff
path: root/solutions/23_conversions/using_as.rs
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-07-01 21:41:22 +0200
committermo8it <mo8it@proton.me>2024-07-01 21:41:22 +0200
commit428d64ffa01415826e421e00f59f63a77884b923 (patch)
tree2c499a59a8a7eaa72d4d5a615d74ae5740525f1f /solutions/23_conversions/using_as.rs
parent09c94bef2dbaf44daf81d8f618289c9425d1f90f (diff)
using_as solution
Diffstat (limited to 'solutions/23_conversions/using_as.rs')
-rw-r--r--solutions/23_conversions/using_as.rs25
1 files changed, 24 insertions, 1 deletions
diff --git a/solutions/23_conversions/using_as.rs b/solutions/23_conversions/using_as.rs
index 4e18198..14b92eb 100644
--- a/solutions/23_conversions/using_as.rs
+++ b/solutions/23_conversions/using_as.rs
@@ -1 +1,24 @@
-// Solutions will be available before the stable release. Thank you for testing the beta version 🥰
+// Type casting in Rust is done via the usage of the `as` operator.
+// Note that the `as` operator is not only used when type casting. It also helps
+// with renaming imports.
+
+fn average(values: &[f64]) -> f64 {
+ let total = values.iter().sum::<f64>();
+ total / values.len() as f64
+ // ^^^^^^
+}
+
+fn main() {
+ let values = [3.5, 0.3, 13.0, 11.7];
+ println!("{}", average(&values));
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn returns_proper_type_and_value() {
+ assert_eq!(average(&[3.5, 0.3, 13.0, 11.7]), 7.125);
+ }
+}