Moved Records into the document module.
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
a9b87200ef
commit
404c6e9c34
@ -6,10 +6,7 @@ mod query;
|
|||||||
mod request_data;
|
mod request_data;
|
||||||
mod user;
|
mod user;
|
||||||
|
|
||||||
pub use crate::document::{
|
pub use crate::document::{DocDef, Field, FieldType, Records};
|
||||||
definition::DocDef,
|
|
||||||
field::{Field, FieldType},
|
|
||||||
};
|
|
||||||
pub use action_type::Action;
|
pub use action_type::Action;
|
||||||
pub use addition::Addition;
|
pub use addition::Addition;
|
||||||
pub use calculation::{CalcValue, Calculation, Operand};
|
pub use calculation::{CalcValue, Calculation, Operand};
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
use super::{Addition, DocDef, Query, UserAction};
|
use super::{Addition, DocDef, Query, Records, UserAction};
|
||||||
use crate::{
|
use crate::{
|
||||||
message::{
|
message::{
|
||||||
wrapper::{Delete, Records, Reply, Update},
|
wrapper::{Delete, Reply, Update},
|
||||||
MessageAction,
|
MessageAction,
|
||||||
},
|
},
|
||||||
mtterror::MTTError,
|
mtterror::MTTError,
|
||||||
@ -33,6 +33,7 @@ impl MessageAction for MsgAction {
|
|||||||
Self::Addition(data) => data.doc_name(),
|
Self::Addition(data) => data.doc_name(),
|
||||||
Self::Query(data) => data.doc_name(),
|
Self::Query(data) => data.doc_name(),
|
||||||
Self::Create(data) => data.doc_name(),
|
Self::Create(data) => data.doc_name(),
|
||||||
|
Self::Error(data) => data.doc_name(),
|
||||||
_ => &NameType::None,
|
_ => &NameType::None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
use super::Query;
|
use super::{DocDef, FieldType, Query};
|
||||||
use crate::document::{definition::DocDef, field::FieldType};
|
|
||||||
|
|
||||||
pub enum UserAction {
|
pub enum UserAction {
|
||||||
CreateDocument(DocDef),
|
CreateDocument(DocDef),
|
||||||
|
|||||||
@ -1,5 +1,13 @@
|
|||||||
pub mod clock;
|
mod clock;
|
||||||
pub mod create;
|
mod create;
|
||||||
pub mod definition;
|
mod definition;
|
||||||
pub mod field;
|
mod field;
|
||||||
pub mod session;
|
mod record;
|
||||||
|
mod session;
|
||||||
|
|
||||||
|
pub use clock::Clock;
|
||||||
|
pub use create::CreateDoc;
|
||||||
|
pub use definition::DocDef;
|
||||||
|
pub use field::{Field, FieldType};
|
||||||
|
pub use record::Records;
|
||||||
|
pub use session::Session;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
action::{Action, MsgAction},
|
action::{Action, MsgAction, Records},
|
||||||
message::wrapper::{Message, Records},
|
message::wrapper::Message,
|
||||||
name::{Name, NameType, Names},
|
name::{Name, NameType, Names},
|
||||||
queue::{
|
queue::{
|
||||||
data_director::{Include, Path, RegMsg, Register},
|
data_director::{Include, Path, RegMsg, Register},
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
action::{Action, CalcValue, Calculation, MsgAction, Query},
|
action::{Action, CalcValue, Calculation, MsgAction, Query, Records},
|
||||||
document::{
|
document::{
|
||||||
definition::{DocDef, DocFuncType},
|
definition::{DocDef, DocFuncType},
|
||||||
field::Field,
|
field::Field,
|
||||||
},
|
},
|
||||||
message::wrapper::{InternalRecord, InternalRecords, Message, Oid, Records, Reply, Update},
|
message::wrapper::{InternalRecord, InternalRecords, Message, Oid, Reply, Update},
|
||||||
mtterror::{ErrorID, MTTError},
|
mtterror::{ErrorID, MTTError},
|
||||||
name::NameType,
|
name::NameType,
|
||||||
queue::{
|
queue::{
|
||||||
|
|||||||
67
src/document/record.rs
Normal file
67
src/document/record.rs
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
use crate::{
|
||||||
|
message::wrapper::{InternalRecord, InternalRecords, Oid, Record},
|
||||||
|
name::{Name, Names},
|
||||||
|
};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug)]
|
||||||
|
pub struct Records {
|
||||||
|
names: Names,
|
||||||
|
data: InternalRecords,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Records {
|
||||||
|
pub fn new(names: Names) -> Self {
|
||||||
|
Self {
|
||||||
|
names: names,
|
||||||
|
data: InternalRecords::new(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn with_data(names: Names, records: InternalRecords) -> Self {
|
||||||
|
Self {
|
||||||
|
names: names,
|
||||||
|
data: records,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn insert(&mut self, oid: Oid, record: InternalRecord) -> Option<InternalRecord> {
|
||||||
|
self.data.insert(oid, record)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn len(&self) -> usize {
|
||||||
|
self.data.len()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn iter(&self) -> impl Iterator<Item = Record> {
|
||||||
|
RecordIter::new(self)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_internal_records(&self) -> &InternalRecords {
|
||||||
|
&self.data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct RecordIter {
|
||||||
|
names: Names,
|
||||||
|
recs: Vec<InternalRecord>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl RecordIter {
|
||||||
|
fn new(records: &Records) -> Self {
|
||||||
|
Self {
|
||||||
|
names: records.names.clone(),
|
||||||
|
recs: records.data.values().cloned().collect(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Iterator for RecordIter {
|
||||||
|
type Item = Record;
|
||||||
|
|
||||||
|
fn next(&mut self) -> Option<Self::Item> {
|
||||||
|
match self.recs.pop() {
|
||||||
|
Some(rec) => Some(Record::with_data(self.names.clone(), rec.clone())),
|
||||||
|
None => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -85,13 +85,12 @@ impl Session {
|
|||||||
mod sessions {
|
mod sessions {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
action::{Addition, MsgAction, Query},
|
action::{Addition, MsgAction, Query, Records},
|
||||||
document::{
|
document::{
|
||||||
clock::{clock_test_support::gen_clock_message, Clock},
|
clock::{clock_test_support::gen_clock_message, Clock},
|
||||||
create::CreateDoc,
|
create::CreateDoc,
|
||||||
field::Field,
|
field::Field,
|
||||||
},
|
},
|
||||||
message::wrapper::Records,
|
|
||||||
mtterror::{ErrorID, MTTError},
|
mtterror::{ErrorID, MTTError},
|
||||||
name::{Name, NameType, Names},
|
name::{Name, NameType, Names},
|
||||||
queue::data_director::{Include, Path, RegMsg, Register},
|
queue::data_director::{Include, Path, RegMsg, Register},
|
||||||
|
|||||||
@ -9,7 +9,7 @@ use action::{
|
|||||||
Action, Addition, CalcValue, Calculation, DocDef, Field, FieldType, MsgAction, Operand, Query,
|
Action, Addition, CalcValue, Calculation, DocDef, Field, FieldType, MsgAction, Operand, Query,
|
||||||
UserAction,
|
UserAction,
|
||||||
};
|
};
|
||||||
use document::{clock::Clock, create::CreateDoc, session::Session};
|
use document::{Clock, CreateDoc, Session};
|
||||||
use message::{wrapper::Message, MessageAction};
|
use message::{wrapper::Message, MessageAction};
|
||||||
use queue::{
|
use queue::{
|
||||||
data_director::{Include, Path, RegMsg, Register},
|
data_director::{Include, Path, RegMsg, Register},
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
action::{CalcValue, MsgAction, Operand, Query},
|
action::{CalcValue, Field, FieldType, MsgAction, Operand, Query},
|
||||||
document::field::{Field, FieldType},
|
|
||||||
mtterror::{ErrorID, MTTError},
|
mtterror::{ErrorID, MTTError},
|
||||||
name::{NameType, Names},
|
name::{NameType, Names},
|
||||||
queue::data_director::{Include, Path, Route},
|
queue::data_director::{Include, Path, Route},
|
||||||
@ -88,7 +87,7 @@ impl Message {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod messages {
|
mod messages {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{document::definition::DocDef, name::Name};
|
use crate::{action::DocDef, name::Name};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_the_document_be_a_named_reference() {
|
fn can_the_document_be_a_named_reference() {
|
||||||
@ -429,7 +428,7 @@ impl InternalRecords {
|
|||||||
self.data.keys()
|
self.data.keys()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn values(&self) -> impl Iterator<Item = &InternalRecord> {
|
pub fn values(&self) -> impl Iterator<Item = &InternalRecord> {
|
||||||
self.data.values()
|
self.data.values()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -437,7 +436,7 @@ impl InternalRecords {
|
|||||||
self.data.contains_key(oid)
|
self.data.contains_key(oid)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn len(&self) -> usize {
|
pub fn len(&self) -> usize {
|
||||||
self.data.len()
|
self.data.len()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -449,7 +448,7 @@ pub struct Record {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Record {
|
impl Record {
|
||||||
fn with_data(names: Names, rec: InternalRecord) -> Self {
|
pub fn with_data(names: Names, rec: InternalRecord) -> Self {
|
||||||
Self {
|
Self {
|
||||||
names: names,
|
names: names,
|
||||||
data: rec,
|
data: rec,
|
||||||
@ -471,6 +470,7 @@ impl Record {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct Records {
|
pub struct Records {
|
||||||
names: Names,
|
names: Names,
|
||||||
@ -533,6 +533,7 @@ impl Iterator for RecordIter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct Document {
|
pub struct Document {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
document::field::{Field, FieldType},
|
action::{Field, FieldType},
|
||||||
message::MessageAction,
|
message::MessageAction,
|
||||||
name::{Name, NameType},
|
name::{Name, NameType},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -121,7 +121,7 @@ impl Path {
|
|||||||
mod paths {
|
mod paths {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
message::wrapper::Records,
|
action::Records,
|
||||||
name::{Name, Names},
|
name::{Name, Names},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user