[pbs-devel] [PATCH proxmox 3/5] proxmox-fixed-string: implement hash trait
Stefan Hanreich
s.hanreich at proxmox.com
Thu Nov 20 15:50:11 CET 2025
Some enums in pbs-api-types implement Hash, so FixedString needs to
implement it too in order to be usable there.
While it should have been fine to use the whole struct here because
the buffer is zeroed on construction and the length is constant for
equal strings - still only use the actual bytes from the buffer that
contain the current string to avoid potential shenanigans.
Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
---
proxmox-fixed-string/src/lib.rs | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/proxmox-fixed-string/src/lib.rs b/proxmox-fixed-string/src/lib.rs
index e70e1327..aa3fca2b 100644
--- a/proxmox-fixed-string/src/lib.rs
+++ b/proxmox-fixed-string/src/lib.rs
@@ -2,6 +2,7 @@ use std::borrow::Borrow;
use std::cmp::Ordering;
use std::error::Error;
use std::fmt;
+use std::hash::{Hash, Hasher};
use std::ops::Deref;
use std::str::FromStr;
@@ -154,6 +155,12 @@ impl Borrow<str> for FixedString {
}
}
+impl Hash for FixedString {
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ self.as_bytes().hash(state);
+ }
+}
+
impl TryFrom<String> for FixedString {
type Error = TooLongError;
--
2.47.3
More information about the pbs-devel
mailing list