Skip to main content

floreum_parser/
message.rs

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 {}