use *;
pub struct DisciplineMatchesIter<'a> {
client: &'a Toornament,
discipline_id: DisciplineId,
filter: MatchFilter,
}
impl<'a> DisciplineMatchesIter<'a> {
pub fn new(client: &'a Toornament, discipline_id: DisciplineId) -> DisciplineMatchesIter {
DisciplineMatchesIter {
client,
discipline_id,
filter: MatchFilter::default(),
}
}
}
impl<'a> DisciplineMatchesIter<'a> {
pub fn with_filter(mut self, filter: MatchFilter) -> Self {
self.filter = filter;
self
}
pub fn of_discipline(mut self, id: DisciplineId) -> Self {
self.discipline_id = id;
self
}
}
impl<'a> DisciplineMatchesIter<'a> {
pub fn collect<T: From<Matches>>(self) -> Result<T> {
Ok(T::from(
self.client
.matches_by_discipline(self.discipline_id, self.filter)?,
))
}
}