Moved reply into action.
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
1a06794265
commit
1f82c07565
@ -3,6 +3,7 @@ mod addition;
|
|||||||
mod calculation;
|
mod calculation;
|
||||||
mod message;
|
mod message;
|
||||||
mod query;
|
mod query;
|
||||||
|
mod reply;
|
||||||
mod request_data;
|
mod request_data;
|
||||||
mod user;
|
mod user;
|
||||||
|
|
||||||
@ -12,5 +13,6 @@ pub use addition::Addition;
|
|||||||
pub use calculation::{CalcValue, Calculation, Operand};
|
pub use calculation::{CalcValue, Calculation, Operand};
|
||||||
pub use message::MsgAction;
|
pub use message::MsgAction;
|
||||||
pub use query::Query;
|
pub use query::Query;
|
||||||
|
pub use reply::Reply;
|
||||||
use request_data::RequestData;
|
use request_data::RequestData;
|
||||||
pub use user::UserAction;
|
pub use user::UserAction;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
use super::{Addition, DocDef, Query, Records, UserAction};
|
use super::{Addition, DocDef, Query, Records, Reply, UserAction};
|
||||||
use crate::{
|
use crate::{
|
||||||
message::{
|
message::{
|
||||||
wrapper::{Delete, Reply, Update},
|
wrapper::{Delete, Update},
|
||||||
MessageAction,
|
MessageAction,
|
||||||
},
|
},
|
||||||
mtterror::MTTError,
|
mtterror::MTTError,
|
||||||
|
|||||||
79
src/action/reply.rs
Normal file
79
src/action/reply.rs
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
use super::{CalcValue, RequestData};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug)]
|
||||||
|
pub struct Reply {
|
||||||
|
data: Vec<RequestData>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Reply {
|
||||||
|
pub fn new() -> Self {
|
||||||
|
Self { data: Vec::new() }
|
||||||
|
}
|
||||||
|
|
||||||
|
fn add(&mut self, doc: RequestData) {
|
||||||
|
self.data.push(doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn len(&self) -> usize {
|
||||||
|
self.data.len()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn iter(&self) -> impl Iterator<Item = &RequestData> {
|
||||||
|
self.data.iter()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod replies {
|
||||||
|
use super::*;
|
||||||
|
use crate::{action::Field, name::Name};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn is_new_empty() {
|
||||||
|
let reply = Reply::new();
|
||||||
|
assert_eq!(reply.len(), 0, "should have no records");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_add_documents() {
|
||||||
|
let mut reply = Reply::new();
|
||||||
|
let doc = RequestData::new();
|
||||||
|
reply.add(doc.clone());
|
||||||
|
assert_eq!(reply.len(), 1);
|
||||||
|
reply.add(doc.clone());
|
||||||
|
assert_eq!(reply.len(), 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_retrieve_documents() {
|
||||||
|
let fieldname = Name::english("field");
|
||||||
|
let mut doc1 = RequestData::new();
|
||||||
|
doc1.add_field(fieldname.clone(), "one");
|
||||||
|
let mut doc2 = RequestData::new();
|
||||||
|
doc2.add_field(fieldname.clone(), "two");
|
||||||
|
let mut reply = Reply::new();
|
||||||
|
reply.add(doc1);
|
||||||
|
reply.add(doc2);
|
||||||
|
let mut reply_iter = reply.iter();
|
||||||
|
let result1 = reply_iter.next().unwrap();
|
||||||
|
match result1.get_field(&fieldname) {
|
||||||
|
CalcValue::Value(data) => match data {
|
||||||
|
Field::StaticString(output) => assert_eq!(output, "one"),
|
||||||
|
_ => unreachable!("got {:?}: should have been static string", result1),
|
||||||
|
},
|
||||||
|
_ => unreachable!("got {:?}, should have been value", result1),
|
||||||
|
}
|
||||||
|
let result2 = reply_iter.next().unwrap();
|
||||||
|
match result2.get_field(&fieldname) {
|
||||||
|
CalcValue::Value(data) => match data {
|
||||||
|
Field::StaticString(output) => assert_eq!(output, "two"),
|
||||||
|
_ => unreachable!("got {:?}: should have been static string", result2),
|
||||||
|
},
|
||||||
|
_ => unreachable!("got {:?}, should have been value", result2),
|
||||||
|
}
|
||||||
|
match reply_iter.next() {
|
||||||
|
None => {}
|
||||||
|
Some(_) => unreachable!("should be out of data"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -24,7 +24,7 @@ impl RequestData {
|
|||||||
self.data.insert(name.into(), field.into());
|
self.data.insert(name.into(), field.into());
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_field<NT>(&self, name: NT) -> &CalcValue
|
pub fn get_field<NT>(&self, name: NT) -> &CalcValue
|
||||||
where
|
where
|
||||||
NT: Into<NameType>,
|
NT: Into<NameType>,
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
use super::{InternalRecord, InternalRecords, Oid};
|
use super::{InternalRecord, InternalRecords, Oid};
|
||||||
use crate::{
|
use crate::{
|
||||||
action::{Action, CalcValue, Calculation, MsgAction, Query, Records},
|
action::{Action, CalcValue, Calculation, MsgAction, Query, Records, Reply},
|
||||||
document::{
|
document::{
|
||||||
definition::{DocDef, DocFuncType},
|
definition::{DocDef, DocFuncType},
|
||||||
field::Field,
|
field::Field,
|
||||||
},
|
},
|
||||||
message::wrapper::{Message, Reply, Update},
|
message::wrapper::{Message, Update},
|
||||||
mtterror::{ErrorID, MTTError},
|
mtterror::{ErrorID, MTTError},
|
||||||
name::NameType,
|
name::NameType,
|
||||||
queue::{
|
queue::{
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
action::{CalcValue, Field, FieldType, MsgAction, Operand, Query},
|
action::{CalcValue, Field, FieldType, MsgAction, Operand, Query, Reply},
|
||||||
mtterror::{ErrorID, MTTError},
|
mtterror::{ErrorID, MTTError},
|
||||||
name::{NameType, Names},
|
name::{NameType, Names},
|
||||||
queue::data_director::{Include, Path, Route},
|
queue::data_director::{Include, Path, Route},
|
||||||
@ -266,6 +266,7 @@ impl Operation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct Reply {
|
pub struct Reply {
|
||||||
@ -345,6 +346,7 @@ mod replies {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct Document {
|
pub struct Document {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user