Made records produce a document name.
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:
@@ -1,5 +1,6 @@
|
||||
use crate::{
|
||||
action::Field,
|
||||
message::MessageAction,
|
||||
mtterror::{ErrorID, MTTError},
|
||||
name::{Name, NameType, Names},
|
||||
};
|
||||
@@ -142,20 +143,23 @@ impl Record {
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Records {
|
||||
doc_name: NameType,
|
||||
names: Names,
|
||||
data: InternalRecords,
|
||||
}
|
||||
|
||||
impl Records {
|
||||
pub fn new(names: Names) -> Self {
|
||||
pub fn new(doc_names: Vec<Name>, names: Names) -> Self {
|
||||
Self {
|
||||
doc_name: doc_names[0].clone().into(),
|
||||
names: names,
|
||||
data: InternalRecords::new(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn with_data(names: Names, records: InternalRecords) -> Self {
|
||||
pub fn with_data(doc_names: Vec<Name>, names: Names, records: InternalRecords) -> Self {
|
||||
Self {
|
||||
doc_name: doc_names[0].clone().into(),
|
||||
names: names,
|
||||
data: records,
|
||||
}
|
||||
@@ -178,6 +182,12 @@ impl Records {
|
||||
}
|
||||
}
|
||||
|
||||
impl MessageAction for Records {
|
||||
fn doc_name(&self) -> &NameType {
|
||||
&self.doc_name
|
||||
}
|
||||
}
|
||||
|
||||
struct RecordIter {
|
||||
names: Names,
|
||||
recs: Vec<InternalRecord>,
|
||||
@@ -202,3 +212,24 @@ impl Iterator for RecordIter {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod records {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn does_recourds_store_document_name() {
|
||||
let doc_name = Name::english(uuid::Uuid::new_v4().to_string().as_str());
|
||||
let expected: NameType = doc_name.clone().into();
|
||||
let recs = Records::new(vec![doc_name.clone()], Names::new());
|
||||
assert_eq!(recs.doc_name(), &expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn does_records_with_data_store_document_name() {
|
||||
let doc_name = Name::english(uuid::Uuid::new_v4().to_string().as_str());
|
||||
let expected: NameType = doc_name.clone().into();
|
||||
let recs = Records::with_data(vec![doc_name.clone()], Names::new(), InternalRecords::new());
|
||||
assert_eq!(recs.doc_name(), &expected);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user