1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use eui48_04::MacAddress; use postgres_protocol::types; use std::error::Error; use crate::types::{FromSql, IsNull, ToSql, Type}; impl<'a> FromSql<'a> for MacAddress { fn from_sql(_: &Type, raw: &[u8]) -> Result<MacAddress, Box<dyn Error + Sync + Send>> { let bytes = types::macaddr_from_sql(raw)?; Ok(MacAddress::new(bytes)) } accepts!(MACADDR); } impl ToSql for MacAddress { fn to_sql(&self, _: &Type, w: &mut Vec<u8>) -> Result<IsNull, Box<dyn Error + Sync + Send>> { let mut bytes = [0; 6]; bytes.copy_from_slice(self.as_bytes()); types::macaddr_to_sql(bytes, w); Ok(IsNull::No) } accepts!(MACADDR); to_sql_checked!(); }