Skip to content

Commit

Permalink
Re-export ByteStream's Length and FsBuilder in client crates (#…
Browse files Browse the repository at this point in the history
…3796)

## Motivation and Context
awslabs/aws-sdk-rust#820

## Description
This PR re-exports `ByteStream`'s `Length` and `FsBuilder`. By making
these types available in a client crate, customers can use
`ByteStream::read_from` without needing to import them separately from
the `aws-smithy-types` crate.

## Testing
- Updated an existing re-export test to include `Length` and `FsBuilder`
as well.
- Existing tests in CI

## Checklist
<!--- If a checkbox below is not applicable, then please DELETE it
rather than leaving it unchecked -->
- [x] For changes to the smithy-rs codegen or runtime crates, I have
created a changelog entry Markdown file in the `.changelog` directory,
specifying "client," "server," or both in the `applies_to` key.
- [x] For changes to the AWS SDK, generated SDK code, or SDK runtime
crates, I have created a changelog entry Markdown file in the
`.changelog` directory, specifying "aws-sdk-rust" in the `applies_to`
key.

----

_By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice._
  • Loading branch information
ysaito1001 authored Aug 20, 2024
1 parent 5a19a6c commit 8ccd2da
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 1 deletion.
13 changes: 13 additions & 0 deletions .changelog/1724096455.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
applies_to:
- client
- aws-sdk-rust
authors:
- ysaito1001
references:
- aws-sdk-rust#820
breaking: false
new_feature: false
bug_fix: true
---
Re-export `ByteStream`'s `Length` and `FsBuilder`. By making these types available directly within a client crate, customers can use `ByteStream::read_from` without needing to import them separately from the `aws-smithy-types` crate.
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,17 @@ fun pubUseSmithyPrimitives(
pub use #{ByteStream};
pub use #{AggregatedBytes};
pub use #{Error} as ByteStreamError;
##[cfg(feature = "rt-tokio")]
pub use #{FsBuilder};
##[cfg(feature = "rt-tokio")]
pub use #{Length};
pub use #{SdkBody};
""",
"ByteStream" to RuntimeType.smithyTypes(rc).resolve("byte_stream::ByteStream"),
"AggregatedBytes" to RuntimeType.smithyTypes(rc).resolve("byte_stream::AggregatedBytes"),
"Error" to RuntimeType.smithyTypes(rc).resolve("byte_stream::error::Error"),
"FsBuilder" to RuntimeType.smithyTypes(rc).resolve("byte_stream::FsBuilder"),
"Length" to RuntimeType.smithyTypes(rc).resolve("byte_stream::Length"),
"SdkBody" to RuntimeType.smithyTypes(rc).resolve("body::SdkBody"),
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,12 @@ class SmithyTypesPubUseExtraTest {
@Test
fun `it re-exports ByteStream and AggregatedBytes when a model has streaming`() {
val streamingTypes =
listOf("::aws_smithy_types::byte_stream::ByteStream", "::aws_smithy_types::byte_stream::AggregatedBytes")
listOf(
"::aws_smithy_types::byte_stream::ByteStream",
"::aws_smithy_types::byte_stream::AggregatedBytes",
"::aws_smithy_types::byte_stream::FsBuilder",
"::aws_smithy_types::byte_stream::Length",
)
val streamingShape = "@streaming blob Streaming"

this.assertDoesntHaveReexports(reexportsWithEmptyModel(), streamingTypes)
Expand Down

0 comments on commit 8ccd2da

Please sign in to comment.