mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 16:45:27 +00:00
implement new error handlers
This commit is contained in:
parent
ed4851068c
commit
df54be4ba3
1 changed files with 76 additions and 4 deletions
|
|
@ -363,7 +363,7 @@ impl Page {
|
|||
// Use local namespaces
|
||||
use gemini::client::response::{
|
||||
body::Error as BodyError,
|
||||
header::{Mime as ClientMime, Status as ClientStatus},
|
||||
header::{Error as HeaderError, Mime as ClientMime, Status as ClientStatus},
|
||||
Body, Header,
|
||||
};
|
||||
|
||||
|
|
@ -634,15 +634,87 @@ impl Page {
|
|||
},
|
||||
}
|
||||
},
|
||||
Err(_) => todo!() // ResponseHeader::from_response
|
||||
Err((reason, message)) => {
|
||||
// Define common data
|
||||
let status = Status::Failure;
|
||||
let title = gformat!("Oops");
|
||||
let description = match reason {
|
||||
HeaderError::Buffer => match message {
|
||||
Some(error) => gformat!("{error}"),
|
||||
None => gformat!("Buffer error")
|
||||
},
|
||||
HeaderError::InputStream => match message {
|
||||
Some(error) => gformat!("{error}"),
|
||||
None => gformat!("Input stream reading error")
|
||||
},
|
||||
HeaderError::Protocol => match message {
|
||||
Some(error) => gformat!("{error}"),
|
||||
None => gformat!("Incorrect protocol")
|
||||
},
|
||||
HeaderError::StatusDecode => match message {
|
||||
Some(error) => gformat!("{error}"),
|
||||
None => gformat!("Could not detect status code")
|
||||
},
|
||||
HeaderError::StatusUndefined => match message {
|
||||
Some(error) => gformat!("{error}"),
|
||||
None => gformat!("Undefined status code")
|
||||
},
|
||||
};
|
||||
|
||||
// Update widget
|
||||
content
|
||||
.set_status_failure(title.as_str(), description.as_str());
|
||||
|
||||
// Update meta
|
||||
meta.borrow_mut().status = Some(status);
|
||||
meta.borrow_mut().title = Some(title);
|
||||
meta.borrow_mut().description = Some(description);
|
||||
|
||||
// Update window
|
||||
action_update.activate(Some(&id));
|
||||
} // Header::from_socket_connection_async
|
||||
}
|
||||
);
|
||||
}
|
||||
Err(_) => todo!(), // OutputStream::write_bytes_async
|
||||
Err(reason) => {
|
||||
// Define common data
|
||||
let status = Status::Failure;
|
||||
let title = gformat!("Oops");
|
||||
let description = gformat!("Request error: {}", reason.message());
|
||||
|
||||
// Update widget
|
||||
content
|
||||
.set_status_failure(title.as_str(), description.as_str());
|
||||
|
||||
// Update meta
|
||||
meta.borrow_mut().status = Some(status);
|
||||
meta.borrow_mut().title = Some(title);
|
||||
meta.borrow_mut().description = Some(description);
|
||||
|
||||
// Update window
|
||||
action_update.activate(Some(&id));
|
||||
}, // OutputStream::write_bytes_async
|
||||
},
|
||||
);
|
||||
}
|
||||
Err(_) => todo!(), // SocketClient::connect_to_uri_async
|
||||
Err(reason) => {
|
||||
// Define common data
|
||||
let status = Status::Failure;
|
||||
let title = gformat!("Oops");
|
||||
let description = gformat!("Connection error: {}", reason.message());
|
||||
|
||||
// Update widget
|
||||
content
|
||||
.set_status_failure(title.as_str(), description.as_str());
|
||||
|
||||
// Update meta
|
||||
meta.borrow_mut().status = Some(status);
|
||||
meta.borrow_mut().title = Some(title);
|
||||
meta.borrow_mut().description = Some(description);
|
||||
|
||||
// Update window
|
||||
action_update.activate(Some(&id));
|
||||
}, // SocketClient::connect_to_uri_async
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue