mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 16:45:27 +00:00
group self members into Self struct
This commit is contained in:
parent
e3477d2056
commit
6142d8e68a
1 changed files with 15 additions and 20 deletions
|
|
@ -98,27 +98,26 @@ impl Gemini {
|
|||
use ggemini::client::connection::request::{Mode, Request};
|
||||
match uri.scheme().as_str() {
|
||||
"gemini" => handle(
|
||||
self,
|
||||
Request::Gemini {
|
||||
uri,
|
||||
mode: Mode::HeaderOnly,
|
||||
},
|
||||
(
|
||||
self.client.clone(),
|
||||
self.page.clone(),
|
||||
self.redirects.clone(),
|
||||
feature,
|
||||
),
|
||||
feature,
|
||||
cancellable,
|
||||
None,
|
||||
is_snap_history,
|
||||
),
|
||||
"titan" => {
|
||||
self.page.input.set_new_titan({
|
||||
let client = self.client.clone();
|
||||
let page = self.page.clone();
|
||||
let redirects = self.redirects.clone();
|
||||
let this = Self {
|
||||
client: self.client.clone(),
|
||||
page: self.page.clone(),
|
||||
redirects: self.redirects.clone(),
|
||||
};
|
||||
move |header, bytes, on_failure| {
|
||||
handle(
|
||||
&this,
|
||||
Request::Titan {
|
||||
uri: uri.clone(),
|
||||
data: bytes,
|
||||
|
|
@ -126,12 +125,7 @@ impl Gemini {
|
|||
token: header.token.map(|token| token.into()),
|
||||
mode: Mode::HeaderOnly,
|
||||
},
|
||||
(
|
||||
client.clone(),
|
||||
page.clone(),
|
||||
redirects.clone(),
|
||||
feature.clone(),
|
||||
),
|
||||
feature.clone(),
|
||||
cancellable.clone(),
|
||||
Some(on_failure),
|
||||
is_snap_history,
|
||||
|
|
@ -147,21 +141,22 @@ impl Gemini {
|
|||
}
|
||||
|
||||
fn handle(
|
||||
this: &Gemini,
|
||||
request: Request,
|
||||
(client, page, redirects, feature): (Rc<Client>, Rc<Page>, Rc<Cell<usize>>, Rc<Feature>),
|
||||
feature: Rc<Feature>,
|
||||
cancellable: Cancellable,
|
||||
on_failure: Option<Box<dyn Fn()>>,
|
||||
is_snap_history: bool,
|
||||
) {
|
||||
const EVENT_COMPLETED: &str = "Completed";
|
||||
let uri = request.uri().clone();
|
||||
client.request_async(
|
||||
this.client.request_async(
|
||||
request,
|
||||
Priority::DEFAULT,
|
||||
cancellable.clone(),
|
||||
// Search for user certificate match request
|
||||
// * @TODO this feature does not support multi-protocol yet
|
||||
match page
|
||||
match this.page
|
||||
.profile
|
||||
.identity
|
||||
.get(&uri.to_string())
|
||||
|
|
@ -173,8 +168,8 @@ fn handle(
|
|||
None => None,
|
||||
},
|
||||
{
|
||||
let page = page.clone();
|
||||
let redirects = redirects.clone();
|
||||
let page = this.page.clone();
|
||||
let redirects = this.redirects.clone();
|
||||
move |result| match result {
|
||||
Ok((response, connection)) => {
|
||||
/// Common page info pattern for some cases in the current scope
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue