From 48e524db6b2317c6a8db9afc51114d65b3c9b9c3 Mon Sep 17 00:00:00 2001 From: Pierre Fenoll Date: Tue, 23 May 2023 17:31:39 +0200 Subject: [PATCH] support macaddr::MacAddr6 with Pg Signed-off-by: Pierre Fenoll --- diesel/Cargo.toml | 3 ++- diesel/src/pg/types/mac_addr.rs | 8 ++++++++ diesel_tests/tests/types.rs | 12 ++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/diesel/Cargo.toml b/diesel/Cargo.toml index 61389bec0810..1010abea9b40 100644 --- a/diesel/Cargo.toml +++ b/diesel/Cargo.toml @@ -34,6 +34,7 @@ bitflags = { version = "2.0.0", optional = true } r2d2 = { version = ">= 0.8.2, < 0.9.0", optional = true } itoa = { version = "1.0.0", optional = true } time = { version = "0.3.9", optional = true, features = ["macros"] } +macaddr = { version = "1.0.1", optional = true } [dependencies.diesel_derives] version = "~2.0.0" @@ -47,7 +48,7 @@ quickcheck = "1.0.3" [features] default = ["with-deprecated", "32-column-tables"] -extras = ["chrono", "time", "serde_json", "uuid", "network-address", "numeric", "r2d2"] +extras = ["chrono", "time", "serde_json", "uuid", "network-address", "numeric", "r2d2", "macaddr"] unstable = ["diesel_derives/nightly"] large-tables = ["32-column-tables"] huge-tables = ["64-column-tables"] diff --git a/diesel/src/pg/types/mac_addr.rs b/diesel/src/pg/types/mac_addr.rs index f28a84853492..a2b7ec0e8f2b 100644 --- a/diesel/src/pg/types/mac_addr.rs +++ b/diesel/src/pg/types/mac_addr.rs @@ -47,4 +47,12 @@ fn macaddr_roundtrip() { ToSql::::to_sql(&input_address, &mut bytes).unwrap(); let output_address: [u8; 6] = FromSql::from_sql(PgValue::for_test(&buffer)).unwrap(); assert_eq!(input_address, output_address); + + #[cfg(feature = "macaddr")] + { + use macaddr::MacAddr6; + + let output_address: MacAddr6 = FromSql::from_sql(PgValue::for_test(&buffer)).unwrap(); + assert_eq!(input_address, output_address); + } } diff --git a/diesel_tests/tests/types.rs b/diesel_tests/tests/types.rs index a661b0d36d1b..cc93ea18830d 100644 --- a/diesel_tests/tests/types.rs +++ b/diesel_tests/tests/types.rs @@ -1048,6 +1048,12 @@ fn pg_macaddress_from_sql() { expected_value, query_single_value::(query) ); + + #[cfg(feature = "macaddr")] + assert_eq!( + expected_value, + query_single_value::(query) + ); } #[test] @@ -1059,6 +1065,12 @@ fn pg_macaddress_to_sql_macaddress() { expected_value, value )); + + #[cfg(feature = "macaddr")] + assert!(query_to_sql_equality::( + expected_value, + value + )); } #[test]