Adding data retrival.
All checks were successful
MoreThanText/morethantext/pipeline/head This commit looks good

This commit is contained in:
2025-02-09 15:48:13 -05:00
parent 731cd01613
commit aed94d7eac
3 changed files with 197 additions and 29 deletions

View File

@@ -4,7 +4,12 @@ pub mod id;
mod record;
pub mod table;
use std::collections::BTreeMap;
use std::{
collections::BTreeMap,
sync::mpsc::{Receiver, Sender, channel},
thread::spawn,
};
use super::Message;
use uuid::Uuid;
#[derive(PartialEq, Eq, Hash, PartialOrd, Ord, Clone, Debug)]
@@ -33,7 +38,7 @@ impl IDPath {
}
#[cfg(test)]
mod ids {
mod idpaths {
use super::*;
#[test]
@@ -70,47 +75,42 @@ mod ids {
}
}
struct Cache {
data: BTreeMap<String, IDPath>,
struct Data {
router_tx: Sender<Message>,
data_rx: Receiver<Message>,
}
impl Cache {
fn new() -> Self {
impl Data {
fn new(router_tx: Sender<Message>, data_rx: Receiver<Message>) -> Self {
Self {
data: BTreeMap::new(),
router_tx: router_tx,
data_rx: data_rx,
}
}
fn add_database<S>(&mut self, name: S)
where
S: Into<String>,
{
self.data.insert(name.into(), IDPath::new());
pub fn start(router_tx: Sender<Message>) -> Sender<Message> {
let (data_tx, data_rx) = channel();
spawn(move || {
let mut req = Data::new(router_tx, data_rx);
req.listen();
});
data_tx
}
fn get_databases(&self) -> Vec<String> {
self.data.keys().cloned().collect()
fn listen(&mut self) {
loop {
let msg = self.data_rx.recv().unwrap();
}
}
}
#[cfg(test)]
mod caches {
mod requests {
use super::*;
#[test]
fn create_cache() {
let cache = Cache::new();
let dbs = cache.get_databases();
assert!(dbs.is_empty());
}
#[test]
fn add_databases() {
let mut cache = Cache::new();
cache.add_database("zed");
cache.add_database("alpha".to_string());
cache.add_database("beta");
cache.add_database("gamma".to_string());
assert_eq!(cache.get_databases(), ["alpha", "beta", "gamma", "zed"]);
fn add_database() {
let (tx, rx) = channel();
let data_tx = Data::start(tx);
}
}