Removed session so it is part of the database.

This commit is contained in:
Jeff Baskin 2023-02-02 21:55:18 -05:00
parent ca418136a7
commit 77c0f9f189
2 changed files with 4 additions and 72 deletions

View File

@ -1,6 +1,5 @@
mod databases; mod databases;
pub mod error; pub mod error;
mod session;
use async_std::{ use async_std::{
fs::{create_dir, read, remove_file, write}, fs::{create_dir, read, remove_file, write},
@ -11,7 +10,6 @@ use async_std::{
use databases::Databases; use databases::Databases;
use error::DBError; use error::DBError;
use rand::{distributions::Alphanumeric, thread_rng, Rng}; use rand::{distributions::Alphanumeric, thread_rng, Rng};
use session::Session;
use std::{ use std::{
collections::HashMap, collections::HashMap,
fmt, slice, str, fmt, slice, str,
@ -132,7 +130,7 @@ impl fmt::Display for CacheEntry {
pub struct MoreThanText { pub struct MoreThanText {
cache: Arc<Mutex<HashMap<String, CacheEntry>>>, cache: Arc<Mutex<HashMap<String, CacheEntry>>>,
dir: String, dir: String,
session: Session, session: Vec<String>,
} }
impl MoreThanText { impl MoreThanText {
@ -151,7 +149,7 @@ impl MoreThanText {
let mut output = Self { let mut output = Self {
cache: Arc::new(Mutex::new(HashMap::new())), cache: Arc::new(Mutex::new(HashMap::new())),
dir: data_dir.to_str().unwrap().to_string(), dir: data_dir.to_str().unwrap().to_string(),
session: Session::new(), session: Vec::new(),
}; };
let entry_file = Path::new(dir).join(ENTRY); let entry_file = Path::new(dir).join(ENTRY);
let id: String; let id: String;
@ -343,7 +341,7 @@ mod init {
let id = str::from_utf8(&data).unwrap(); let id = str::from_utf8(&data).unwrap();
let cache = db.get_entry(&id).await.unwrap(); let cache = db.get_entry(&id).await.unwrap();
assert_eq!(cache.data.entry_type(), "DBMap"); assert_eq!(cache.data.entry_type(), "DBMap");
assert_eq!(db.session.get_data(), [id]); assert_eq!(db.session, [id]);
} }
#[async_std::test] #[async_std::test]
@ -355,11 +353,7 @@ mod init {
let db2 = MoreThanText::new(dir.path().to_str().unwrap()) let db2 = MoreThanText::new(dir.path().to_str().unwrap())
.await .await
.unwrap(); .unwrap();
assert_eq!( assert_eq!(db1.session, db2.session, "Did not read existing entry.");
db1.session.get_data(),
db2.session.get_data(),
"Did not read existing entry."
);
} }
} }

View File

@ -1,62 +0,0 @@
#[derive(Clone)]
pub struct Session {
data: Vec<String>,
error: Option<String>,
}
impl Session {
pub fn new() -> Self {
Self {
data: Vec::new(),
error: None,
}
}
pub fn push(&mut self, id: String) {
self.data.push(id);
}
pub fn append(&mut self, mut data: Vec<String>) {
self.data.append(&mut data);
}
pub fn get_data(&self) -> Vec<String> {
self.data.clone()
}
}
#[cfg(test)]
mod setup {
use super::*;
#[test]
fn add_item() {
let mut sess = Session::new();
let id = "frog".to_string();
sess.push(id.clone());
assert!(sess.data.contains(&id), "{} not in {:?}", id, sess.data);
}
#[test]
fn add_list() {
let mut sess = Session::new();
let mut data: Vec<String> = Vec::new();
data.push("fred".to_string());
data.push("barney".to_string());
sess.append(data.clone());
assert_eq!(sess.data, data);
}
}
#[cfg(test)]
mod data {
use super::*;
#[test]
fn show_data() {
let data = ["pne".to_string(), "two".to_string(), "three".to_string()];
let mut sess = Session::new();
sess.append(data.to_vec());
assert_eq!(sess.get_data(), data);
}
}