summaryrefslogtreecommitdiffstats
path: root/src/doc/book/listings/ch10-generic-types-traits-and-lifetimes/listing-10-14/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc/book/listings/ch10-generic-types-traits-and-lifetimes/listing-10-14/src/lib.rs')
-rw-r--r--src/doc/book/listings/ch10-generic-types-traits-and-lifetimes/listing-10-14/src/lib.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/doc/book/listings/ch10-generic-types-traits-and-lifetimes/listing-10-14/src/lib.rs b/src/doc/book/listings/ch10-generic-types-traits-and-lifetimes/listing-10-14/src/lib.rs
new file mode 100644
index 000000000..fb59b84fb
--- /dev/null
+++ b/src/doc/book/listings/ch10-generic-types-traits-and-lifetimes/listing-10-14/src/lib.rs
@@ -0,0 +1,29 @@
+// ANCHOR: here
+pub trait Summary {
+ fn summarize(&self) -> String {
+ String::from("(Read more...)")
+ }
+}
+// ANCHOR_END: here
+
+pub struct NewsArticle {
+ pub headline: String,
+ pub location: String,
+ pub author: String,
+ pub content: String,
+}
+
+impl Summary for NewsArticle {}
+
+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)
+ }
+}