unixfs_v1/pb/
unixfs.rs

1// Modified automatically generated rust module for 'unixfs.proto' file
2#![allow(non_snake_case)]
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(unused_imports)]
6#![allow(unknown_lints)]
7#![allow(clippy::all)]
8#![cfg_attr(rustfmt, rustfmt_skip)]
9
10use super::*;
11use quick_protobuf::sizeofs::*;
12use quick_protobuf::{BytesReader, MessageRead, MessageWrite, Result, Writer, WriterBackend};
13use alloc::borrow::Cow;
14use core::convert::TryFrom;
15use std::io::Write;
16use core::ops::Deref;
17use core::ops::DerefMut;
18
19#[derive(Debug, Default, PartialEq, Clone)]
20pub struct Data<'a> {
21    pub Type: mod_Data::DataType,
22    pub Data: Option<Cow<'a, [u8]>>,
23    pub filesize: Option<u64>,
24    pub blocksizes: Vec<u64>,
25    pub hashType: Option<u64>,
26    pub fanout: Option<u64>,
27    pub mode: Option<u32>,
28    pub mtime: Option<UnixTime>,
29}
30impl<'a> MessageRead<'a> for Data<'a> {
31    fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result<Self> {
32        let mut msg = Self::default();
33        while !r.is_eof() {
34            match r.next_tag(bytes) {
35                Ok(8) => msg.Type = r.read_enum(bytes)?,
36                Ok(18) => msg.Data = Some(r.read_bytes(bytes).map(Cow::Borrowed)?),
37                Ok(24) => msg.filesize = Some(r.read_uint64(bytes)?),
38                Ok(32) => msg.blocksizes.push(r.read_uint64(bytes)?),
39                Ok(40) => msg.hashType = Some(r.read_uint64(bytes)?),
40                Ok(48) => msg.fanout = Some(r.read_uint64(bytes)?),
41                Ok(56) => msg.mode = Some(r.read_uint32(bytes)?),
42                Ok(66) => msg.mtime = Some(r.read_message::<UnixTime>(bytes)?),
43                Ok(t) => {
44                    r.read_unknown(bytes, t)?;
45                }
46                Err(e) => return Err(e),
47            }
48        }
49        Ok(msg)
50    }
51}
52impl<'a> MessageWrite for Data<'a> {
53    fn get_size(&self) -> usize {
54        0 + 1
55            + sizeof_varint(*(&self.Type) as u64)
56            + self.Data.as_ref().map_or(0, |m| 1 + sizeof_len((m).len()))
57            + self
58                .filesize
59                .as_ref()
60                .map_or(0, |m| 1 + sizeof_varint(*(m) as u64))
61            + self
62                .blocksizes
63                .iter()
64                .map(|s| 1 + sizeof_varint(*(s) as u64))
65                .sum::<usize>()
66            + self
67                .hashType
68                .as_ref()
69                .map_or(0, |m| 1 + sizeof_varint(*(m) as u64))
70            + self
71                .fanout
72                .as_ref()
73                .map_or(0, |m| 1 + sizeof_varint(*(m) as u64))
74            + self
75                .mode
76                .as_ref()
77                .map_or(0, |m| 1 + sizeof_varint(*(m) as u64))
78            + self
79                .mtime
80                .as_ref()
81                .map_or(0, |m| 1 + sizeof_len((m).get_size()))
82    }
83    fn write_message<W: WriterBackend>(&self, w: &mut Writer<W>) -> Result<()> {
84        w.write_with_tag(8, |w| w.write_enum(*&self.Type as i32))?;
85        if let Some(ref s) = self.Data {
86            w.write_with_tag(18, |w| w.write_bytes(&**s))?;
87        }
88        if let Some(ref s) = self.filesize {
89            w.write_with_tag(24, |w| w.write_uint64(*s))?;
90        }
91        for s in &self.blocksizes {
92            w.write_with_tag(32, |w| w.write_uint64(*s))?;
93        }
94        if let Some(ref s) = self.hashType {
95            w.write_with_tag(40, |w| w.write_uint64(*s))?;
96        }
97        if let Some(ref s) = self.fanout {
98            w.write_with_tag(48, |w| w.write_uint64(*s))?;
99        }
100        if let Some(ref s) = self.mode {
101            w.write_with_tag(56, |w| w.write_uint32(*s))?;
102        }
103        if let Some(ref s) = self.mtime {
104            w.write_with_tag(66, |w| w.write_message(s))?;
105        }
106        Ok(())
107    }
108}
109pub mod mod_Data {
110    #[derive(Debug, PartialEq, Eq, Clone, Copy)]
111    pub enum DataType {
112        Raw = 0,
113        Directory = 1,
114        File = 2,
115        Metadata = 3,
116        Symlink = 4,
117        HAMTShard = 5,
118    }
119    impl Default for DataType {
120        fn default() -> Self {
121            DataType::Raw
122        }
123    }
124    impl From<i32> for DataType {
125        fn from(i: i32) -> Self {
126            match i {
127                0 => DataType::Raw,
128                1 => DataType::Directory,
129                2 => DataType::File,
130                3 => DataType::Metadata,
131                4 => DataType::Symlink,
132                5 => DataType::HAMTShard,
133                _ => Self::default(),
134            }
135        }
136    }
137    impl<'a> From<&'a str> for DataType {
138        fn from(s: &'a str) -> Self {
139            match s {
140                "Raw" => DataType::Raw,
141                "Directory" => DataType::Directory,
142                "File" => DataType::File,
143                "Metadata" => DataType::Metadata,
144                "Symlink" => DataType::Symlink,
145                "HAMTShard" => DataType::HAMTShard,
146                _ => Self::default(),
147            }
148        }
149    }
150    impl From<DataType> for i32 {
151        fn from(dt: DataType) -> Self {
152            match dt {
153                DataType::Raw => 0,
154                DataType::Directory => 1,
155                DataType::File => 2,
156                DataType::Metadata => 3,
157                DataType::Symlink => 4,
158                DataType::HAMTShard => 5,
159            }
160        }
161    }
162}
163#[derive(Debug, Default, PartialEq, Clone)]
164pub struct UnixTime {
165    pub Seconds: i64,
166    pub FractionalNanoseconds: Option<u32>,
167}
168impl<'a> MessageRead<'a> for UnixTime {
169    fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result<Self> {
170        let mut msg = Self::default();
171        while !r.is_eof() {
172            match r.next_tag(bytes) {
173                Ok(8) => msg.Seconds = r.read_int64(bytes)?,
174                Ok(21) => msg.FractionalNanoseconds = Some(r.read_fixed32(bytes)?),
175                Ok(t) => {
176                    r.read_unknown(bytes, t)?;
177                }
178                Err(e) => return Err(e),
179            }
180        }
181        Ok(msg)
182    }
183}
184impl MessageWrite for UnixTime {
185    fn get_size(&self) -> usize {
186        0 + 1
187            + sizeof_varint(*(&self.Seconds) as u64)
188            + self.FractionalNanoseconds.as_ref().map_or(0, |_| 1 + 4)
189    }
190    fn write_message<W: WriterBackend>(&self, w: &mut Writer<W>) -> Result<()> {
191        w.write_with_tag(8, |w| w.write_int64(*&self.Seconds))?;
192        if let Some(ref s) = self.FractionalNanoseconds {
193            w.write_with_tag(21, |w| w.write_fixed32(*s))?;
194        }
195        Ok(())
196    }
197}
198#[derive(Debug, Default, PartialEq, Clone)]
199pub struct Metadata<'a> {
200    pub MimeType: Option<Cow<'a, str>>,
201}
202impl<'a> MessageRead<'a> for Metadata<'a> {
203    fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result<Self> {
204        let mut msg = Self::default();
205        while !r.is_eof() {
206            match r.next_tag(bytes) {
207                Ok(10) => msg.MimeType = Some(r.read_string(bytes).map(Cow::Borrowed)?),
208                Ok(t) => {
209                    r.read_unknown(bytes, t)?;
210                }
211                Err(e) => return Err(e),
212            }
213        }
214        Ok(msg)
215    }
216}
217impl<'a> MessageWrite for Metadata<'a> {
218    fn get_size(&self) -> usize {
219        0 + self
220            .MimeType
221            .as_ref()
222            .map_or(0, |m| 1 + sizeof_len((m).len()))
223    }
224    fn write_message<W: WriterBackend>(&self, w: &mut Writer<W>) -> Result<()> {
225        if let Some(ref s) = self.MimeType {
226            w.write_with_tag(10, |w| w.write_string(&**s))?;
227        }
228        Ok(())
229    }
230}