Skip to main content

floreum_parser/
message.rs

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