Skip to content

rustfmt modules included from if_feature! macro #171

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 5, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/cargo-test.yml
Original file line number Diff line number Diff line change
@@ -20,9 +20,7 @@ jobs:

- name: Run rustfmt
run: |
echo "// empty module for rustfmt" > tests/generated.rs
rustup run nightly cargo fmt --check
rm tests/generated.rs
find . -path ./src/generated -prune -o -name '*.rs' -print | xargs rustup run nightly rustfmt --edition 2021 --check

- name: Set up Python
uses: actions/[email protected]
45 changes: 27 additions & 18 deletions src/default_async_client.rs
Original file line number Diff line number Diff line change
@@ -10,16 +10,18 @@
//! This code (and its dependencies) are only built if you use the `default_async_client` Cargo
//! feature.

use std::future::{Future, ready};
use std::str::FromStr;
use std::sync::Arc;
use bytes::Bytes;
use futures::{FutureExt, TryFutureExt, TryStreamExt};
use crate::async_client_trait::{AppAuthClient, HttpClient, HttpRequest, HttpRequestResultRaw,
NoauthClient, TeamAuthClient, TeamSelect, UserAuthClient};
use crate::async_client_trait::{
AppAuthClient, HttpClient, HttpRequest, HttpRequestResultRaw, NoauthClient, TeamAuthClient,
TeamSelect, UserAuthClient,
};
use crate::default_client_common::impl_set_path_root;
use crate::Error;
use crate::oauth2::{Authorization, TokenCache};
use crate::Error;
use bytes::Bytes;
use futures::{FutureExt, TryFutureExt, TryStreamExt};
use std::future::{ready, Future};
use std::str::FromStr;
use std::sync::Arc;

macro_rules! impl_update_token {
($self:ident) => {
@@ -76,7 +78,7 @@ impl HttpClient for UserAuthDefaultClient {
&self,
request: Self::Request,
body: Bytes,
) -> impl Future<Output=Result<HttpRequestResultRaw, Error>> + Send {
) -> impl Future<Output = Result<HttpRequestResultRaw, Error>> + Send {
self.inner.execute(request, body)
}

@@ -131,7 +133,7 @@ impl HttpClient for TeamAuthDefaultClient {
&self,
request: Self::Request,
body: Bytes,
) -> impl Future<Output=Result<HttpRequestResultRaw, Error>> + Send {
) -> impl Future<Output = Result<HttpRequestResultRaw, Error>> + Send {
self.inner.execute(request, body)
}

@@ -182,12 +184,17 @@ impl AppAuthDefaultClient {
impl HttpClient for AppAuthDefaultClient {
type Request = ReqwestRequest;

fn execute(&self, request: Self::Request, body: Bytes) -> impl Future<Output=Result<HttpRequestResultRaw, Error>> + Send {
fn execute(
&self,
request: Self::Request,
body: Bytes,
) -> impl Future<Output = Result<HttpRequestResultRaw, Error>> + Send {
self.inner.execute(request, body)
}

fn new_request(&self, url: &str) -> Self::Request {
self.inner.new_request(url)
self.inner
.new_request(url)
.set_header("Authorization", &self.auth)
}
}
@@ -212,7 +219,7 @@ impl HttpClient for NoauthDefaultClient {
&self,
request: Self::Request,
body: Bytes,
) -> impl Future<Output=Result<HttpRequestResultRaw, Error>> + Send {
) -> impl Future<Output = Result<HttpRequestResultRaw, Error>> + Send {
self.inner.execute(request, body)
}

@@ -240,7 +247,7 @@ impl HttpClient for TokenUpdateClient<'_> {
&self,
request: Self::Request,
body: Bytes,
) -> impl Future<Output=Result<HttpRequestResultRaw, Error>> + Send {
) -> impl Future<Output = Result<HttpRequestResultRaw, Error>> + Send {
self.inner.execute(request, body)
}

@@ -263,7 +270,7 @@ impl Default for ReqwestClient {
.https_only(true)
.http2_prior_knowledge()
.build()
.unwrap()
.unwrap(),
}
}
}
@@ -290,7 +297,8 @@ impl HttpClient for ReqwestClient {
if !body.is_empty() {
*req.body_mut() = Some(reqwest::Body::from(body));
}
self.inner.execute(req)
self.inner
.execute(req)
.map_ok_or_else(
|e| Err(Error::HttpClient(Box::new(e))),
|resp| {
@@ -317,7 +325,8 @@ impl HttpClient for ReqwestClient {
})
.transpose()?;

let body = resp.bytes_stream()
let body = resp
.bytes_stream()
.map_err(|e| futures::io::Error::new(futures::io::ErrorKind::Other, e))
.into_async_read();

@@ -327,7 +336,7 @@ impl HttpClient for ReqwestClient {
content_length,
body: Box::new(body),
})
}
},
)
.boxed()
}
46 changes: 25 additions & 21 deletions src/default_client.rs
Original file line number Diff line number Diff line change
@@ -11,16 +11,18 @@
//!
//! This code (and its dependencies) are only built if you use the `default_client` Cargo feature.

use crate::Error;
use crate::client_trait::{
AppAuthClient, HttpClient, HttpRequest, HttpRequestResultRaw, NoauthClient, TeamAuthClient,
TeamSelect, UserAuthClient,
};
use crate::default_client_common::impl_set_path_root;
use crate::oauth2::{Authorization, TokenCache};
use crate::Error;
use futures::FutureExt;
use std::borrow::Cow;
use std::fmt::Write;
use std::str::FromStr;
use std::sync::Arc;
use futures::FutureExt;
use crate::client_trait::{AppAuthClient, HttpClient, HttpRequest, HttpRequestResultRaw,
NoauthClient, TeamAuthClient, TeamSelect, UserAuthClient};
use crate::default_client_common::impl_set_path_root;

macro_rules! impl_update_token {
($self:ident) => {
@@ -176,7 +178,8 @@ impl HttpClient for AppAuthDefaultClient {
}

fn new_request(&self, url: &str) -> Self::Request {
self.inner.new_request(url)
self.inner
.new_request(url)
.set_header("Authorization", &self.auth)
}
}
@@ -256,24 +259,21 @@ impl HttpClient for UreqClient {
};

let (status, resp) = match resp {
Ok(resp) => {
(resp.status(), resp)
}
Err(ureq::Error::Status(status, resp)) => {
(status, resp)
}
Ok(resp) => (resp.status(), resp),
Err(ureq::Error::Status(status, resp)) => (status, resp),
Err(e @ ureq::Error::Transport(_)) => {
return Err(RequestError { inner: e }.into());
}
};

let result_header = resp.header("Dropbox-API-Result").map(String::from);

let content_length = resp.header("Content-Length")
let content_length = resp
.header("Content-Length")
.map(|s| {
u64::from_str(s)
.map_err(|e| Error::UnexpectedResponse(
format!("invalid Content-Length {s:?}: {e}")))
u64::from_str(s).map_err(|e| {
Error::UnexpectedResponse(format!("invalid Content-Length {s:?}: {e}"))
})
})
.transpose()?;

@@ -335,7 +335,7 @@ macro_rules! wrap_error {
Self::HttpClient(Box::new(DefaultClientError::from(e)))
}
}
}
};
}

wrap_error!(std::io::Error);
@@ -403,13 +403,17 @@ mod test {
assert_eq!(Cow::Borrowed("foobar"), json_escape_header("foobar"));
assert_eq!(
Cow::<'_, str>::Owned("tro\\u0161kovi".to_owned()),
json_escape_header("troškovi"));
json_escape_header("troškovi")
);
assert_eq!(
Cow::<'_, str>::Owned(
r#"{"field": "some_\u00fc\u00f1\u00eec\u00f8d\u00e9_and_\u007f"}"#.to_owned()),
json_escape_header("{\"field\": \"some_üñîcødé_and_\x7f\"}"));
r#"{"field": "some_\u00fc\u00f1\u00eec\u00f8d\u00e9_and_\u007f"}"#.to_owned()
),
json_escape_header("{\"field\": \"some_üñîcødé_and_\x7f\"}")
);
assert_eq!(
Cow::<'_, str>::Owned("almost,\\u007f but not quite".to_owned()),
json_escape_header("almost,\x7f but not quite"));
json_escape_header("almost,\x7f but not quite")
);
}
}