telegraph_api_rs/types/
page_list.rs1use serde::Deserialize;
2
3use super::{page::Page, TelegraphType};
4
5
6#[derive(Deserialize, Default, Debug)]
10pub struct PageList {
11    pub total_count: u32,
13    pub pages: Vec<Page>
15}
16
17
18impl TelegraphType for PageList {}
19
20
21#[cfg(test)]
22mod tests {
23    use serde_json;
24
25    use super::PageList;
26
27    #[test]
28    fn page_list_deserialize() {
29        let page_list_str = r#"
30        {
31            "total_count": 1,
32            "pages": [{
33                "path": "path test",
34                "url": "url test",
35                "title": "title test",
36                "description": "description test",
37                "views": 10,
38                "can_edit": true
39            }]
40        }"#;
41        let page: PageList = serde_json::from_str(page_list_str).unwrap_or_default();
42        assert_eq!(page.total_count, 1);
43        assert_eq!(page.pages.len(), 1);
44        assert_eq!(page.pages[0].path, "path test");
45        assert_eq!(page.pages[0].url, "url test");
46    }
47}