reorganize error types, return socket_connection on init error

This commit is contained in:
yggverse 2025-07-22 09:46:32 +03:00
parent 44196608ce
commit cc1018224a
2 changed files with 16 additions and 10 deletions

View file

@ -74,7 +74,7 @@ impl Client {
move |result| match result {
Ok(socket_connection) => {
match Connection::build(
socket_connection,
socket_connection.clone(),
network_address,
client_certificate,
server_certificates,
@ -87,18 +87,20 @@ impl Client {
move |result| {
callback(match result {
Ok(response) => Ok(response),
Err(e) => Err(Error::Connection(e)),
Err(e) => Err(Error::Request(e)),
})
},
),
Err(e) => callback(Err(Error::Connection(e))),
Err(e) => {
callback(Err(Error::Connection(socket_connection, e)))
}
}
}
Err(e) => callback(Err(Error::Connect(e))),
}
})
}
Err(e) => callback(Err(Error::Request(e))),
Err(e) => callback(Err(Error::NetworkAddress(e))),
}
}

View file

@ -3,21 +3,25 @@ use std::fmt::{Display, Formatter, Result};
#[derive(Debug)]
pub enum Error {
Connect(glib::Error),
Connection(crate::client::connection::Error),
Request(crate::client::connection::request::Error),
Connection(gio::SocketConnection, crate::client::connection::Error),
NetworkAddress(crate::client::connection::request::Error),
Request(crate::client::connection::Error),
}
impl Display for Error {
fn fmt(&self, f: &mut Formatter) -> Result {
match self {
Self::Connection(e) => {
write!(f, "Connection error: {e}")
}
Self::Connect(e) => {
write!(f, "Connect error: {e}")
}
Self::Connection(_, e) => {
write!(f, "Connection init error: {e}")
}
Self::NetworkAddress(e) => {
write!(f, "Network address error: {e}")
}
Self::Request(e) => {
write!(f, "Request error: {e}")
write!(f, "Connection error: {e}")
}
}
}