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 reply;
|
||||
mod request_data;
|
||||
mod show;
|
||||
mod user;
|
||||
|
||||
pub use crate::document::{DocDef, Field, FieldType, Records};
|
||||
@ -15,4 +16,5 @@ pub use message::MsgAction;
|
||||
pub use query::Query;
|
||||
pub use reply::Reply;
|
||||
use request_data::RequestData;
|
||||
pub use show::Show;
|
||||
pub use user::UserAction;
|
||||
|
||||
@ -33,7 +33,7 @@ impl From<MsgAction> for Action {
|
||||
MsgAction::Records(_) => Action::Records,
|
||||
MsgAction::Register(_) => Action::Register,
|
||||
MsgAction::Reply(_) => Action::Reply,
|
||||
MsgAction::Show => Action::Show,
|
||||
MsgAction::Show(_) => Action::Show,
|
||||
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::{
|
||||
message::{
|
||||
wrapper::{Delete, Update},
|
||||
@ -22,7 +22,7 @@ pub enum MsgAction {
|
||||
Records(Records),
|
||||
Register(Register),
|
||||
Reply(Reply),
|
||||
Show,
|
||||
Show(Show),
|
||||
Delete(Delete),
|
||||
Update(Update),
|
||||
}
|
||||
@ -41,6 +41,7 @@ impl MessageAction for MsgAction {
|
||||
Self::Records(data) => data.doc_name(),
|
||||
Self::Register(data) => data.doc_name(),
|
||||
Self::Reply(data) => data.doc_name(),
|
||||
Self::Show(data) => data.doc_name(),
|
||||
_ => &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 {
|
||||
use super::*;
|
||||
use crate::{
|
||||
action::{Addition, FieldType, Operand},
|
||||
action::{Addition, FieldType, Operand, Show},
|
||||
document::Clock,
|
||||
message::wrapper::Delete,
|
||||
name::{Name, Names},
|
||||
@ -1005,7 +1005,7 @@ mod document_files {
|
||||
MsgAction::Addition(Addition::new(name.clone())),
|
||||
MsgAction::Delete(Delete::new(Query::internal())),
|
||||
MsgAction::Query(Query::new(name.clone())),
|
||||
MsgAction::Show,
|
||||
MsgAction::Show(Show::new(name.clone())),
|
||||
MsgAction::Update(Update::new(Query::internal())),
|
||||
];
|
||||
for msg_action in msg_actions.iter() {
|
||||
@ -1057,7 +1057,7 @@ mod document_files {
|
||||
MsgAction::Create(DocDef::new(name.clone())),
|
||||
MsgAction::Delete(Delete::new(Query::new(alt.clone()))),
|
||||
MsgAction::Query(Query::internal().into()),
|
||||
MsgAction::Show,
|
||||
MsgAction::Show(Show::new(name.clone())),
|
||||
MsgAction::Update(Update::new(Query::internal())),
|
||||
];
|
||||
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)]
|
||||
pub struct Names {
|
||||
names: HashMap<Name, Uuid>,
|
||||
|
||||
@ -147,14 +147,17 @@ impl Path {
|
||||
mod paths {
|
||||
use super::*;
|
||||
use crate::{
|
||||
action::Records,
|
||||
action::{Records, Show},
|
||||
name::{Name, Names},
|
||||
};
|
||||
|
||||
#[test]
|
||||
fn can_create_for_message() {
|
||||
let input = [
|
||||
(Name::english("one"), MsgAction::Show),
|
||||
(
|
||||
Name::english("one"),
|
||||
MsgAction::Show(Show::new(Name::english("one"))),
|
||||
),
|
||||
(
|
||||
Name::english("two"),
|
||||
MsgAction::Records(Records::new(vec![Name::english("two")], Names::new())),
|
||||
@ -178,7 +181,8 @@ mod paths {
|
||||
let count = 10;
|
||||
let mut ids: Vec<Uuid> = Vec::new();
|
||||
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 {
|
||||
Include::Just(data) => data.clone(),
|
||||
Include::All => unreachable!("should have been a message id"),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user