mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-03-13 06:01:21 +00:00
implement new error handlers
This commit is contained in:
parent
ed4851068c
commit
df54be4ba3
@ -363,7 +363,7 @@ impl Page {
|
|||||||
// Use local namespaces
|
// Use local namespaces
|
||||||
use gemini::client::response::{
|
use gemini::client::response::{
|
||||||
body::Error as BodyError,
|
body::Error as BodyError,
|
||||||
header::{Mime as ClientMime, Status as ClientStatus},
|
header::{Error as HeaderError, Mime as ClientMime, Status as ClientStatus},
|
||||||
Body, Header,
|
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…
x
Reference in New Issue
Block a user