1use crate::{Cursor, Entry, FileType, Metadata, OpenOptions, Permit, error::FloreumError};
2use core::marker::PhantomData;
3use serde::{Deserialize, Serialize};
4#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
5pub struct ResponseError {
6 pub error: FloreumError,
7}
8#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub struct RequestOpen<N: AsRef<str>> {
10 pub expect: FileType,
11 pub options: OpenOptions,
12 pub path: N,
13}
14#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
15pub struct ResponseOpen {
16 pub descriptor: u64,
17}
18#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
19pub struct RequestFlush {
20 pub descriptor: u64,
21}
22#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
23pub struct ResponseFlush {}
24#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
25pub struct RequestClose {
26 pub descriptor: u64,
27}
28#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
29pub struct ResponseClose {}
30#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
31pub struct RequestMetadata<N: AsRef<str>> {
32 pub path: N,
33}
34#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
35pub struct ResponseMetadata {
36 pub metadata: Metadata,
37}
38#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
39pub struct RequestSetmeta {
40 pub descriptor: u64,
41 pub metadata: Metadata,
42}
43#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
44pub struct ResponseSetmeta {}
45#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
46pub struct RequestList {
47 pub descriptor: u64,
48 pub length: u64,
49}
50#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
51pub struct ResponseList<N: AsRef<str>, E: AsRef<[Entry<N>]>> {
52 pub entries: E,
53 pub _phantom_n: PhantomData<N>,
54}
55#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
56pub struct RequestRemove<N: AsRef<str>> {
57 pub descriptor: u64,
58 pub name: N,
59}
60#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
61pub struct ResponseRemove {}
62#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
63pub struct RequestRead {
64 pub descriptor: u64,
65 pub length: u64,
66}
67#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
68pub struct ResponseRead<C: AsRef<[u8]>> {
69 pub content: C,
70}
71#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
72pub struct RequestWrite<C: AsRef<[u8]>> {
73 pub descriptor: u64,
74 pub content: C,
75}
76#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
77pub struct ResponseWrite {
78 pub length: u64,
79}
80#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
81pub struct RequestSeek {
82 pub descriptor: u64,
83 pub cursor: Cursor,
84 pub offset: u64,
85}
86#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
87pub struct ResponseSeek {}
88#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
89pub struct RequestTell {
90 pub descriptor: u64,
91}
92#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
93pub struct ResponseTell {
94 pub offset: u64,
95}
96#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
97pub struct RequestCopy {
98 pub from: u64,
99 pub to: u64,
100 pub length: u64,
101}
102#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
103pub struct ResponseCopy {
104 pub length: u64,
105}
106#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
107pub struct RequestLink<N: AsRef<str>> {
108 pub permit: Permit,
109 pub above: bool,
110 pub from: N,
111 pub to: N,
112}
113#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
114pub struct ResponseLink {}
115#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
116pub struct RequestDrop {}
117#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
118pub struct ResponseDrop {}