Skip to content
  • Yotam Ofek's avatar
    2987cbdd
    Optimize `AggregatedBytes::to_vec` (#2786) · 2987cbdd
    Yotam Ofek authored
    
    
    ## Motivation and Context
    <!--- Why is this change required? What problem does it solve? -->
    <!--- If it fixes an open issue, please link to the issue here -->
    Avoid intermediate vec allocations in `AggregatedBytes::to_vec`.
    
    ## Description
    <!--- Describe your changes in detail -->
    Calling `slice::to_vec` on every segment is wasteful, the segments can
    be just flattened into an iterator over `u8`s and collected directly.
    Also makes the code a bit simpler.
    
    ## Testing
    <!--- Please describe in detail how you tested your changes -->
    <!--- Include details of your testing environment, and the tests you ran
    to -->
    <!--- see how your change affects other areas of the code, etc. -->
    
    ## Checklist
    <!--- If a checkbox below is not applicable, then please DELETE it
    rather than leaving it unchecked -->
    - [x] I have updated `CHANGELOG.next.toml` if I made changes to the
    smithy-rs codegen or runtime crates
    - [ ] I have updated `CHANGELOG.next.toml` if I made changes to the AWS
    SDK, generated SDK code, or SDK runtime crates
    
    ----
    
    _By submitting this pull request, I confirm that you can use, modify,
    copy, and redistribute this contribution, under the terms of your
    choice._
    
    ---------
    
    Co-authored-by: default avatar82marbag <69267416+82marbag@users.noreply.github.com>
    2987cbdd
    Optimize `AggregatedBytes::to_vec` (#2786)
    Yotam Ofek authored
    
    
    ## Motivation and Context
    <!--- Why is this change required? What problem does it solve? -->
    <!--- If it fixes an open issue, please link to the issue here -->
    Avoid intermediate vec allocations in `AggregatedBytes::to_vec`.
    
    ## Description
    <!--- Describe your changes in detail -->
    Calling `slice::to_vec` on every segment is wasteful, the segments can
    be just flattened into an iterator over `u8`s and collected directly.
    Also makes the code a bit simpler.
    
    ## Testing
    <!--- Please describe in detail how you tested your changes -->
    <!--- Include details of your testing environment, and the tests you ran
    to -->
    <!--- see how your change affects other areas of the code, etc. -->
    
    ## Checklist
    <!--- If a checkbox below is not applicable, then please DELETE it
    rather than leaving it unchecked -->
    - [x] I have updated `CHANGELOG.next.toml` if I made changes to the
    smithy-rs codegen or runtime crates
    - [ ] I have updated `CHANGELOG.next.toml` if I made changes to the AWS
    SDK, generated SDK code, or SDK runtime crates
    
    ----
    
    _By submitting this pull request, I confirm that you can use, modify,
    copy, and redistribute this contribution, under the terms of your
    choice._
    
    ---------
    
    Co-authored-by: default avatar82marbag <69267416+82marbag@users.noreply.github.com>
Loading