From 288205e302d9f6afa06b8602184e983d2080a5b6 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Tue, 17 Oct 2023 21:17:55 -0400 Subject: CLI tool for updating Route53 DNS for an ASG. --- src/hashable.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/hashable.rs (limited to 'src/hashable.rs') diff --git a/src/hashable.rs b/src/hashable.rs new file mode 100644 index 0000000..22bcdd3 --- /dev/null +++ b/src/hashable.rs @@ -0,0 +1,37 @@ +use std::fmt::Debug; +use std::hash::{Hash, Hasher}; + +use aws_sdk_route53::types::ResourceRecordSet; + +pub trait SimpleHash { + fn hash(&self, state: &mut H); +} + +#[derive(Debug, PartialEq, Clone)] +pub struct Hashable(T); + +impl AsRef for Hashable { + fn as_ref(&self) -> &T { + &self.0 + } +} + +impl Eq for Hashable where Hashable: PartialEq {} + +impl Hash for Hashable { + fn hash(&self, state: &mut H) { + self.0.hash(state) + } +} + +impl From for Hashable { + fn from(value: T) -> Self { + Self(value) + } +} + +impl SimpleHash for ResourceRecordSet { + fn hash(&self, state: &mut H) { + self.name().hash(state) + } +} -- cgit v1.2.3