diff options
Diffstat (limited to 'traits')
-rw-r--r-- | traits/Cargo.lock | 4 | ||||
-rw-r--r-- | traits/Cargo.toml | 7 | ||||
-rw-r--r-- | traits/src/main.rs | 114 |
3 files changed, 0 insertions, 125 deletions
diff --git a/traits/Cargo.lock b/traits/Cargo.lock deleted file mode 100644 index 3eff52b..0000000 --- a/traits/Cargo.lock +++ /dev/null @@ -1,4 +0,0 @@ -[[package]] -name = "traits" -version = "0.1.0" - diff --git a/traits/Cargo.toml b/traits/Cargo.toml deleted file mode 100644 index 461bdcd..0000000 --- a/traits/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "traits" -version = "0.1.0" -authors = ["Adam Carpenter <adam.carpenter@adp.com>"] -edition = "2018" - -[dependencies] diff --git a/traits/src/main.rs b/traits/src/main.rs deleted file mode 100644 index 770caa9..0000000 --- a/traits/src/main.rs +++ /dev/null @@ -1,114 +0,0 @@ -use std::fmt::Display; - -struct Pair<T> { - x: T, - y: T, -} - -impl<T> Pair<T> { - fn new(x: T, y: T) -> Self { - Self { - x, - y, - } - } -} - -impl<T: Display + PartialOrd> Pair<T> { - fn cmp_display(&self) { - if self.x >= self.y { - println!("{}", self.x); - } - else { - println!("{}", self.y); - } - } -} - -pub trait Summary { - fn summarize(&self) -> String { - format!("(read more from {}...)", self.summarize_author()) - } - - fn summarize_author(&self) -> String; -} - -pub struct NewsArticle { - pub headline: String, - pub location: String, - pub author: String, - pub content: String, -} - -impl Summary for NewsArticle { -// fn summarize(&self) -> String { -// format!("{}, by {} ({})", self.headline, self.author, self.location) -// } - - fn summarize_author(&self) -> String { - format!("{}", self.author) - } - -} - -pub struct Tweet { - pub username: String, - pub content: String, - pub reply: bool, - pub retweet: bool, -} - -impl Summary for Tweet { -// fn summarize(&self) -> String { -// format!("{}: {}", self.username, self.content) -// } - - fn summarize_author(&self) -> String { - format!("@{}", self.username) - } -} - -pub fn notify(item: impl Summary) { - println!("breaking news: {}", item.summarize()); -} - -fn returns_summarizable() -> impl Summary { - - NewsArticle { - headline: String::from("Penguins win the stanley cup championship!"), - location: String::from("Pittsburgh, PA, USA"), - author: String::from("Iceburgh"), - content: String::from("The pittsburgh penguins are winners I guess."), - } -// Tweet { -// username: String::from("horse_ebooks"), -// content: String::from("of course blargh"), -// reply: false, -// retweet: false, -// } -} - -fn main() { - - let tweet = Tweet { - username: String::from("horse_ebooks"), - content: String::from("of course, as you probably already know, people"), - reply: false, - retweet: false, - }; - - //dbg!(tweet.summarize()); - - let article = NewsArticle { - headline: String::from("Penguins win the stanley cup championship!"), - location: String::from("Pittsburgh, PA, USA"), - author: String::from("Iceburgh"), - content: String::from("The pittsburgh penguins are winners I guess."), - }; - - //dbg!(article.summarize()); - - //notify(tweet); - - returns_summarizable(); -} |