Added show module which will eventually show DocDef.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
This commit is contained in:
parent
903158b72a
commit
e2bb5bb93f
@ -5,6 +5,7 @@ mod message;
|
|||||||
mod query;
|
mod query;
|
||||||
mod reply;
|
mod reply;
|
||||||
mod request_data;
|
mod request_data;
|
||||||
|
mod show;
|
||||||
mod user;
|
mod user;
|
||||||
|
|
||||||
pub use crate::document::{DocDef, Field, FieldType, Records};
|
pub use crate::document::{DocDef, Field, FieldType, Records};
|
||||||
@ -15,4 +16,5 @@ pub use message::MsgAction;
|
|||||||
pub use query::Query;
|
pub use query::Query;
|
||||||
pub use reply::Reply;
|
pub use reply::Reply;
|
||||||
use request_data::RequestData;
|
use request_data::RequestData;
|
||||||
|
pub use show::Show;
|
||||||
pub use user::UserAction;
|
pub use user::UserAction;
|
||||||
|
|||||||
@ -33,7 +33,7 @@ impl From<MsgAction> for Action {
|
|||||||
MsgAction::Records(_) => Action::Records,
|
MsgAction::Records(_) => Action::Records,
|
||||||
MsgAction::Register(_) => Action::Register,
|
MsgAction::Register(_) => Action::Register,
|
||||||
MsgAction::Reply(_) => Action::Reply,
|
MsgAction::Reply(_) => Action::Reply,
|
||||||
MsgAction::Show => Action::Show,
|
MsgAction::Show(_) => Action::Show,
|
||||||
MsgAction::Update(_) => Action::Update,
|
MsgAction::Update(_) => Action::Update,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
use super::{Addition, DocDef, Query, Records, Reply, UserAction};
|
use super::{Addition, DocDef, Query, Records, Reply, Show, UserAction};
|
||||||
use crate::{
|
use crate::{
|
||||||
message::{
|
message::{
|
||||||
wrapper::{Delete, Update},
|
wrapper::{Delete, Update},
|
||||||
@ -22,7 +22,7 @@ pub enum MsgAction {
|
|||||||
Records(Records),
|
Records(Records),
|
||||||
Register(Register),
|
Register(Register),
|
||||||
Reply(Reply),
|
Reply(Reply),
|
||||||
Show,
|
Show(Show),
|
||||||
Delete(Delete),
|
Delete(Delete),
|
||||||
Update(Update),
|
Update(Update),
|
||||||
}
|
}
|
||||||
@ -41,6 +41,7 @@ impl MessageAction for MsgAction {
|
|||||||
Self::Records(data) => data.doc_name(),
|
Self::Records(data) => data.doc_name(),
|
||||||
Self::Register(data) => data.doc_name(),
|
Self::Register(data) => data.doc_name(),
|
||||||
Self::Reply(data) => data.doc_name(),
|
Self::Reply(data) => data.doc_name(),
|
||||||
|
Self::Show(data) => data.doc_name(),
|
||||||
_ => &NameType::None,
|
_ => &NameType::None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
37
src/action/show.rs
Normal file
37
src/action/show.rs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
use crate::{message::MessageAction, name::NameType};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug)]
|
||||||
|
pub struct Show {
|
||||||
|
doc_name: NameType,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Show {
|
||||||
|
pub fn new<NT>(name: NT) -> Self
|
||||||
|
where
|
||||||
|
NT: Into<NameType>,
|
||||||
|
{
|
||||||
|
Self {
|
||||||
|
doc_name: name.into(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl MessageAction for Show {
|
||||||
|
fn doc_name(&self) -> &NameType {
|
||||||
|
&self.doc_name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod shows {
|
||||||
|
use super::*;
|
||||||
|
use crate::name::test_support::random_name;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_request_a_show() {
|
||||||
|
let name = random_name();
|
||||||
|
let expected: NameType = name.clone().into();
|
||||||
|
let show = Show::new(name);
|
||||||
|
assert_eq!(show.doc_name(), &expected);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -845,7 +845,7 @@ impl DocumentFile {
|
|||||||
mod document_files {
|
mod document_files {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
action::{Addition, FieldType, Operand},
|
action::{Addition, FieldType, Operand, Show},
|
||||||
document::Clock,
|
document::Clock,
|
||||||
message::wrapper::Delete,
|
message::wrapper::Delete,
|
||||||
name::{Name, Names},
|
name::{Name, Names},
|
||||||
@ -1005,7 +1005,7 @@ mod document_files {
|
|||||||
MsgAction::Addition(Addition::new(name.clone())),
|
MsgAction::Addition(Addition::new(name.clone())),
|
||||||
MsgAction::Delete(Delete::new(Query::internal())),
|
MsgAction::Delete(Delete::new(Query::internal())),
|
||||||
MsgAction::Query(Query::new(name.clone())),
|
MsgAction::Query(Query::new(name.clone())),
|
||||||
MsgAction::Show,
|
MsgAction::Show(Show::new(name.clone())),
|
||||||
MsgAction::Update(Update::new(Query::internal())),
|
MsgAction::Update(Update::new(Query::internal())),
|
||||||
];
|
];
|
||||||
for msg_action in msg_actions.iter() {
|
for msg_action in msg_actions.iter() {
|
||||||
@ -1057,7 +1057,7 @@ mod document_files {
|
|||||||
MsgAction::Create(DocDef::new(name.clone())),
|
MsgAction::Create(DocDef::new(name.clone())),
|
||||||
MsgAction::Delete(Delete::new(Query::new(alt.clone()))),
|
MsgAction::Delete(Delete::new(Query::new(alt.clone()))),
|
||||||
MsgAction::Query(Query::internal().into()),
|
MsgAction::Query(Query::internal().into()),
|
||||||
MsgAction::Show,
|
MsgAction::Show(Show::new(name.clone())),
|
||||||
MsgAction::Update(Update::new(Query::internal())),
|
MsgAction::Update(Update::new(Query::internal())),
|
||||||
];
|
];
|
||||||
let mut msgs: HashMap<Uuid, MsgAction> = HashMap::new();
|
let mut msgs: HashMap<Uuid, MsgAction> = HashMap::new();
|
||||||
|
|||||||
@ -75,6 +75,15 @@ impl fmt::Display for Name {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
pub mod test_support {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
pub fn random_name() -> Name {
|
||||||
|
Name::english(Uuid::new_v4().to_string().as_str())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
pub struct Names {
|
pub struct Names {
|
||||||
names: HashMap<Name, Uuid>,
|
names: HashMap<Name, Uuid>,
|
||||||
|
|||||||
@ -147,14 +147,17 @@ impl Path {
|
|||||||
mod paths {
|
mod paths {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
action::Records,
|
action::{Records, Show},
|
||||||
name::{Name, Names},
|
name::{Name, Names},
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_create_for_message() {
|
fn can_create_for_message() {
|
||||||
let input = [
|
let input = [
|
||||||
(Name::english("one"), MsgAction::Show),
|
(
|
||||||
|
Name::english("one"),
|
||||||
|
MsgAction::Show(Show::new(Name::english("one"))),
|
||||||
|
),
|
||||||
(
|
(
|
||||||
Name::english("two"),
|
Name::english("two"),
|
||||||
MsgAction::Records(Records::new(vec![Name::english("two")], Names::new())),
|
MsgAction::Records(Records::new(vec![Name::english("two")], Names::new())),
|
||||||
@ -178,7 +181,8 @@ mod paths {
|
|||||||
let count = 10;
|
let count = 10;
|
||||||
let mut ids: Vec<Uuid> = Vec::new();
|
let mut ids: Vec<Uuid> = Vec::new();
|
||||||
for _ in 0..count {
|
for _ in 0..count {
|
||||||
let path = Path::for_message(NameType::None, &MsgAction::Show);
|
let path =
|
||||||
|
Path::for_message(NameType::None, &MsgAction::Show(Show::new(NameType::None)));
|
||||||
let id = match path.msg_id {
|
let id = match path.msg_id {
|
||||||
Include::Just(data) => data.clone(),
|
Include::Just(data) => data.clone(),
|
||||||
Include::All => unreachable!("should have been a message id"),
|
Include::All => unreachable!("should have been a message id"),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user