diff options
author | Adam Carpenter <53hornet@gmail.com> | 2019-03-27 15:32:37 -0400 |
---|---|---|
committer | Adam Carpenter <53hornet@gmail.com> | 2019-03-27 15:32:37 -0400 |
commit | 67cdcc2e12118becb823e20a40cc2687f2b8425a (patch) | |
tree | ed92c3234b89079e6d4cf36f5e80c5ffa79def48 /blog | |
parent | e25482fca375d318a39c3b54db396b0db6e0b263 (diff) | |
download | learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.tar.xz learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.zip |
Started Rust in Action MEAP.
Diffstat (limited to 'blog')
-rw-r--r-- | blog/Cargo.lock | 4 | ||||
-rw-r--r-- | blog/Cargo.toml | 7 | ||||
-rw-r--r-- | blog/src/lib.rs | 127 | ||||
-rw-r--r-- | blog/src/main.rs | 36 |
4 files changed, 0 insertions, 174 deletions
diff --git a/blog/Cargo.lock b/blog/Cargo.lock deleted file mode 100644 index 8e79386..0000000 --- a/blog/Cargo.lock +++ /dev/null @@ -1,4 +0,0 @@ -[[package]] -name = "blog" -version = "0.1.0" - diff --git a/blog/Cargo.toml b/blog/Cargo.toml deleted file mode 100644 index 0f971d3..0000000 --- a/blog/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "blog" -version = "0.1.0" -authors = ["Adam Carpenter <53hornet@gmail.com>"] -edition = "2018" - -[dependencies] diff --git a/blog/src/lib.rs b/blog/src/lib.rs deleted file mode 100644 index 8436a36..0000000 --- a/blog/src/lib.rs +++ /dev/null @@ -1,127 +0,0 @@ -//pub struct Post { -// state: Option<Box<dyn State>>, -// content: String, -//} -// -//impl Post { -// pub fn new() -> Post { -// Post { -// state: Some(Box::new(Draft {})), -// content: String::new(), -// } -// } -// -// pub fn add_text(&mut self, text: &str) { -// self.content.push_str(text); -// } -// -// pub fn content(&self) -> &str { -// self.state.as_ref().unwrap().content(&self) -// } -// -// pub fn request_review(&mut self) { -// if let Some(s) = self.state.take() { -// self.state = Some(s.request_review()) -// } -// } -// -// pub fn approve(&mut self) { -// if let Some(s) = self.state.take() { -// self.state = Some(s.approve()) -// } -// } -//} -// -//trait State { -// fn request_review(self: Box<Self>) -> Box<dyn State>; -// fn approve(self: Box<Self>) -> Box<dyn State>; -// fn content<'a>(&self, post: &'a Post) -> &'a str { -// "" -// } -//} -// -//struct Draft {} -// -//impl State for Draft { -// fn request_review(self: Box<Self>) -> Box<dyn State> { -// Box::new(PendingReview {}) -// } -// -// fn approve(self: Box<Self>) -> Box<dyn State> { -// self -// } -//} -// -//struct PendingReview {} -// -//impl State for PendingReview { -// fn request_review(self: Box<Self>) -> Box<dyn State> { -// self -// } -// -// fn approve(self: Box<Self>) -> Box<dyn State> { -// Box::new(Published {}) -// } -//} -// -//struct Published {} -// -//impl State for Published { -// fn request_review(self: Box<Self>) -> Box<dyn State> { -// self -// } -// -// fn approve(self: Box<Self>) -> Box<dyn State> { -// self -// } -// -// fn content<'a>(&self, post: &'a Post) -> &'a str { -// &post.content -// } -//} - - - -pub struct Post { - content: String, -} - -pub struct DraftPost { - content: String, -} - -pub struct PendingReviewPost { - content: String, -} - -impl Post { - pub fn new() -> DraftPost { - DraftPost { - content: String::new(), - } - } - - pub fn content(&self) -> &str { - &self.content - } -} - -impl DraftPost { - pub fn add_text(&mut self, text: &str) { - self.content.push_str(text); - } - - pub fn request_review(self) -> PendingReviewPost { - PendingReviewPost { - content: self.content, - } - } -} - -impl PendingReviewPost { - pub fn approve(self) -> Post { - Post { - content: self.content, - } - } -} diff --git a/blog/src/main.rs b/blog/src/main.rs deleted file mode 100644 index c976cd9..0000000 --- a/blog/src/main.rs +++ /dev/null @@ -1,36 +0,0 @@ -use blog::Post; - -fn main() { -// let mut post = Post::new(); -// -// post.add_text("salad"); -// assert_eq!("", post.content()); -// -// post.request_review(); -// assert_eq!("", post.content()); -// -// post.approve(); -// assert_eq!("salad", post.content()); - - - -// let mut post = Post::new(); -// post.add_text("salad"); -// assert_eq!("", post.content()); - - - - let mut post = Post::new(); - - post.add_text("salad"); - let post = post.request_review(); - let post = post.approve(); - - assert_eq!("salad", post.content()); - - - - - - println!("Done."); -} |