aboutsummaryrefslogtreecommitdiff
path: root/net-im
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2018-10-25 21:59:37 +0000
committerJan Beich <jbeich@FreeBSD.org>2018-10-25 21:59:37 +0000
commitd12ed1152285742456c45ad88c8815749d08d97e (patch)
treee2922e9adf015ba0792ddd4b2551d8663786f91a /net-im
parentd21b45e3cd064edd899bb92b17a9f9cac4fd5c52 (diff)
downloadports-d12ed1152285742456c45ad88c8815749d08d97e.tar.gz
ports-d12ed1152285742456c45ad88c8815749d08d97e.zip
lang/rust: update to 1.30.0
- Force rebuild all consumers to catch regressions early Changes: https://blog.rust-lang.org/2018/10/25/Rust-1.30.0.html Approved by: rust (tobik) MFH: 2018Q4 (less rust versions to support) Differential Revision: https://reviews.freebsd.org/D17695
Notes
Notes: svn path=/head/; revision=482993
Diffstat (limited to 'net-im')
-rw-r--r--net-im/fractal/Makefile2
-rw-r--r--net-im/fractal/files/patch-rust-1.30181
2 files changed, 182 insertions, 1 deletions
diff --git a/net-im/fractal/Makefile b/net-im/fractal/Makefile
index 30597885d377..5a5cc471a045 100644
--- a/net-im/fractal/Makefile
+++ b/net-im/fractal/Makefile
@@ -2,7 +2,7 @@
PORTNAME= fractal
DISTVERSION= 3.30.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net-im
MASTER_SITES= https://gitlab.gnome.org/World/fractal/uploads/${GL_HASH}/
diff --git a/net-im/fractal/files/patch-rust-1.30 b/net-im/fractal/files/patch-rust-1.30
new file mode 100644
index 000000000000..67fcbaf1fa1e
--- /dev/null
+++ b/net-im/fractal/files/patch-rust-1.30
@@ -0,0 +1,181 @@
+https://github.com/bluss/petgraph/commit/8dd7d219a854a
+
+error[E0034]: multiple applicable items in scope
+ --> vendor/petgraph/src/graph_impl/stable_graph/mod.rs:1171:19
+ |
+1171 | self.iter.find_map(|(i, node)| {
+ | ^^^^^^^^ multiple `find_map` found
+ |
+note: candidate #1 is defined in an impl of the trait `iter_utils::IterUtilsExt` for the type `_`
+ --> vendor/petgraph/src/iter_utils.rs:5:5
+ |
+5 | / fn find_map<F, R>(&mut self, mut f: F) -> Option<R>
+6 | | where F: FnMut(Self::Item) -> Option<R>
+7 | | {
+8 | | while let Some(elt) = self.next() {
+... |
+13 | | None
+14 | | }
+ | |_____^
+ = note: candidate #2 is defined in an impl of the trait `std::iter::Iterator` for the type `std::iter::Enumerate<_>`
+
+error[E0034]: multiple applicable items in scope
+ --> vendor/petgraph/src/graph_impl/stable_graph/mod.rs:1363:19
+ |
+1363 | self.iter.find_map(|(i, edge)|
+ | ^^^^^^^^ multiple `find_map` found
+ |
+note: candidate #1 is defined in an impl of the trait `iter_utils::IterUtilsExt` for the type `_`
+ --> vendor/petgraph/src/iter_utils.rs:5:5
+ |
+5 | / fn find_map<F, R>(&mut self, mut f: F) -> Option<R>
+6 | | where F: FnMut(Self::Item) -> Option<R>
+7 | | {
+8 | | while let Some(elt) = self.next() {
+... |
+13 | | None
+14 | | }
+ | |_____^
+ = note: candidate #2 is defined in an impl of the trait `std::iter::Iterator` for the type `std::iter::Enumerate<_>`
+
+error[E0034]: multiple applicable items in scope
+ --> vendor/petgraph/src/graph_impl/stable_graph/mod.rs:1527:19
+ |
+1527 | self.iter.find_map(|(i, node)| {
+ | ^^^^^^^^ multiple `find_map` found
+ |
+note: candidate #1 is defined in an impl of the trait `iter_utils::IterUtilsExt` for the type `_`
+ --> vendor/petgraph/src/iter_utils.rs:5:5
+ |
+5 | / fn find_map<F, R>(&mut self, mut f: F) -> Option<R>
+6 | | where F: FnMut(Self::Item) -> Option<R>
+7 | | {
+8 | | while let Some(elt) = self.next() {
+... |
+13 | | None
+14 | | }
+ | |_____^
+ = note: candidate #2 is defined in an impl of the trait `std::iter::Iterator` for the type `std::iter::Enumerate<_>`
+
+error[E0034]: multiple applicable items in scope
+ --> vendor/petgraph/src/graph_impl/stable_graph/mod.rs:1573:19
+ |
+1573 | self.iter.find_map(|(i, node)| {
+ | ^^^^^^^^ multiple `find_map` found
+ |
+note: candidate #1 is defined in an impl of the trait `iter_utils::IterUtilsExt` for the type `_`
+ --> vendor/petgraph/src/iter_utils.rs:5:5
+ |
+5 | / fn find_map<F, R>(&mut self, mut f: F) -> Option<R>
+6 | | where F: FnMut(Self::Item) -> Option<R>
+7 | | {
+8 | | while let Some(elt) = self.next() {
+... |
+13 | | None
+14 | | }
+ | |_____^
+ = note: candidate #2 is defined in an impl of the trait `std::iter::Iterator` for the type `std::iter::Enumerate<_>`
+
+error: aborting due to 4 previous errors
+
+--- vendor/petgraph/.cargo-checksum.json.orig 2018-09-04 07:45:22 UTC
++++ vendor/petgraph/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{".github/ISSUE_TEMPLATE.md":"f2259ec5955ec8ec09535537a9f403c42a66a7051a86fe058a20448e10463682",".travis.yml":"7e88c4c436018b75542415d052dd5623830906f72b99ff2d0b8b4117d0ee8dd3","CONTRIBUTING.rst":"3914abdde0831b7c5707081273b65ef858384e056fe9b49f97dd8c3356fb057d","Cargo.toml":"7f38e73a66d8c6768d4d9181630c7b0fe227dd3857661a90335f87fd5fad6d66","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"7576269ea71f767b99297934c0b2367532690f8c4badc695edf8e04ab6a1e545","Makefile":"00085165f17f84dca52e95d3ef0890ce91004225938c39c5b20c237ba0265828","README.rst":"d85915bd89a8dea532d2f952e43698aec93512a9fad4dd727dd8de2f92c6ce83","benches/iso.rs":"fa2bb166e29936bb6956593fd814cb4851b450e9a9bf5a8cca5aacb97e36c517","benches/ograph.rs":"d16a926528360b30ceddfb33b2db545ff5c33ebb69ed8ed66de395f35fa8fc2d","benches/stable_graph.rs":"c1e98da2ee12f3dfb51d409d7ed58d29e78dce5a548084b3d438b817130db08e","custom.css":"e6f2cd299392337b4e2959c52f422e5b7be11920ea98d10db44d10ddef5ed47c","graph-example.dot":"9db00c096f61632bfba85a5a46b125cc5151583b6dbed89b75fa711ed4f649f2","src/algo/dominators.rs":"6521285e2efe6674b9b4785fb11a572ece530c9529d9b9544df4708425bc70c6","src/algo/mod.rs":"28b3e0b7c5f3c1a38135d2c283866f60c86e284400c4ebec0da679d1de0d6a65","src/astar.rs":"1d9b0a83a41dce347fe9ecd72dd30e869d91df3940a5a33cda2737dc7dd08958","src/csr.rs":"7952ea3ee689ce4e1828cfe4b564e8054d426b2e4817aaaf0db03e78714dd763","src/data.rs":"095cef6658eb66d7e5ae0e96174010ce6b718c9f8ebd94e862faca7bc51266b1","src/dijkstra.rs":"4385735dfa489ac8369adb45502d282242252164a8ed7e8abdb6b6f9126ab233","src/dot.rs":"49a0c7dfa0da25cbd1f580645a70c8c2187956469f6f9d5766e71d595e519112","src/generate.rs":"d4070d083c940021e67803f057270a03ecb6091c59e408fe6d4a44a356395725","src/graph_impl/frozen.rs":"5239aad49915f7d01f217634d3adf34c472d67734c8474c1bf54c43beb871f71","src/graph_impl/mod.rs":"ce29a9116998724ca4c168e4f66b4eb93d430419b298f12eb19762fbbe9e8f59","src/graph_impl/serialization.rs":"69171f8c0ab8a4ef0c90585241e112cfb22b45c2bd131b2186f8e32bad0b0287","src/graph_impl/stable_graph/mod.rs":"91353c00d78b330929e29679ecd2133528276abe75c00ad9dd5a6095ec94637a","src/graph_impl/stable_graph/serialization.rs":"127d547644fdf209f513f4eb3f5d0707c4b780842e8eb3758f2148f1e8635a09","src/graphmap.rs":"5508c4bdec16cdf68ac2c1ded54844156c0b701154834f35bbb8ff066366a1e3","src/isomorphism.rs":"be6145a9ce6b9123cd8efe384ae23bede25deec00ff4b5d98a95cabc0637c136","src/iter_format.rs":"c9d24f5004db96e722ffe51fd13aed4983d271f8dc7199e6c83d0f696b3275bd","src/iter_utils.rs":"5c33ba8c10d3ee5706a2de68639192cb88c7ce5e278afc5d3c0f6abd713732e4","src/lib.rs":"d1a2651f73c8908181eb85fc4e8697071030a04893cb0231b28f2a9c53154084","src/macros.rs":"04c1409ea1a7df8580cbfae834db700448b19f76d9640820919e0117ebe867b1","src/prelude.rs":"7675b4d37fab7ac506506e82cb3952d9912568f4a7a75e5504d085ca856d320a","src/quickcheck.rs":"e50f0d5fb9024832d7a68992f52d12cadabe0189da8ebce24524a2acba25aa6e","src/scored.rs":"5848275fe1ddbcec3cf324ef80f7356375082d9a4eb9ab69d0dc2be21f80a17d","src/serde_utils.rs":"abace257edfd72ae29af72e349e050d6a55f1e5dc62d3c72fb388393581d202e","src/traits_graph.rs":"074a0f6a68aed4ed23ba8a96111383eb905e0be0243b3c2162046bf89ee9875f","src/unionfind.rs":"3716ab724047b8ac574f822ce083952254274db6c6fbe69f61a00bcfd74ff65c","src/util.rs":"15a37dddb26dc65b866dbcfb01d95b8eb54a0f5d56adaf826ef0dd4203de4eec","src/visit/dfsvisit.rs":"074a7400193ed7d1c9fbd485bf9c85081e6e7a49c89b3386e0b5a5841ec4ec13","src/visit/filter.rs":"3e8b444c975e8530f1e0b5b399ea4070069fff1a4601ba82f1ec95e98171cdb7","src/visit/macros.rs":"a8cea86e4e065c11fc975e7a3791399c44cc4fc92e5325723d09683ddf360d61","src/visit/mod.rs":"59d610c0b1c99189a78d9a00a294d2e08475e59b75de12ad3b9e324ec5371a39","src/visit/reversed.rs":"caa722a49c79466aa86730d8de08c2422ba10979ed23b26d9f8601a349020145","src/visit/traversal.rs":"8fac82082beff264d203d5780fcfa64a32a260c18ccae2298e4c79399a3651a6","tests/graph.rs":"3a0b8c5da35b607bd79b1c268e09fde8d41a008b36d01fd78cc94db56842c90c","tests/graphmap.rs":"2e95ff80781513cb91fceea2041dc56401b2782c4882de1a6f41e6b617653d6b","tests/iso.rs":"4be4820947697bc531f9e0655a0b3a0f1b5240b9fede3cea433f0ae6431920cb","tests/quickcheck.rs":"3a4626c581d013ddbfcbe7a16bf00d5e04309fe7e91cbdd7c80220601ddd4887","tests/stable_graph.rs":"ee756cdf6dbea9c5405ad17e4e7e396bdf61799f833eea11e015d0aec34da75c","tests/unionfind.rs":"fb203dacf27d7d62503b6933dc73cd0e4da9d8b46a106ce3ee253c09781e2fe7","tests/utils/mod.rs":"2838784ba2fb2a01c901321a0680a030c99268e8b0afe197a4e8550556f0807d","tests/utils/qc.rs":"bb01df05da6f9d5aa61800f711176dcd22729fee8b1e0b6f3b708fa45194e9a4"},"package":"8b30dc85588cd02b9b76f5e386535db546d21dc68506cff2abebee0b6445e8e4"}
+\ No newline at end of file
++{"files":{".github/ISSUE_TEMPLATE.md":"f2259ec5955ec8ec09535537a9f403c42a66a7051a86fe058a20448e10463682",".travis.yml":"7e88c4c436018b75542415d052dd5623830906f72b99ff2d0b8b4117d0ee8dd3","CONTRIBUTING.rst":"3914abdde0831b7c5707081273b65ef858384e056fe9b49f97dd8c3356fb057d","Cargo.toml":"7f38e73a66d8c6768d4d9181630c7b0fe227dd3857661a90335f87fd5fad6d66","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"7576269ea71f767b99297934c0b2367532690f8c4badc695edf8e04ab6a1e545","Makefile":"00085165f17f84dca52e95d3ef0890ce91004225938c39c5b20c237ba0265828","README.rst":"d85915bd89a8dea532d2f952e43698aec93512a9fad4dd727dd8de2f92c6ce83","benches/iso.rs":"fa2bb166e29936bb6956593fd814cb4851b450e9a9bf5a8cca5aacb97e36c517","benches/ograph.rs":"d16a926528360b30ceddfb33b2db545ff5c33ebb69ed8ed66de395f35fa8fc2d","benches/stable_graph.rs":"c1e98da2ee12f3dfb51d409d7ed58d29e78dce5a548084b3d438b817130db08e","custom.css":"e6f2cd299392337b4e2959c52f422e5b7be11920ea98d10db44d10ddef5ed47c","graph-example.dot":"9db00c096f61632bfba85a5a46b125cc5151583b6dbed89b75fa711ed4f649f2","src/algo/dominators.rs":"6521285e2efe6674b9b4785fb11a572ece530c9529d9b9544df4708425bc70c6","src/algo/mod.rs":"28b3e0b7c5f3c1a38135d2c283866f60c86e284400c4ebec0da679d1de0d6a65","src/astar.rs":"1d9b0a83a41dce347fe9ecd72dd30e869d91df3940a5a33cda2737dc7dd08958","src/csr.rs":"7952ea3ee689ce4e1828cfe4b564e8054d426b2e4817aaaf0db03e78714dd763","src/data.rs":"095cef6658eb66d7e5ae0e96174010ce6b718c9f8ebd94e862faca7bc51266b1","src/dijkstra.rs":"4385735dfa489ac8369adb45502d282242252164a8ed7e8abdb6b6f9126ab233","src/dot.rs":"49a0c7dfa0da25cbd1f580645a70c8c2187956469f6f9d5766e71d595e519112","src/generate.rs":"d4070d083c940021e67803f057270a03ecb6091c59e408fe6d4a44a356395725","src/graph_impl/frozen.rs":"5239aad49915f7d01f217634d3adf34c472d67734c8474c1bf54c43beb871f71","src/graph_impl/mod.rs":"ce29a9116998724ca4c168e4f66b4eb93d430419b298f12eb19762fbbe9e8f59","src/graph_impl/serialization.rs":"69171f8c0ab8a4ef0c90585241e112cfb22b45c2bd131b2186f8e32bad0b0287","src/graph_impl/stable_graph/mod.rs":"d5656206ba7f12b54275a89e2a7eb2bebca7bf5a2ef32a6b60657f7c5cf8379e","src/graph_impl/stable_graph/serialization.rs":"127d547644fdf209f513f4eb3f5d0707c4b780842e8eb3758f2148f1e8635a09","src/graphmap.rs":"5508c4bdec16cdf68ac2c1ded54844156c0b701154834f35bbb8ff066366a1e3","src/isomorphism.rs":"be6145a9ce6b9123cd8efe384ae23bede25deec00ff4b5d98a95cabc0637c136","src/iter_format.rs":"c9d24f5004db96e722ffe51fd13aed4983d271f8dc7199e6c83d0f696b3275bd","src/iter_utils.rs":"8b60781ac00b42372bb6a8db758ffac88065ed82c9ed946e5fe834fb8812efeb","src/lib.rs":"d1a2651f73c8908181eb85fc4e8697071030a04893cb0231b28f2a9c53154084","src/macros.rs":"04c1409ea1a7df8580cbfae834db700448b19f76d9640820919e0117ebe867b1","src/prelude.rs":"7675b4d37fab7ac506506e82cb3952d9912568f4a7a75e5504d085ca856d320a","src/quickcheck.rs":"e50f0d5fb9024832d7a68992f52d12cadabe0189da8ebce24524a2acba25aa6e","src/scored.rs":"5848275fe1ddbcec3cf324ef80f7356375082d9a4eb9ab69d0dc2be21f80a17d","src/serde_utils.rs":"abace257edfd72ae29af72e349e050d6a55f1e5dc62d3c72fb388393581d202e","src/traits_graph.rs":"074a0f6a68aed4ed23ba8a96111383eb905e0be0243b3c2162046bf89ee9875f","src/unionfind.rs":"3716ab724047b8ac574f822ce083952254274db6c6fbe69f61a00bcfd74ff65c","src/util.rs":"15a37dddb26dc65b866dbcfb01d95b8eb54a0f5d56adaf826ef0dd4203de4eec","src/visit/dfsvisit.rs":"074a7400193ed7d1c9fbd485bf9c85081e6e7a49c89b3386e0b5a5841ec4ec13","src/visit/filter.rs":"3e8b444c975e8530f1e0b5b399ea4070069fff1a4601ba82f1ec95e98171cdb7","src/visit/macros.rs":"a8cea86e4e065c11fc975e7a3791399c44cc4fc92e5325723d09683ddf360d61","src/visit/mod.rs":"59d610c0b1c99189a78d9a00a294d2e08475e59b75de12ad3b9e324ec5371a39","src/visit/reversed.rs":"caa722a49c79466aa86730d8de08c2422ba10979ed23b26d9f8601a349020145","src/visit/traversal.rs":"8fac82082beff264d203d5780fcfa64a32a260c18ccae2298e4c79399a3651a6","tests/graph.rs":"3a0b8c5da35b607bd79b1c268e09fde8d41a008b36d01fd78cc94db56842c90c","tests/graphmap.rs":"2e95ff80781513cb91fceea2041dc56401b2782c4882de1a6f41e6b617653d6b","tests/iso.rs":"4be4820947697bc531f9e0655a0b3a0f1b5240b9fede3cea433f0ae6431920cb","tests/quickcheck.rs":"3a4626c581d013ddbfcbe7a16bf00d5e04309fe7e91cbdd7c80220601ddd4887","tests/stable_graph.rs":"ee756cdf6dbea9c5405ad17e4e7e396bdf61799f833eea11e015d0aec34da75c","tests/unionfind.rs":"fb203dacf27d7d62503b6933dc73cd0e4da9d8b46a106ce3ee253c09781e2fe7","tests/utils/mod.rs":"2838784ba2fb2a01c901321a0680a030c99268e8b0afe197a4e8550556f0807d","tests/utils/qc.rs":"bb01df05da6f9d5aa61800f711176dcd22729fee8b1e0b6f3b708fa45194e9a4"},"package":"8b30dc85588cd02b9b76f5e386535db546d21dc68506cff2abebee0b6445e8e4"}
+\ No newline at end of file
+--- vendor/petgraph/src/graph_impl/stable_graph/mod.rs.orig 2018-09-04 07:45:22 UTC
++++ vendor/petgraph/src/graph_impl/stable_graph/mod.rs
+@@ -1168,7 +1168,7 @@ impl<'a, N, Ix> Iterator for NodeReferences<'a, N, Ix>
+ type Item = (NodeIndex<Ix>, &'a N);
+
+ fn next(&mut self) -> Option<Self::Item> {
+- self.iter.find_map(|(i, node)| {
++ self.iter.ex_find_map(|(i, node)| {
+ node.weight.as_ref().map(move |w| (node_index(i), w))
+ })
+ }
+@@ -1183,7 +1183,7 @@ impl<'a, N, Ix> DoubleEndedIterator for NodeReferences
+ where Ix: IndexType
+ {
+ fn next_back(&mut self) -> Option<Self::Item> {
+- self.iter.rfind_map(|(i, node)| {
++ self.iter.ex_rfind_map(|(i, node)| {
+ node.weight.as_ref().map(move |w| (node_index(i), w))
+ })
+ }
+@@ -1360,7 +1360,7 @@ impl<'a, E, Ix> Iterator for EdgeReferences<'a, E, Ix>
+ type Item = EdgeReference<'a, E, Ix>;
+
+ fn next(&mut self) -> Option<Self::Item> {
+- self.iter.find_map(|(i, edge)|
++ self.iter.ex_find_map(|(i, edge)|
+ edge.weight.as_ref().map(move |weight| {
+ EdgeReference {
+ index: edge_index(i),
+@@ -1375,7 +1375,7 @@ impl<'a, E, Ix> DoubleEndedIterator for EdgeReferences
+ where Ix: IndexType
+ {
+ fn next_back(&mut self) -> Option<Self::Item> {
+- self.iter.rfind_map(|(i, edge)|
++ self.iter.ex_rfind_map(|(i, edge)|
+ edge.weight.as_ref().map(move |weight| {
+ EdgeReference {
+ index: edge_index(i),
+@@ -1524,7 +1524,7 @@ impl<'a, N, Ix: IndexType> Iterator for NodeIndices<'a
+ type Item = NodeIndex<Ix>;
+
+ fn next(&mut self) -> Option<Self::Item> {
+- self.iter.find_map(|(i, node)| {
++ self.iter.ex_find_map(|(i, node)| {
+ if node.weight.is_some() {
+ Some(node_index(i))
+ } else { None }
+@@ -1539,7 +1539,7 @@ impl<'a, N, Ix: IndexType> Iterator for NodeIndices<'a
+
+ impl<'a, N, Ix: IndexType> DoubleEndedIterator for NodeIndices<'a, N, Ix> {
+ fn next_back(&mut self) -> Option<Self::Item> {
+- self.iter.rfind_map(|(i, node)| {
++ self.iter.ex_rfind_map(|(i, node)| {
+ if node.weight.is_some() {
+ Some(node_index(i))
+ } else { None }
+@@ -1570,7 +1570,7 @@ impl<'a, E, Ix: IndexType> Iterator for EdgeIndices<'a
+ type Item = EdgeIndex<Ix>;
+
+ fn next(&mut self) -> Option<Self::Item> {
+- self.iter.find_map(|(i, node)| {
++ self.iter.ex_find_map(|(i, node)| {
+ if node.weight.is_some() {
+ Some(edge_index(i))
+ } else { None }
+@@ -1585,7 +1585,7 @@ impl<'a, E, Ix: IndexType> Iterator for EdgeIndices<'a
+
+ impl<'a, E, Ix: IndexType> DoubleEndedIterator for EdgeIndices<'a, E, Ix> {
+ fn next_back(&mut self) -> Option<Self::Item> {
+- self.iter.rfind_map(|(i, node)| {
++ self.iter.ex_rfind_map(|(i, node)| {
+ if node.weight.is_some() {
+ Some(edge_index(i))
+ } else { None }
+--- vendor/petgraph/src/iter_utils.rs.orig 2018-09-04 07:45:22 UTC
++++ vendor/petgraph/src/iter_utils.rs
+@@ -2,7 +2,7 @@
+ pub trait IterUtilsExt : Iterator {
+ /// Return the first element that maps to `Some(_)`, or None if the iterator
+ /// was exhausted.
+- fn find_map<F, R>(&mut self, mut f: F) -> Option<R>
++ fn ex_find_map<F, R>(&mut self, mut f: F) -> Option<R>
+ where F: FnMut(Self::Item) -> Option<R>
+ {
+ while let Some(elt) = self.next() {
+@@ -15,7 +15,7 @@ pub trait IterUtilsExt : Iterator {
+
+ /// Return the last element from the back that maps to `Some(_)`, or
+ /// None if the iterator was exhausted.
+- fn rfind_map<F, R>(&mut self, mut f: F) -> Option<R>
++ fn ex_rfind_map<F, R>(&mut self, mut f: F) -> Option<R>
+ where F: FnMut(Self::Item) -> Option<R>,
+ Self: DoubleEndedIterator,
+ {