From 314bca18a43e22368a87fcad53d91190fe101b60 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 7 Feb 2025 16:10:29 +0100 Subject: nodes modified since endpoint --- common/src/impl.rs | 15 +++++++++++++++ common/src/lib.rs | 4 +--- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'common/src') diff --git a/common/src/impl.rs b/common/src/impl.rs index db702d3..1aeac22 100644 --- a/common/src/impl.rs +++ b/common/src/impl.rs @@ -8,6 +8,7 @@ use crate::{ TraktKind, }; use hex::FromHexError; +use serde::{Deserialize, Serialize}; use std::{fmt::Display, str::FromStr}; impl SourceTrackKind { @@ -242,3 +243,17 @@ impl From for NodeIDOrSlug { Self::Slug(value) } } +impl Serialize for NodeID { + fn serialize(&self, serializer: S) -> Result { + serializer.serialize_str(&hex::encode(self.0)) + } +} +impl<'de> Deserialize<'de> for NodeID { + fn deserialize>(deserializer: D) -> Result { + let mut k = [0; 32]; + hex::decode_to_slice(String::deserialize(deserializer)?, &mut k).map_err(|_| { + ::custom(format_args!("nodeid hex invalid")) + })?; + Ok(NodeID(k)) + } +} diff --git a/common/src/lib.rs b/common/src/lib.rs index 43adfba..3f9cfc3 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -22,9 +22,7 @@ use std::{ path::PathBuf, }; -#[derive( - Clone, Copy, Debug, Serialize, Deserialize, Encode, Decode, PartialEq, Eq, PartialOrd, Ord, -)] +#[derive(Clone, Copy, Debug, Encode, Decode, PartialEq, Eq, PartialOrd, Ord)] pub struct NodeID(pub [u8; 32]); pub enum NodeIDOrSlug { -- cgit v1.2.3-70-g09d2