From de9f2f626f339e6b5fea2fb5338548493f8f881d Mon Sep 17 00:00:00 2001 From: Hlars Date: Sun, 10 Jul 2022 15:30:21 +0200 Subject: [PATCH] implemented Hash for all types --- src/sps_datatypes.rs | 4 ++-- src/types/boolean.rs | 2 +- src/types/date_time.rs | 2 +- src/types/dint.rs | 2 +- src/types/int.rs | 2 +- src/types/real.rs | 2 +- src/types/string.rs | 2 +- src/types/time.rs | 2 +- src/types/udint.rs | 2 +- src/types/uint.rs | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/sps_datatypes.rs b/src/sps_datatypes.rs index a9ea3f1..cf62919 100644 --- a/src/sps_datatypes.rs +++ b/src/sps_datatypes.rs @@ -20,7 +20,7 @@ pub struct DataInfo { pub bit: Option, } -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub enum SPSDataTypes { Boolean(BooleanType), Int(IntType), @@ -133,7 +133,7 @@ pub struct SQLDataType { pub mysql_type: String, } -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct BitPosition { pub byte: u32, pub bit: Option, diff --git a/src/types/boolean.rs b/src/types/boolean.rs index 55396d4..e1ddba6 100644 --- a/src/types/boolean.rs +++ b/src/types/boolean.rs @@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct BooleanType { position: BitPosition, } diff --git a/src/types/date_time.rs b/src/types/date_time.rs index 82740e5..11efdde 100644 --- a/src/types/date_time.rs +++ b/src/types/date_time.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct DateTimeType { length: u32, position: BitPosition, diff --git a/src/types/dint.rs b/src/types/dint.rs index f16be07..436331a 100644 --- a/src/types/dint.rs +++ b/src/types/dint.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct DIntType { length: u32, position: BitPosition, diff --git a/src/types/int.rs b/src/types/int.rs index ed2e3d3..5624c3c 100644 --- a/src/types/int.rs +++ b/src/types/int.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct IntType { length: u32, position: BitPosition, diff --git a/src/types/real.rs b/src/types/real.rs index 275ea10..2fe04ac 100644 --- a/src/types/real.rs +++ b/src/types/real.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct RealType { length: u32, position: BitPosition, diff --git a/src/types/string.rs b/src/types/string.rs index 3cda59a..01a28ad 100644 --- a/src/types/string.rs +++ b/src/types/string.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct StringType { length: u32, position: BitPosition, diff --git a/src/types/time.rs b/src/types/time.rs index 2289417..1750b92 100644 --- a/src/types/time.rs +++ b/src/types/time.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct TimeType { length: u32, position: BitPosition, diff --git a/src/types/udint.rs b/src/types/udint.rs index c944450..6482278 100644 --- a/src/types/udint.rs +++ b/src/types/udint.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct UDIntType { length: u32, position: BitPosition, diff --git a/src/types/uint.rs b/src/types/uint.rs index 60529bb..e2efe39 100644 --- a/src/types/uint.rs +++ b/src/types/uint.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use super::super::errors::*; use super::super::sps_datatypes::{BitPosition, DataEvaluation, UnparsedSPSDataType}; -#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, Hash)] pub struct UIntType { length: u32, position: BitPosition,