2026-02-27 12:22:57 -05:00
|
|
|
use morethantext::{DocDef, FieldType, Name};
|
2026-02-25 10:16:50 -05:00
|
|
|
use uuid::Uuid;
|
|
|
|
|
|
|
|
|
|
pub fn random_name() -> Name {
|
|
|
|
|
Name::english(Uuid::new_v4().to_string().as_str())
|
|
|
|
|
}
|
2026-02-27 12:22:57 -05:00
|
|
|
|
|
|
|
|
pub struct TestDocument {
|
|
|
|
|
doc_name: Name,
|
|
|
|
|
field_names: Vec<Name>,
|
|
|
|
|
field_types: Vec<FieldType>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl TestDocument {
|
|
|
|
|
pub fn new(fields: Vec<FieldType>) -> Self {
|
|
|
|
|
let mut fnames = Vec::new();
|
|
|
|
|
for i in 0..fields.len() {
|
|
|
|
|
let name = Name::english(format!("field{}", i).as_str());
|
|
|
|
|
fnames.push(name);
|
|
|
|
|
}
|
|
|
|
|
Self {
|
|
|
|
|
doc_name: random_name(),
|
|
|
|
|
field_names: fnames,
|
|
|
|
|
field_types: fields,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn get_doc_name(&self) -> &Name {
|
|
|
|
|
&self.doc_name
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn get_docdef(&self) -> DocDef {
|
|
|
|
|
let mut output = DocDef::new(self.doc_name.clone());
|
|
|
|
|
for i in 0..self.field_types.len() {
|
|
|
|
|
output.add_field(self.field_names[i].clone(), self.field_types[i].clone());
|
|
|
|
|
}
|
|
|
|
|
output
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn get_field_name(&self, position: usize) -> Name {
|
|
|
|
|
self.field_names[position].clone()
|
|
|
|
|
}
|
|
|
|
|
}
|