1use crate::{model::wiki::WikiPage, request::Request, routing::Route, Osu};
2
3#[must_use = "requests must be configured and executed"]
5pub struct GetWikiPage<'a> {
6 osu: &'a Osu,
7 locale: Box<str>,
8 page: Option<Box<str>>,
9}
10
11impl<'a> GetWikiPage<'a> {
12 pub(crate) fn new(osu: &'a Osu, locale: impl Into<String>) -> Self {
13 Self {
14 osu,
15 locale: Box::from(locale.into()),
16 page: None,
17 }
18 }
19
20 #[inline]
22 pub fn page(mut self, page: impl Into<String>) -> Self {
23 self.page = Some(Box::from(page.into()));
24
25 self
26 }
27}
28
29into_future! {
30 |self: GetWikiPage<'_>| -> WikiPage {
31 Request::new(Route::GetWikiPage {
32 locale: self.locale,
33 page: self.page,
34 })
35 }
36}