mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-02 01:25: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};
|
use ggemini::client::connection::request::{Mode, Request};
|
||||||
match uri.scheme().as_str() {
|
match uri.scheme().as_str() {
|
||||||
"gemini" => handle(
|
"gemini" => handle(
|
||||||
|
self,
|
||||||
Request::Gemini {
|
Request::Gemini {
|
||||||
uri,
|
uri,
|
||||||
mode: Mode::HeaderOnly,
|
mode: Mode::HeaderOnly,
|
||||||
},
|
},
|
||||||
(
|
feature,
|
||||||
self.client.clone(),
|
|
||||||
self.page.clone(),
|
|
||||||
self.redirects.clone(),
|
|
||||||
feature,
|
|
||||||
),
|
|
||||||
cancellable,
|
cancellable,
|
||||||
None,
|
None,
|
||||||
is_snap_history,
|
is_snap_history,
|
||||||
),
|
),
|
||||||
"titan" => {
|
"titan" => {
|
||||||
self.page.input.set_new_titan({
|
self.page.input.set_new_titan({
|
||||||
let client = self.client.clone();
|
let this = Self {
|
||||||
let page = self.page.clone();
|
client: self.client.clone(),
|
||||||
let redirects = self.redirects.clone();
|
page: self.page.clone(),
|
||||||
|
redirects: self.redirects.clone(),
|
||||||
|
};
|
||||||
move |header, bytes, on_failure| {
|
move |header, bytes, on_failure| {
|
||||||
handle(
|
handle(
|
||||||
|
&this,
|
||||||
Request::Titan {
|
Request::Titan {
|
||||||
uri: uri.clone(),
|
uri: uri.clone(),
|
||||||
data: bytes,
|
data: bytes,
|
||||||
|
|
@ -126,12 +125,7 @@ impl Gemini {
|
||||||
token: header.token.map(|token| token.into()),
|
token: header.token.map(|token| token.into()),
|
||||||
mode: Mode::HeaderOnly,
|
mode: Mode::HeaderOnly,
|
||||||
},
|
},
|
||||||
(
|
feature.clone(),
|
||||||
client.clone(),
|
|
||||||
page.clone(),
|
|
||||||
redirects.clone(),
|
|
||||||
feature.clone(),
|
|
||||||
),
|
|
||||||
cancellable.clone(),
|
cancellable.clone(),
|
||||||
Some(on_failure),
|
Some(on_failure),
|
||||||
is_snap_history,
|
is_snap_history,
|
||||||
|
|
@ -147,21 +141,22 @@ impl Gemini {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(
|
fn handle(
|
||||||
|
this: &Gemini,
|
||||||
request: Request,
|
request: Request,
|
||||||
(client, page, redirects, feature): (Rc<Client>, Rc<Page>, Rc<Cell<usize>>, Rc<Feature>),
|
feature: Rc<Feature>,
|
||||||
cancellable: Cancellable,
|
cancellable: Cancellable,
|
||||||
on_failure: Option<Box<dyn Fn()>>,
|
on_failure: Option<Box<dyn Fn()>>,
|
||||||
is_snap_history: bool,
|
is_snap_history: bool,
|
||||||
) {
|
) {
|
||||||
const EVENT_COMPLETED: &str = "Completed";
|
const EVENT_COMPLETED: &str = "Completed";
|
||||||
let uri = request.uri().clone();
|
let uri = request.uri().clone();
|
||||||
client.request_async(
|
this.client.request_async(
|
||||||
request,
|
request,
|
||||||
Priority::DEFAULT,
|
Priority::DEFAULT,
|
||||||
cancellable.clone(),
|
cancellable.clone(),
|
||||||
// Search for user certificate match request
|
// Search for user certificate match request
|
||||||
// * @TODO this feature does not support multi-protocol yet
|
// * @TODO this feature does not support multi-protocol yet
|
||||||
match page
|
match this.page
|
||||||
.profile
|
.profile
|
||||||
.identity
|
.identity
|
||||||
.get(&uri.to_string())
|
.get(&uri.to_string())
|
||||||
|
|
@ -173,8 +168,8 @@ fn handle(
|
||||||
None => None,
|
None => None,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
let page = page.clone();
|
let page = this.page.clone();
|
||||||
let redirects = redirects.clone();
|
let redirects = this.redirects.clone();
|
||||||
move |result| match result {
|
move |result| match result {
|
||||||
Ok((response, connection)) => {
|
Ok((response, connection)) => {
|
||||||
/// Common page info pattern for some cases in the current scope
|
/// Common page info pattern for some cases in the current scope
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue