1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//! API calls related to tags
//!
//! [documentation](https://docs.modrinth.com/api-spec/#tag/tags)
use super::*;
use crate::structures::tag::*;
impl<T> Ferinth<T> {
/**
List the categories, their icons, and applicable project types
## Example
```rust
# tokio_test::block_on(async {
# let modrinth = ferinth::Ferinth::default();
let categories = modrinth.tag_list_categories().await?;
# Ok::<_, ferinth::Error>(()) }).unwrap()
```
*/
pub async fn tag_list_categories(&self) -> Result<Vec<Category>> {
self.client
.get(API_BASE_URL.join_all(vec!["tag", "category"]))
.custom_send_json()
.await
}
/**
List the loaders, their icons, and supported project types
## Example
```rust
# tokio_test::block_on(async {
# let modrinth = ferinth::Ferinth::default();
let loaders = modrinth.tag_list_loaders().await?;
# Ok::<_, ferinth::Error>(()) }).unwrap()
```
*/
pub async fn tag_list_loaders(&self) -> Result<Vec<Loader>> {
self.client
.get(API_BASE_URL.join_all(vec!["tag", "loader"]))
.custom_send_json()
.await
}
/**
List the game versions and information about them
## Example
```rust
# tokio_test::block_on(async {
# let modrinth = ferinth::Ferinth::default();
let game_versions = modrinth.tag_list_game_versions().await?;
# Ok::<_, ferinth::Error>(()) }).unwrap()
```
*/
pub async fn tag_list_game_versions(&self) -> Result<Vec<GameVersion>> {
self.client
.get(API_BASE_URL.join_all(vec!["tag", "game_version"]))
.custom_send_json()
.await
}
/**
Get the text and title of a license
## Example
```rust
# tokio_test::block_on(async {
# let modrinth = ferinth::Ferinth::default();
let license = modrinth.tag_license_text_and_title("MIT").await?;
assert_eq!(license.title, "MIT License");
assert!(license.body.contains("MIT License"));
# Ok::<_, ferinth::Error>(()) }).unwrap()
```
*/
pub async fn tag_license_text_and_title(&self, id: &str) -> Result<License> {
self.client
.get(API_BASE_URL.join_all(vec!["tag", "license", id]))
.custom_send_json()
.await
}
/**
List donation platforms and information about them
## Example
```rust
# tokio_test::block_on(async {
# let modrinth = ferinth::Ferinth::default();
let donation_platforms = modrinth.tag_list_donation_platforms().await?;
# Ok::<_, ferinth::Error>(()) }).unwrap()
```
*/
pub async fn tag_list_donation_platforms(&self) -> Result<Vec<DonationPlatform>> {
self.client
.get(API_BASE_URL.join_all(vec!["tag", "donation_platform"]))
.custom_send_json()
.await
}
/**
List valid report types
## Example
```rust
# tokio_test::block_on(async {
# let modrinth = ferinth::Ferinth::default();
let report_types = modrinth.tag_list_report_types().await?;
# Ok::<_, ferinth::Error>(()) }).unwrap()
```
*/
pub async fn tag_list_report_types(&self) -> Result<Vec<String>> {
self.client
.get(API_BASE_URL.join_all(vec!["tag", "report_type"]))
.custom_send_json()
.await
}
/**
List valid project types
## Example
```rust
# tokio_test::block_on(async {
# let modrinth = ferinth::Ferinth::default();
let report_types = modrinth.tag_list_project_types().await?;
# Ok::<_, ferinth::Error>(()) }).unwrap()
```
*/
pub async fn tag_list_project_types(&self) -> Result<Vec<String>> {
self.client
.get(API_BASE_URL.join_all(vec!["tag", "project_type"]))
.custom_send_json()
.await
}
/**
List valid side types
## Example
```rust
# tokio_test::block_on(async {
# let modrinth = ferinth::Ferinth::default();
let report_types = modrinth.tag_list_side_types().await?;
# Ok::<_, ferinth::Error>(()) }).unwrap()
```
*/
pub async fn tag_list_side_types(&self) -> Result<Vec<String>> {
self.client
.get(API_BASE_URL.join_all(vec!["tag", "side_type"]))
.custom_send_json()
.await
}
}