summaryrefslogtreecommitdiff
path: root/rust-book/generics
diff options
context:
space:
mode:
authorAdam Carpenter <53hornet@gmail.com>2019-03-27 15:32:37 -0400
committerAdam Carpenter <53hornet@gmail.com>2019-03-27 15:32:37 -0400
commit67cdcc2e12118becb823e20a40cc2687f2b8425a (patch)
treeed92c3234b89079e6d4cf36f5e80c5ffa79def48 /rust-book/generics
parente25482fca375d318a39c3b54db396b0db6e0b263 (diff)
downloadlearning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.tar.xz
learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.zip
Started Rust in Action MEAP.
Diffstat (limited to 'rust-book/generics')
-rwxr-xr-xrust-book/generics/Cargo.lock4
-rwxr-xr-xrust-book/generics/Cargo.toml7
-rwxr-xr-xrust-book/generics/src/main.rs68
3 files changed, 79 insertions, 0 deletions
diff --git a/rust-book/generics/Cargo.lock b/rust-book/generics/Cargo.lock
new file mode 100755
index 0000000..3ddbc8c
--- /dev/null
+++ b/rust-book/generics/Cargo.lock
@@ -0,0 +1,4 @@
+[[package]]
+name = "generics"
+version = "0.1.0"
+
diff --git a/rust-book/generics/Cargo.toml b/rust-book/generics/Cargo.toml
new file mode 100755
index 0000000..5529f73
--- /dev/null
+++ b/rust-book/generics/Cargo.toml
@@ -0,0 +1,7 @@
+[package]
+name = "generics"
+version = "0.1.0"
+authors = ["Adam Carpenter <adam.carpenter@adp.com>"]
+edition = "2018"
+
+[dependencies]
diff --git a/rust-book/generics/src/main.rs b/rust-book/generics/src/main.rs
new file mode 100755
index 0000000..e41d6f5
--- /dev/null
+++ b/rust-book/generics/src/main.rs
@@ -0,0 +1,68 @@
+//struct Point<T, U> {
+// x: T,
+// y: U,
+//}
+
+//impl<T, U> Point<T, U> {
+// fn x(&self) -> &T {
+// &self.x
+// }
+//
+// fn y(&self) -> &T {
+// &self.y
+// }
+
+// fn mixup<V, W>(self, other: Point<V, W>) -> Point<T, W> {
+// Point {
+// x: self.x,
+// y: other.y,
+// }
+// }
+//}
+
+fn largest<T: PartialOrd + Copy>(list: &[T]) -> T {
+ let mut largest = list[0];
+
+ for &item in list.iter() {
+
+ if item > largest {
+ largest = item;
+ }
+
+ }
+
+ largest
+}
+
+//enum Option_i32 {
+// Some(i32),
+// None,
+//}
+//
+//enum Option_f64 {
+// Some(f64),
+// None,
+//}
+
+fn main() {
+ let number_list = vec![34, 50, 25, 100, 65];
+ dbg!(largest(&number_list));
+ let char_list = vec!['h', 'e', 'l', 'l', 'o'];
+ dbg!(largest(&char_list));
+// let integer = Point { x: 5, y: 10 };
+// let float = Point { x: 5.0, y: 10.0 };
+
+// let p = Point { x: 5.0, y: 10.5 };
+// dbg!(p.x());
+// dbg!(p.y());
+
+// let p1 = Point { x: 5, y: 10.4 };
+// let p2 = Point { x: "Hello", y: 'c' };
+// let p3 = p1.mixup(p2);
+//
+// dbg!(p3.x);
+// dbg!(p3.y);
+
+// let integer = Option_i32::Some(5);
+// let float = Option_f64::Some(5.0);
+}