annotate src/error.rs @ 28:cfef4593e207

Run `cargo fmt`.
author Paul Fisher <paul@pfish.zone>
date Sat, 19 Apr 2025 01:33:50 -0400
parents 1941e9d9819c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
1 //! Error types that can occur when dealing with `SocketAddr`
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
2 //!
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
3 //! This module separates the error types from root module to avoid clutter.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
4
24
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
5 use std::fmt;
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
6 use std::io;
28
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
7 use thiserror::Error;
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
8
24
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
9 /// Error returned when the library initialization fails.
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
10 #[derive(Debug)]
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
11 pub struct InitError(pub(crate) InitErrorInner);
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
12
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
13 #[cfg(all(target_os = "linux", feature = "enable_systemd"))]
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
14 type InitErrorInner = super::systemd_sockets::InitError;
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
15
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
16 #[cfg(not(all(target_os = "linux", feature = "enable_systemd")))]
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
17 type InitErrorInner = std::convert::Infallible;
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
18
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
19 impl fmt::Display for InitError {
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
20 #[inline]
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
21 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
22 fmt::Display::fmt(&self.0, f)
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
23 }
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
24 }
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
25
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
26 impl std::error::Error for InitError {
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
27 #[inline]
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
28 fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
29 self.0.source()
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
30 }
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
31 }
1941e9d9819c Fix unsound manipulation of env vars
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 21
diff changeset
32
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
33 /// Error that can occur during parsing of `SocketAddr` from a string
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
34 ///
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
35 /// This encapsulates possible errors that can occur when parsing the input.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
36 /// It is currently opaque because the representation is not certain yet.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
37 /// It can be displayed using the standard `Error` trait.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
38 #[derive(Debug, Error)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
39 #[error(transparent)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
40 pub struct ParseError(#[from] pub(crate) ParseErrorInner);
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
41
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
42 #[derive(Debug, Error)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
43 pub(crate) enum ParseErrorInner {
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
44 #[error("failed to parse socket address")]
4
66c0e10c89fc Support resolving hostnames
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 2
diff changeset
45 ResolvAddr(#[from] crate::resolv_addr::ResolvAddrError),
16
bc76507dd878 Fixed conditional compilation based on OS
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 13
diff changeset
46 #[cfg(all(target_os = "linux", feature = "enable_systemd"))]
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
47 #[error("invalid character '{c}' in systemd socket name {string} at position {pos}")]
28
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
48 InvalidCharacter { string: String, c: char, pos: usize },
16
bc76507dd878 Fixed conditional compilation based on OS
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 13
diff changeset
49 #[cfg(all(target_os = "linux", feature = "enable_systemd"))]
28
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
50 #[error(
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
51 "systemd socket name {string} is {len} characters long which is more than the limit 255"
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
52 )]
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
53 LongSocketName { string: String, len: usize },
16
bc76507dd878 Fixed conditional compilation based on OS
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 13
diff changeset
54 #[cfg(not(all(target_os = "linux", feature = "enable_systemd")))]
28
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
55 #[cfg_attr(
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
56 not(target_os = "linux"),
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
57 error("can't parse {0} because systemd is not supported on this operating system")
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
58 )]
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
59 #[cfg_attr(
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
60 target_os = "linux",
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
61 error("can't parse {0} because systemd support was disabled during build")
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
62 )]
6
a7893294e9b2 Make the crate compilable on non-linux systems
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 4
diff changeset
63 SystemdUnsupported(String),
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
64 }
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
65
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
66 /// Error that can occur during parsing of `SocketAddr` from a `OsStr`/`OsString`
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
67 ///
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
68 /// As opposed to parsing from `&str` or `String`, parsing from `OsStr` can fail due to one more
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
69 /// reason: invalid UTF-8. This error type expresses this possibility and is returned whenever such
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
70 /// conversion is attempted. It is not opaque because the possible variants are pretty much
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
71 /// certain, but it may contain `ParseError` which is opaque.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
72 ///
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
73 /// This error can be displayed using standard `Error` trait.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
74 /// See `ParseError` for more information.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
75 #[derive(Debug, Error)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
76 pub enum ParseOsStrError {
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
77 /// The input was not a valid UTF-8 string
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
78 #[error("the address is not a valid UTF-8 string")]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
79 InvalidUtf8,
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
80 /// The input was a valid UTF-8 string but the address was invalid
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
81 #[error(transparent)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
82 InvalidAddress(#[from] ParseError),
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
83 }
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
84
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
85 /// Error that can occur during binding of a socket
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
86 ///
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
87 /// This encapsulates possible errors that can occur when binding a socket or receiving a socket
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
88 /// from systemd.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
89 /// It is currently opaque because the representation is not certain yet.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
90 /// It can be displayed using the standard `Error` trait.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
91 #[derive(Debug, Error)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
92 #[error(transparent)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
93 pub struct BindError(#[from] pub(crate) BindErrorInner);
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
94
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
95 #[derive(Debug, Error)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
96 pub(crate) enum BindErrorInner {
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
97 #[error("failed to bind {addr}")]
28
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
98 BindFailed {
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
99 addr: std::net::SocketAddr,
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
100 #[source]
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
101 error: io::Error,
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
102 },
4
66c0e10c89fc Support resolving hostnames
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 2
diff changeset
103 #[error("failed to bind {addr}")]
28
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
104 BindOrResolvFailed {
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
105 addr: crate::resolv_addr::ResolvAddr,
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
106 #[source]
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
107 error: io::Error,
cfef4593e207 Run `cargo fmt`.
Paul Fisher <paul@pfish.zone>
parents: 24
diff changeset
108 },
16
bc76507dd878 Fixed conditional compilation based on OS
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 13
diff changeset
109 #[cfg(all(target_os = "linux", feature = "enable_systemd"))]
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
110 #[error("failed to receive descriptors with names")]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
111 ReceiveDescriptors(#[source] crate::systemd_sockets::Error),
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
112 #[error("missing systemd socket {0} - a typo or an attempt to bind twice")]
16
bc76507dd878 Fixed conditional compilation based on OS
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 13
diff changeset
113 #[cfg(all(target_os = "linux", feature = "enable_systemd"))]
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
114 MissingDescriptor(String),
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
115 #[error("the systemd socket {0} is not an internet socket")]
16
bc76507dd878 Fixed conditional compilation based on OS
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 13
diff changeset
116 #[cfg(all(target_os = "linux", feature = "enable_systemd"))]
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
117 NotInetSocket(String),
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
118 }
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
119
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
120 /// Error that can happen when binding Tokio socket.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
121 ///
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
122 /// As opposed to `std` and `async_std` sockets, tokio sockets can fail to convert.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
123 /// This error type expresses this possibility.
21
f6334887e3c8 Support `tokio` 1.0
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 16
diff changeset
124 #[cfg(any(feature = "tokio", feature = "tokio_0_2", feature = "tokio_0_3"))]
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
125 #[derive(Debug, Error)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
126 #[error(transparent)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
127 pub enum TokioBindError {
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
128 /// Either binding of socket or receiving systemd socket failed
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
129 Bind(#[from] BindError),
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
130 /// Conversion from std `std::net::TcpListener` to `tokio::net::TcpListener` failed
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
131 Convert(#[from] TokioConversionError),
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
132 }
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
133
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
134 /// Error that can happen when converting Tokio socket.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
135 ///
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
136 /// As opposed to `std` and `async_std` sockets, tokio sockets can fail to convert.
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
137 /// This error type encapsulates conversion error together with additional information so that it
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
138 /// can be displayed nicely. The encapsulation also allows for future-proofing.
21
f6334887e3c8 Support `tokio` 1.0
Martin Habovstiak <martin.habovstiak@gmail.com>
parents: 16
diff changeset
139 #[cfg(any(feature = "tokio", feature = "tokio_0_2", feature = "tokio_0_3"))]
0
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
140 #[derive(Debug, Error)]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
141 #[error("failed to convert std socket {addr} into tokio socket")]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
142 pub struct TokioConversionError {
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
143 pub(crate) addr: crate::SocketAddrInner,
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
144 #[source]
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
145 pub(crate) error: io::Error,
a65053246c29 Initial commit
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
146 }