From 2b31e8f51585cdef24b42161e93828ee43183941 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Fri, 24 Nov 2023 13:10:20 +0100 Subject: [PATCH] chore: add Borrow impl for Extra and NormalizedPackageName (#89) This allows these types to be used in HashMaps which can be queried by string. I didnt implement it for `PackageName` because the hash of `PackageName` is not equal to the hash of `String`. --- crates/rattler_installs_packages/src/extra.rs | 7 +++++++ crates/rattler_installs_packages/src/package_name.rs | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/crates/rattler_installs_packages/src/extra.rs b/crates/rattler_installs_packages/src/extra.rs index 60997c50..d097a6eb 100644 --- a/crates/rattler_installs_packages/src/extra.rs +++ b/crates/rattler_installs_packages/src/extra.rs @@ -31,6 +31,7 @@ use miette::Diagnostic; use serde::{Serialize, Serializer}; use serde_with::DeserializeFromStr; +use std::borrow::Borrow; use std::cmp::Ordering; use std::hash::{Hash, Hasher}; use std::str::FromStr; @@ -110,3 +111,9 @@ impl Serialize for Extra { self.source.as_ref().serialize(serializer) } } + +impl Borrow for Extra { + fn borrow(&self) -> &str { + self.normalized.as_ref() + } +} diff --git a/crates/rattler_installs_packages/src/package_name.rs b/crates/rattler_installs_packages/src/package_name.rs index c357e28b..dc4a468d 100644 --- a/crates/rattler_installs_packages/src/package_name.rs +++ b/crates/rattler_installs_packages/src/package_name.rs @@ -2,6 +2,7 @@ use miette::Diagnostic; use regex::Regex; use serde::{Serialize, Serializer}; use serde_with::{DeserializeFromStr, SerializeDisplay}; +use std::borrow::Borrow; use std::cmp::Ordering; use std::fmt::{Display, Formatter}; use std::hash::{Hash, Hasher}; @@ -145,6 +146,12 @@ impl FromStr for NormalizedPackageName { } } +impl Borrow for NormalizedPackageName { + fn borrow(&self) -> &str { + self.0.as_ref() + } +} + #[cfg(test)] mod test { use super::*;