diff options
Diffstat (limited to 'rust-book/generics/src')
-rwxr-xr-x | rust-book/generics/src/main.rs | 68 |
1 files changed, 68 insertions, 0 deletions
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); +} |