Skip to content

Commit

Permalink
Reorganize code
Browse files Browse the repository at this point in the history
  • Loading branch information
durch committed Sep 25, 2022
1 parent 8992587 commit 4a39b95
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 30 deletions.
14 changes: 7 additions & 7 deletions s3/src/bucket.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,29 @@ use crate::bucket_ops::{BucketConfiguration, CreateBucketResponse};
use crate::command::{Command, Multipart};
use crate::creds::Credentials;
use crate::region::Region;
use crate::request_trait::ResponseData;
use crate::request::ResponseData;
#[cfg(any(feature = "with-tokio", feature = "with-async-std"))]
use crate::request_trait::ResponseDataStream;
use crate::request::ResponseDataStream;
use std::str::FromStr;

pub type Query = HashMap<String, String>;

#[cfg(feature = "with-tokio")]
use crate::request::Reqwest as RequestImpl;
#[cfg(feature = "with-async-std")]
use crate::surf_request::SurfRequest as RequestImpl;
use crate::request::async_std_backend::SurfRequest as RequestImpl;
#[cfg(feature = "with-tokio")]
use crate::request::tokio_backend::Reqwest as RequestImpl;

#[cfg(feature = "with-async-std")]
use futures_io::AsyncWrite;
#[cfg(feature = "with-tokio")]
use tokio::io::AsyncWrite;

#[cfg(feature = "sync")]
use crate::blocking::AttoRequest as RequestImpl;
use crate::request::blocking::AttoRequest as RequestImpl;
use std::io::Read;

use crate::error::S3Error;
use crate::request_trait::Request;
use crate::request::Request;
use crate::serde_types::{
BucketLocationResult, CompleteMultipartUploadData, HeadObjectResult,
InitiateMultipartUploadResponse, ListBucketResult, ListMultipartUploadsResult, Part,
Expand Down
8 changes: 1 addition & 7 deletions s3/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,15 @@ pub use bucket::Tag;
pub use bucket_ops::BucketConfiguration;
pub use region::Region;

#[cfg(feature = "sync")]
pub mod blocking;
pub mod bucket;
pub mod bucket_ops;
pub mod command;
pub mod deserializer;
#[cfg(feature = "with-tokio")]
pub mod request;
pub mod serde_types;
pub mod signing;
#[cfg(feature = "with-async-std")]
pub mod surf_request;

pub mod error;
pub mod request_trait;
pub mod request;
pub mod utils;

const LONG_DATETIME: &[time::format_description::FormatItem<'static>] =
Expand Down
10 changes: 5 additions & 5 deletions s3/src/surf_request.rs → s3/src/request/async_std_backend.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ use futures_io::AsyncWrite;
use futures_util::FutureExt;
use std::collections::HashMap;

use super::bucket::Bucket;
use super::command::Command;
use crate::bucket::Bucket;
use crate::command::Command;
use crate::error::S3Error;
use time::OffsetDateTime;

use crate::command::HttpMethod;
use crate::request_trait::{Request, ResponseData, ResponseDataStream};
use crate::request::{Request, ResponseData, ResponseDataStream};

use http::HeaderMap;
use maybe_async::maybe_async;
Expand Down Expand Up @@ -184,8 +184,8 @@ impl<'a> SurfRequest<'a> {
mod tests {
use crate::bucket::Bucket;
use crate::command::Command;
use crate::request_trait::Request;
use crate::surf_request::SurfRequest;
use crate::request::async_std_backend::SurfRequest;
use crate::request::Request;
use anyhow::Result;
use awscreds::Credentials;

Expand Down
16 changes: 9 additions & 7 deletions s3/src/blocking.rs → s3/src/request/blocking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ use std::io::Write;

use attohttpc::header::HeaderName;

use super::bucket::Bucket;
use super::command::Command;
use crate::bucket::Bucket;
use crate::command::Command;
use crate::error::S3Error;
use bytes::Bytes;
use std::collections::HashMap;
use time::OffsetDateTime;

use crate::command::HttpMethod;
use crate::request_trait::{Request, ResponseData};
use crate::request::{Request, ResponseData};

// Temporary structure for making a request
pub struct AttoRequest<'a> {
Expand Down Expand Up @@ -142,10 +142,10 @@ impl<'a> AttoRequest<'a> {

#[cfg(test)]
mod tests {
use crate::blocking::AttoRequest;
use crate::bucket::Bucket;
use crate::command::Command;
use crate::request_trait::Request;
use crate::request::blocking::AttoRequest;
use crate::request::Request;
use anyhow::Result;
use awscreds::Credentials;

Expand Down Expand Up @@ -176,7 +176,8 @@ mod tests {
#[test]
fn url_uses_https_by_default_path_style() -> Result<()> {
let region = "custom-region".parse()?;
let bucket = Bucket::new_with_path_style("my-first-bucket", region, fake_credentials())?;
let mut bucket = Bucket::new("my-first-bucket", region, fake_credentials())?;
bucket.with_path_style();
let path = "/my-first/path";
let request = AttoRequest::new(&bucket, path, Command::GetObject);

Expand Down Expand Up @@ -207,7 +208,8 @@ mod tests {
#[test]
fn url_uses_scheme_from_custom_region_if_defined_with_path_style() -> Result<()> {
let region = "http://custom-region".parse()?;
let bucket = Bucket::new_with_path_style("my-second-bucket", region, fake_credentials())?;
let mut bucket = Bucket::new("my-second-bucket", region, fake_credentials())?;
bucket.with_path_style();
let path = "/my-second/path";
let request = AttoRequest::new(&bucket, path, Command::GetObject);

Expand Down
9 changes: 9 additions & 0 deletions s3/src/request/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#[cfg(feature = "with-async-std")]
pub mod async_std_backend;
#[cfg(feature = "sync")]
pub mod blocking;
pub mod request_trait;
#[cfg(feature = "with-tokio")]
pub mod tokio_backend;

pub use request_trait::*;
File renamed without changes.
6 changes: 3 additions & 3 deletions s3/src/request.rs → s3/src/request/tokio_backend.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ use reqwest::{Client, Response};
use std::collections::HashMap;
use time::OffsetDateTime;

use super::request_trait::{Request, ResponseData, ResponseDataStream};
use crate::bucket::Bucket;
use crate::command::Command;
use crate::command::HttpMethod;
use crate::error::S3Error;
use crate::request_trait::{Request, ResponseData, ResponseDataStream};

use tokio_stream::StreamExt;

Expand Down Expand Up @@ -181,8 +181,8 @@ impl<'a> Reqwest<'a> {
mod tests {
use crate::bucket::Bucket;
use crate::command::Command;
use crate::request::Reqwest;
use crate::request_trait::Request;
use crate::request::tokio_backend::Reqwest;
use crate::request::Request;
use awscreds::Credentials;
use http::header::{HOST, RANGE};

Expand Down
2 changes: 1 addition & 1 deletion s3/src/utils.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::str::FromStr;

use crate::error::S3Error;
use crate::request_trait::ResponseData;
use crate::request::ResponseData;
use crate::{bucket::CHUNK_SIZE, serde_types::HeadObjectResult};

use std::fs::File;
Expand Down

0 comments on commit 4a39b95

Please sign in to comment.