#![deny(clippy::undocumented_unsafe_blocks)]
#![cfg_attr(docsrs, feature(async_fn_in_trait))]
mod build_info;
pub mod checksums;
mod endpoint_config;
#[doc(hidden)]
pub mod failure_client;
pub mod imds_crt_client;
pub mod instance_info;
pub mod metrics;
#[doc(hidden)]
pub mod mock_client;
mod object_client;
mod s3_crt_client;
#[doc(hidden)]
pub mod user_agent;
pub mod error_metadata;
pub use object_client::{ObjectClient, PutObjectRequest};
pub use s3_crt_client::{
NewClientError, OnTelemetry, S3CrtClient, S3RequestError, get_object::S3GetObjectResponse,
put_object::S3PutObjectRequest,
};
pub mod config {
pub use super::endpoint_config::{AddressingStyle, EndpointConfig, SigningAlgorithm, Uri};
pub use super::s3_crt_client::{
CredentialsProvider, CredentialsProviderStaticOptions, EventLoopGroup, S3ClientAuthConfig, S3ClientConfig,
};
pub use mountpoint_s3_crt::common::allocator::Allocator;
pub use mountpoint_s3_crt::common::rust_log_adapter::{AWSCRT_LOG_TARGET, RustLogAdapter};
#[doc(hidden)]
pub use mountpoint_s3_crt::io::io_library_init;
#[doc(hidden)]
pub use mountpoint_s3_crt::s3::s3_library_init;
pub use mountpoint_s3_crt::s3::client::MetaRequestType;
pub use mountpoint_s3_crt::s3::pool::{MemoryPool, MemoryPoolFactory, MemoryPoolFactoryOptions};
}
pub mod types {
pub use super::object_client::{
Checksum, ChecksumAlgorithm, ChecksumMode, ClientBackpressureHandle, CopyObjectParams, CopyObjectResult,
DeleteObjectResult, ETag, GetBodyPart, GetObjectAttributesParts, GetObjectAttributesResult, GetObjectParams,
GetObjectResponse, HeadObjectParams, HeadObjectResult, ListObjectsResult, ObjectAttribute, ObjectClientResult,
ObjectInfo, ObjectPart, PutObjectParams, PutObjectResult, PutObjectSingleParams, PutObjectTrailingChecksums,
RenameObjectParams, RenameObjectResult, RenamePreconditionTypes, RestoreStatus, UploadChecksum, UploadReview,
UploadReviewPart,
};
}
pub mod error {
pub use super::object_client::{
CopyObjectError, DeleteObjectError, GetObjectAttributesError, GetObjectError, HeadObjectError,
ListObjectsError, ObjectClientError, PutObjectError, RenameObjectError,
};
#[doc(hidden)]
pub use super::s3_crt_client::CrtError;
#[doc(hidden)]
pub use super::s3_crt_client::HeadBucketError;
}
#[cfg(test)]
mod tests {
use crate::s3_crt_client::S3CrtClient;
#[test]
fn smoke() {
let _client = S3CrtClient::new(Default::default()).unwrap();
}
}