summaryrefslogtreecommitdiff
path: root/advanced/adv-traits/src
diff options
context:
space:
mode:
Diffstat (limited to 'advanced/adv-traits/src')
-rw-r--r--advanced/adv-traits/src/main.rs163
1 files changed, 0 insertions, 163 deletions
diff --git a/advanced/adv-traits/src/main.rs b/advanced/adv-traits/src/main.rs
deleted file mode 100644
index 659883c..0000000
--- a/advanced/adv-traits/src/main.rs
+++ /dev/null
@@ -1,163 +0,0 @@
-//fn main() {
-// println!("Hello, world!");
-//}
-//
-//pub trait Iterator {
-// type Item;
-//
-// fn next(&mut self) -> Option<Self::Item>;
-//}
-//
-//
-//#[derive(Debug, PartialEq)]
-//struct Point {
-// x: i32,
-// y: i32,
-//}
-//
-//impl Add for Point {
-// type Output = Point;
-//
-// fn add(self, other: Point) -> Point {
-// Point {
-// x: self.x + other.x,
-// y: self.y + other.y,
-// }
-// }
-//}
-
-//fn main() {
-// assert_eq!(Point { x: 1, y: 0 } + Point { x: 2, y: 3 },
-// Point { x: 3, y: 3 });
-// println!("Done.");
-//}
-
-//trait Add<RHS=Self> {
-// type Output;
-//
-// fn add(self, rhs: RHS) -> Self::Output;
-//}
-
-//use std::ops::Add;
-//
-//struct Millimeters(u32);
-//struct Meters(u32);
-//
-//impl Add<Meters> for Millimeters {
-// type Output = Millimeters;
-//
-// fn add(self, other: Meters) -> Millimeters {
-// Millimeters(self.0 + (other.0 * 1000))
-// }
-//}
-
-
-//trait Pilot {
-// fn fly(&self);
-//}
-//
-//trait Wizard {
-// fn fly(&self);
-//}
-//
-//struct Human;
-//
-//impl Pilot for Human {
-// fn fly(&self) {
-// println!("Because I was inverted.");
-// }
-//}
-//
-//impl Wizard for Human {
-// fn fly(&self) {
-// println!("Fly, you fools.");
-// }
-//}
-//
-//impl Human {
-// fn fly(&self) {
-// println!("*feels real loose like a long-neck goose*");
-// }
-//}
-//
-//
-//trait Animal {
-// fn baby_name() -> String;
-//}
-//
-//struct Dog;
-//
-//impl Dog {
-// fn baby_name() -> String {
-// String::from("Spot")
-// }
-//}
-//
-//impl Animal for Dog {
-// fn baby_name() -> String {
-// String::from("puppy")
-// }
-//}
-
-
-//fn main() {
-// let person = Human;
-// person.fly();
-// Pilot::fly(&person);
-// Wizard::fly(&person);
-//
-//
-// println!("A baby dog is called a {}", <Dog as Animal>::baby_name());
-//
-//
-// println!("Done.");
-//}
-//
-
-
-//use std::fmt;
-//
-//trait OutlinePrint: fmt::Display {
-// fn outline_print(&self) {
-// let output = self.to_string();
-// let len = output.len();
-// println!("{}", "*".repeat(len + 4));
-// println!("*{}*", " ".repeat(len + 2));
-// println!("* {} *", output);
-// println!("*{}*", " ".repeat(len + 2));
-// println!("{}", "*".repeat(len + 4));
-// }
-//}
-//
-//struct Point {
-// x: i32,
-// y: i32,
-//}
-//
-//impl OutlinePrint for Point {}
-//
-//impl fmt::Display for Point {
-// fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-// write!(f, "({}, {})", self.x, self.y)
-// }
-//}
-//
-//fn main() {
-// let point = Point { x: 5, y: 6 };
-// point.outline_print();
-//}
-
-use std::fmt;
-
-struct Wrapper(Vec<String>);
-
-impl fmt::Display for Wrapper {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- write!(f, "[{}]", self.0.join(", "))
- }
-}
-
-fn main() {
- let w = Wrapper(vec![String::from("hello"), String::from("world")]);
- println!("w = {}", w);
-}