uv
13ae5ac8 - Replace PyPI-internal Hashes representation with flat vector (#2925)

Comment changes are shownComment changes are hidden
Commit
1 year ago
Replace PyPI-internal Hashes representation with flat vector (#2925) ## Summary Right now, we have a `Hashes` representation that looks like: ```rust /// A dictionary mapping a hash name to a hex encoded digest of the file. /// /// PEP 691 says multiple hashes can be included and the interpretation is left to the client. #[derive(Debug, Clone, Eq, PartialEq, Default, Deserialize)] pub struct Hashes { pub md5: Option<Box<str>>, pub sha256: Option<Box<str>>, pub sha384: Option<Box<str>>, pub sha512: Option<Box<str>>, } ``` It stems from the PyPI API, which returns a dictionary of hashes. We tend to pass these around as a vector of `Vec<Hashes>`. But it's a bit strange because each entry in that vector could contain multiple hashes. And it makes it difficult to ask questions like "Is `sha256:ab21378ca980a8` in the set of hashes"? This PR instead treats `Hashes` as the PyPI-internal type, and uses a new `Vec<HashDigest>` everywhere in our own APIs.
Author
Parents
  • crates
    • distribution-types/src
      • File
        file.rs
      • File
        lib.rs
      • File
        prioritized_distribution.rs
    • pypi-types/src
      • File
        simple_json.rs
    • uv-cache/src
      • File
        lib.rs
    • uv-client/src
      • File
        flat_index.rs
      • File
        registry_client.rs
    • uv-resolver/src
      • File
        preferences.rs
      • File
        resolution.rs
      • File
        version_map.rs