use futures_core::Stream;
use crate::core::pagination::page_stream;
use crate::core::Result;
use super::generated::*;
use super::Vinted;
impl Vinted {
pub fn search_items_stream(
&self,
params: SearchItemsParams,
) -> impl Stream<Item = Result<VintedItemSummary>> {
let this = self.clone();
page_stream(1, move |page| {
let this = this.clone();
let mut params = params.clone();
async move {
params.page = Some(page as i64);
Ok(this.search_items(params).await?.items)
}
})
}
pub fn get_user_items_stream(
&self,
user_id: impl AsRef<str>,
params: GetUserItemsParams,
) -> impl Stream<Item = Result<VintedItemSummary>> {
let this = self.clone();
let user_id = user_id.as_ref().to_string();
page_stream(1, move |page| {
let this = this.clone();
let user_id = user_id.clone();
let mut params = params.clone();
async move {
params.page = Some(page as i64);
Ok(this.get_user_items(&user_id, params).await?.items)
}
})
}
}