Started MessageAction trait.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
Jeff Baskin 2026-02-12 10:18:53 -05:00
parent ed2a303d1c
commit 564602b766
6 changed files with 42 additions and 14 deletions

View File

@ -1,5 +1,5 @@
use super::{CalcValue, Field, RequestData}; use super::{CalcValue, Field, RequestData};
use crate::name::NameType; use crate::{message::MessageAction, name::NameType};
use uuid::Uuid; use uuid::Uuid;
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
@ -19,10 +19,6 @@ impl Addition {
} }
} }
pub fn doc_name(&self) -> NameType {
self.doc_name.clone()
}
pub fn add_field<NT, CV>(&mut self, name: NT, field: CV) pub fn add_field<NT, CV>(&mut self, name: NT, field: CV)
where where
CV: Into<CalcValue>, CV: Into<CalcValue>,
@ -36,6 +32,12 @@ impl Addition {
} }
} }
impl MessageAction for Addition {
fn doc_name(&self) -> NameType {
self.doc_name.clone()
}
}
#[cfg(test)] #[cfg(test)]
mod additions { mod additions {
use super::*; use super::*;

View File

@ -1,6 +1,9 @@
use super::{Addition, DocDef, Query, UserAction}; use super::{Addition, DocDef, Query, UserAction};
use crate::{ use crate::{
message::wrapper::{Delete, Records, Reply, Update}, message::{
wrapper::{Delete, Records, Reply, Update},
MessageAction,
},
mtterror::MTTError, mtterror::MTTError,
name::NameType, name::NameType,
queue::data_director::Register, queue::data_director::Register,
@ -24,11 +27,12 @@ pub enum MsgAction {
Update(Update), Update(Update),
} }
impl MsgAction { impl MessageAction for MsgAction {
fn doc_name(&self) -> NameType { fn doc_name(&self) -> NameType {
match self { match self {
Self::Addition(data) => NameType::None, Self::Addition(data) => data.doc_name(),
Self::Query(data) => data.doc_name(), Self::Query(data) => data.doc_name(),
Self::Create(data) => data.doc_name(),
_ => NameType::None, _ => NameType::None,
} }
} }

View File

@ -1,5 +1,5 @@
use super::Calculation; use super::Calculation;
use crate::name::NameType; use crate::{message::MessageAction, name::NameType};
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
@ -23,10 +23,6 @@ impl Query {
Self::new(NameType::None) Self::new(NameType::None)
} }
pub fn doc_name(&self) -> NameType {
self.doc_name.clone()
}
pub fn add<NT>(&mut self, name: NT, operation: Calculation) pub fn add<NT>(&mut self, name: NT, operation: Calculation)
where where
NT: Into<NameType>, NT: Into<NameType>,
@ -55,6 +51,12 @@ impl Query {
} }
} }
impl MessageAction for Query {
fn doc_name(&self) -> NameType {
self.doc_name.clone()
}
}
#[cfg(test)] #[cfg(test)]
mod queries { mod queries {
use super::*; use super::*;

View File

@ -1,6 +1,7 @@
use crate::{ use crate::{
action::{Action, CalcValue, Field, FieldType, MsgAction}, action::{Action, CalcValue, Field, FieldType, MsgAction},
document::create::IndexType, document::create::IndexType,
message::MessageAction,
mtterror::MTTError, mtterror::MTTError,
name::{Name, NameType, Names}, name::{Name, NameType, Names},
queue::data_director::{Include, Path}, queue::data_director::{Include, Path},
@ -373,11 +374,24 @@ impl DocDef {
} }
} }
impl MessageAction for DocDef {
fn doc_name(&self) -> NameType {
NameType::None
}
}
#[cfg(test)] #[cfg(test)]
mod docdefs { mod docdefs {
use super::*; use super::*;
use crate::{action::Query, message::wrapper::Update}; use crate::{action::Query, message::wrapper::Update};
#[test]
fn message_doc_name_returns_none() {
let docname = Name::english("tester");
let mut docdef = DocDef::new(docname);
assert_eq!(docdef.doc_name(), NameType::None);
}
#[test] #[test]
fn can_field_be_added() { fn can_field_be_added() {
let docname = Name::english("tester"); let docname = Name::english("tester");

View File

@ -10,7 +10,7 @@ use action::{
UserAction, UserAction,
}; };
use document::{clock::Clock, create::CreateDoc, session::Session}; use document::{clock::Clock, create::CreateDoc, session::Session};
use message::wrapper::Message; use message::{wrapper::Message, MessageAction};
use queue::{ use queue::{
data_director::{Include, Path, RegMsg, Register}, data_director::{Include, Path, RegMsg, Register},
router::Queue, router::Queue,

View File

@ -1 +1,7 @@
pub mod wrapper; pub mod wrapper;
use crate::name::NameType;
pub trait MessageAction {
fn doc_name(&self) -> NameType;
}