uv/crates/puffin-client
Andrew Gallant 067acfe79e
puffin-client: rejigger error type (#1102)
This PR changes the error type to be boxed internally so that it uses
less size on the stack. This makes functions returning `Result<T,
Error>`, in particular, return something much smaller.

The specific thing that motivated this was Clippy lints firing when I
tried to refactor code in this crate.

I chose to achieve boxing by splitting the enum out into a separate
type, and then wiring up the necessary `From` impl to make error
conversions easy, and then making `Error` itself opaque. We could expose
the `Box`, but there isn't a ton of benefit in doing so because one
cannot pattern match through a `Box`.

This required using more explicit error conversions in several places.
And as a result, I was able to remove all `#[from]` attributes on
non-transparent error variants.
2024-01-25 13:13:21 -05:00
..
src puffin-client: rejigger error type (#1102) 2024-01-25 13:13:21 -05:00
tests Preserve verbatim URLs (#639) 2023-12-14 15:03:39 +00:00
Cargo.toml Make puffin-fs tokio dependency opt-in (#1100) 2024-01-25 12:47:46 -05:00
README.md Add client networking stack 2023-10-05 12:45:38 -04:00

pypi-client

A general-use client for interacting with PyPI.

Loosely modeled after Orogene's oro-client.