summaryrefslogtreecommitdiff
path: root/blog/src
diff options
context:
space:
mode:
authorAdam Carpenter <53hornet@gmail.com>2019-03-27 15:32:37 -0400
committerAdam Carpenter <53hornet@gmail.com>2019-03-27 15:32:37 -0400
commit67cdcc2e12118becb823e20a40cc2687f2b8425a (patch)
treeed92c3234b89079e6d4cf36f5e80c5ffa79def48 /blog/src
parente25482fca375d318a39c3b54db396b0db6e0b263 (diff)
downloadlearning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.tar.xz
learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.zip
Started Rust in Action MEAP.
Diffstat (limited to 'blog/src')
-rw-r--r--blog/src/lib.rs127
-rw-r--r--blog/src/main.rs36
2 files changed, 0 insertions, 163 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,
- }
- }
-}
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.");
-}