From ef1bf4921ee4127d461eec03a14c9070d193345c Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Mon, 11 Feb 2019 16:59:01 -0500 Subject: Init. --- generics/.gitignore | 2 ++ generics/Cargo.lock | 4 ++++ generics/Cargo.toml | 7 ++++++ generics/src/main.rs | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 generics/.gitignore create mode 100644 generics/Cargo.lock create mode 100644 generics/Cargo.toml create mode 100644 generics/src/main.rs (limited to 'generics') diff --git a/generics/.gitignore b/generics/.gitignore new file mode 100644 index 0000000..53eaa21 --- /dev/null +++ b/generics/.gitignore @@ -0,0 +1,2 @@ +/target +**/*.rs.bk diff --git a/generics/Cargo.lock b/generics/Cargo.lock new file mode 100644 index 0000000..3ddbc8c --- /dev/null +++ b/generics/Cargo.lock @@ -0,0 +1,4 @@ +[[package]] +name = "generics" +version = "0.1.0" + diff --git a/generics/Cargo.toml b/generics/Cargo.toml new file mode 100644 index 0000000..5529f73 --- /dev/null +++ b/generics/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "generics" +version = "0.1.0" +authors = ["Adam Carpenter "] +edition = "2018" + +[dependencies] diff --git a/generics/src/main.rs b/generics/src/main.rs new file mode 100644 index 0000000..e41d6f5 --- /dev/null +++ b/generics/src/main.rs @@ -0,0 +1,68 @@ +//struct Point { +// x: T, +// y: U, +//} + +//impl Point { +// fn x(&self) -> &T { +// &self.x +// } +// +// fn y(&self) -> &T { +// &self.y +// } + +// fn mixup(self, other: Point) -> Point { +// Point { +// x: self.x, +// y: other.y, +// } +// } +//} + +fn largest(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); +} -- cgit v1.2.3