From 1a06794265e19c5ed8d330e034b25bda556d0823 Mon Sep 17 00:00:00 2001 From: Jeff Baskin Date: Sat, 14 Feb 2026 12:34:19 -0500 Subject: [PATCH] Added doc_name to Registry. --- src/action/message.rs | 1 + src/document/definition.rs | 6 +----- src/message.rs | 4 +++- src/queue/data_director.rs | 28 +++++++++++++++++++++++++++- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/action/message.rs b/src/action/message.rs index a4f645c..a274b00 100644 --- a/src/action/message.rs +++ b/src/action/message.rs @@ -39,6 +39,7 @@ impl MessageAction for MsgAction { Self::OnUpdate(data) => data.doc_name(), Self::Query(data) => data.doc_name(), Self::Records(data) => data.doc_name(), + Self::Register(data) => data.doc_name(), _ => &NameType::None, } } diff --git a/src/document/definition.rs b/src/document/definition.rs index 7b5a596..f5e467e 100644 --- a/src/document/definition.rs +++ b/src/document/definition.rs @@ -372,11 +372,7 @@ impl DocDef { } } -impl MessageAction for DocDef { - fn doc_name(&self) -> &NameType { - &NameType::None - } -} +impl MessageAction for DocDef {} #[cfg(test)] mod docdefs { diff --git a/src/message.rs b/src/message.rs index ed873bc..8acbac5 100644 --- a/src/message.rs +++ b/src/message.rs @@ -3,5 +3,7 @@ pub mod wrapper; use crate::name::NameType; pub trait MessageAction { - fn doc_name(&self) -> &NameType; + fn doc_name(&self) -> &NameType { + &NameType::None + } } diff --git a/src/queue/data_director.rs b/src/queue/data_director.rs index 200a7ec..c9fc257 100644 --- a/src/queue/data_director.rs +++ b/src/queue/data_director.rs @@ -1,6 +1,6 @@ use crate::{ action::{Action, MsgAction}, - message::wrapper::Message, + message::{wrapper::Message, MessageAction}, mtterror::MTTError, name::{Name, NameType, Names}, queue::router::Queue, @@ -89,6 +89,32 @@ impl Register { } } +impl MessageAction for Register {} + +#[cfg(test)] +mod registries { + use super::*; + + #[test] + fn does_registry_store_data() { + let id = Uuid::new_v4(); + let inputs = [ + RegMsg::DocumentNameID(id.clone()), + RegMsg::RemoveSender(id.clone()), + ]; + for regmsg in inputs.iter() { + let sender_id = Uuid::new_v4(); + let reg = Register::new(sender_id.clone(), regmsg.clone()); + assert_eq!(reg.doc_name(), &NameType::None); + assert_eq!(reg.get_sender_id(), &sender_id); + match reg.get_msg() { + RegMsg::DocumentNameID(data) | RegMsg::RemoveSender(data) => assert_eq!(data, &id), + _ => unreachable!("should have been one of the inputs"), + } + } + } +} + #[derive(Clone, Debug)] pub struct Path { pub msg_id: Include,