Getting Jenkins working again.
Some checks failed
MoreThanText/morethantext/pipeline/head There was a failure building this commit

This commit is contained in:
2025-01-29 22:18:49 -05:00
parent 4a0ae807b8
commit a1fa8016fb
3 changed files with 286 additions and 376 deletions

View File

@@ -1,100 +0,0 @@
pub mod database;
pub mod id;
mod record;
pub mod table;
use crate::{data::database::Database, error::MTTError};
use std::{collections::HashMap, fmt, ops::Deref};
#[derive(Debug, Clone)]
pub enum GblError {
DuplicateDB(String),
}
impl fmt::Display for GblError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
GblError::DuplicateDB(data) => write!(f, "database '{}' already exists", data),
}
}
}
#[cfg(test)]
mod errors {
use super::*;
#[test]
fn duplicate_database() {
let name = "name";
let err = GblError::DuplicateDB(name.to_string());
assert_eq!(
err.to_string(),
format!("database '{}' already exists", name)
);
}
}
struct Global {
databases: HashMap<String, Database>,
}
impl Global {
fn new() -> Self {
Self {
databases: HashMap::new(),
}
}
fn add_database(&mut self, name: &str, db: Database) -> Result<(), MTTError> {
match self.databases.get(name) {
Some(_) => {
let err = GblError::DuplicateDB(name.to_string());
Err(err.into())
}
None => {
self.databases.insert(name.to_string(), db);
Ok(())
}
}
}
}
impl Deref for Global {
type Target = HashMap<String, Database>;
fn deref(&self) -> &Self::Target {
&self.databases
}
}
#[cfg(test)]
mod gblverses {
use super::*;
#[test]
fn create_gblverse() {
let gbl = Global::new();
assert_eq!(gbl.len(), 0);
}
#[test]
fn add_database() {
let mut gbl = Global::new();
let db = Database::new();
gbl.add_database("barney", db).unwrap();
assert_eq!(gbl.len(), 1);
}
#[test]
fn no_duplicate_dbs() {
let mut gbl = Global::new();
let db1 = Database::new();
let db2 = Database::new();
let name = "duplicate";
gbl.add_database("barney", db2).unwrap();
match gbl.add_database("barney", db1) {
Ok(_) => unreachable!("should have been an error"),
Err(err) => {}
}
}
}