Skip to main content

async_fuser/ll/reply_async/
statfs.rs

1//! Response data implementation of [`crate::AsyncFilesystem::statfs`] operation.
2
3use crate::ll::ResponseStruct;
4use crate::ll::ioslice_concat::IosliceConcat;
5use crate::ll::reply::Response;
6
7/// Response data from [`crate::AsyncFilesystem::statfs`] operation.
8#[derive(Debug)]
9pub struct StatfsResponse {
10    blocks: u64,
11    bfree: u64,
12    bavail: u64,
13    files: u64,
14    ffree: u64,
15    bsize: u32,
16    namelen: u32,
17    frsize: u32,
18}
19
20impl StatfsResponse {
21    /// Creates a new [`StatfsResponse`].
22    #[allow(clippy::too_many_arguments)]
23    pub fn new(
24        blocks: u64,
25        bfree: u64,
26        bavail: u64,
27        files: u64,
28        ffree: u64,
29        bsize: u32,
30        namelen: u32,
31        frsize: u32,
32    ) -> Self {
33        Self {
34            blocks,
35            bfree,
36            bavail,
37            files,
38            ffree,
39            bsize,
40            namelen,
41            frsize,
42        }
43    }
44}
45
46impl Response for StatfsResponse {
47    fn payload(&self) -> impl IosliceConcat {
48        ResponseStruct::new_statfs(
49            self.blocks,
50            self.bfree,
51            self.bavail,
52            self.files,
53            self.ffree,
54            self.bsize,
55            self.namelen,
56            self.frsize,
57        )
58    }
59}