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/src/lib.rs | |
parent | e25482fca375d318a39c3b54db396b0db6e0b263 (diff) | |
download | learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.tar.xz learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.zip |
Started Rust in Action MEAP.
Diffstat (limited to 'blog/src/lib.rs')
-rw-r--r-- | blog/src/lib.rs | 127 |
1 files changed, 0 insertions, 127 deletions
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, - } - } -} |