summaryrefslogtreecommitdiffstats
path: root/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter')
-rw-r--r--src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/Cargo.lock6
-rw-r--r--src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/Cargo.toml6
-rw-r--r--src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/src/lib.rs25
3 files changed, 37 insertions, 0 deletions
diff --git a/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/Cargo.lock b/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/Cargo.lock
new file mode 100644
index 000000000..58b70c5b7
--- /dev/null
+++ b/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/Cargo.lock
@@ -0,0 +1,6 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "counter"
+version = "0.1.0"
+
diff --git a/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/Cargo.toml b/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/Cargo.toml
new file mode 100644
index 000000000..9e103f3eb
--- /dev/null
+++ b/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+name = "counter"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
diff --git a/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/src/lib.rs b/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/src/lib.rs
new file mode 100644
index 000000000..04c7f38f5
--- /dev/null
+++ b/src/doc/book/listings/ch19-advanced-features/no-listing-22-iterator-on-counter/src/lib.rs
@@ -0,0 +1,25 @@
+struct Counter {
+ count: u32,
+}
+
+impl Counter {
+ fn new() -> Counter {
+ Counter { count: 0 }
+ }
+}
+
+// ANCHOR: ch19
+impl Iterator for Counter {
+ type Item = u32;
+
+ fn next(&mut self) -> Option<Self::Item> {
+ // --snip--
+ // ANCHOR_END: ch19
+ if self.count < 5 {
+ self.count += 1;
+ Some(self.count)
+ } else {
+ None
+ }
+ }
+}