From fd9754d224a99e9b4cb3402d2da954f4df063cfd Mon Sep 17 00:00:00 2001 From: Jeff Baskin Date: Fri, 26 Dec 2025 13:48:02 -0500 Subject: [PATCH] Moved include into router. --- src/lib.rs | 6 ++++-- src/message.rs | 40 ++++------------------------------------ src/name.rs | 3 ++- src/router.rs | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 39 deletions(-) create mode 100644 src/router.rs diff --git a/src/lib.rs b/src/lib.rs index 12c4fac..883680f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,14 +1,16 @@ mod message; mod mtterror; mod name; +mod router; use message::{ - Action, Addition, CalcValue, Calculation, Clock, CreateDoc, Field, FieldType, Include, Message, - Operand, Path, Queue, RegMsg, Register, Session, + Action, Addition, CalcValue, Calculation, Clock, CreateDoc, Field, FieldType, Message, Operand, + Path, Queue, RegMsg, Register, Session, }; pub use message::{MsgAction, Query}; use mtterror::MTTError; use name::{Name, NameType}; +use router::Include; use std::sync::mpsc::{channel, Receiver}; use uuid::Uuid; diff --git a/src/message.rs b/src/message.rs index 88ac6fc..e3ef4c9 100644 --- a/src/message.rs +++ b/src/message.rs @@ -1,5 +1,8 @@ use super::MTTError; -use crate::name::{Name, NameType, Names}; +use crate::{ + name::{Name, NameType, Names}, + router::Include, +}; use chrono::prelude::*; use std::{ collections::{HashMap, HashSet}, @@ -448,41 +451,6 @@ mod messages { } } -#[derive(Clone, Debug, Eq, Hash)] -pub enum Include { - All, - Just(T), -} - -impl PartialEq for Include { - fn eq(&self, other: &Self) -> bool { - match self { - Include::All => true, - Include::Just(data) => match other { - Include::All => true, - Include::Just(other_data) => data == other_data, - }, - } - } -} - -#[cfg(test)] -mod includes { - use super::*; - - #[test] - fn does_all_equal_evberything() { - let a: Include = Include::All; - let b: Include = Include::Just(5); - let c: Include = Include::Just(7); - assert!(a == a, "all should equal all"); - assert!(a == b, "all should equal some"); - assert!(b == a, "some should equal all"); - assert!(b == b, "same some should equal"); - assert!(b != c, "different somes do not equal"); - } -} - #[derive(Clone, Debug, Eq, Hash, PartialEq)] pub struct RouteID { action: Option, diff --git a/src/name.rs b/src/name.rs index 501b1d4..4234c68 100644 --- a/src/name.rs +++ b/src/name.rs @@ -1,6 +1,7 @@ use crate::{ - message::{Include, Path, Route}, + message::{Path, Route}, mtterror::MTTError, + router::Include, }; use isolang::Language; use std::collections::HashMap; diff --git a/src/router.rs b/src/router.rs new file mode 100644 index 0000000..d8a4658 --- /dev/null +++ b/src/router.rs @@ -0,0 +1,34 @@ +#[derive(Clone, Debug, Eq, Hash)] +pub enum Include { + All, + Just(T), +} + +impl PartialEq for Include { + fn eq(&self, other: &Self) -> bool { + match self { + Include::All => true, + Include::Just(data) => match other { + Include::All => true, + Include::Just(other_data) => data == other_data, + }, + } + } +} + +#[cfg(test)] +mod includes { + use super::*; + + #[test] + fn does_all_equal_evberything() { + let a: Include = Include::All; + let b: Include = Include::Just(5); + let c: Include = Include::Just(7); + assert!(a == a, "all should equal all"); + assert!(a == b, "all should equal some"); + assert!(b == a, "some should equal all"); + assert!(b == b, "same some should equal"); + assert!(b != c, "different somes do not equal"); + } +}