M src/database/file/mod.rs => src/database/file/mod.rs +5 -6
@@ 501,14 501,13 @@ impl Storage for FileStorage {
let mut posts_iter = children
.into_iter()
.map(|s: serde_json::Value| s.as_str().unwrap().to_string());
- if after.is_some() {
- loop {
- let i = posts_iter.next();
- if &i == after {
- break;
+ if let Some(after) = after {
+ for s in posts_iter.by_ref() {
+ if &s == after {
+ break
}
}
- }
+ };
let posts = stream::iter(posts_iter)
.map(|url: String| async move { self.get_post(&url).await })
.buffered(std::cmp::min(3, limit))
M src/database/redis/mod.rs => src/database/redis/mod.rs +5 -6
@@ 218,14 218,13 @@ impl Storage for RedisStorage {
if feed["children"].is_array() {
let children = feed["children"].as_array().unwrap();
let mut posts_iter = children.iter().map(|i| i.as_str().unwrap().to_string());
- if after.is_some() {
- loop {
- let i = posts_iter.next();
- if &i == after {
- break;
+ if let Some(after) = after {
+ for s in posts_iter.by_ref() {
+ if &s == after {
+ break
}
}
- }
+ };
async fn fetch_post_for_feed(url: String) -> Option<serde_json::Value> {
return Some(serde_json::json!({}));
}