sfr_slack_api/builder/
files_info.rs1use sfr_types as st;
4
5use crate::api::files_info::FilesInfo;
6
7#[derive(Debug, Default)]
9pub struct FilesInfoBuilder {
10 file: Option<String>,
12
13 count: Option<i64>,
15
16 cursor: Option<String>,
18
19 limit: Option<i64>,
21
22 page: Option<i64>,
24}
25
26impl FilesInfoBuilder {
27 pub fn new() -> Self {
29 Self::default()
30 }
31
32 pub fn build(self) -> Result<FilesInfo, st::Error> {
34 let file = self
35 .file
36 .ok_or_else(|| st::Error::required_value_is_missing(&["file"]))?;
37
38 let result = st::FilesInfoRequest {
39 file,
40 count: self.count,
41 cursor: self.cursor,
42 limit: self.limit,
43 page: self.page,
44 };
45
46 Ok(result.into())
47 }
48
49 pub fn file(mut self, file: String) -> Self {
51 self.file = Some(file);
52 self
53 }
54
55 pub fn count(mut self, count: Option<i64>) -> Self {
57 self.count = count;
58 self
59 }
60
61 pub fn cursor(mut self, cursor: Option<String>) -> Self {
63 self.cursor = cursor;
64 self
65 }
66
67 pub fn limit(mut self, limit: Option<i64>) -> Self {
69 self.limit = limit;
70 self
71 }
72
73 pub fn page(mut self, page: Option<i64>) -> Self {
75 self.page = page;
76 self
77 }
78}