Made MTTError a proper Error structure.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
2026-02-12 22:49:19 -05:00
parent 7ff9ca340f
commit a9b87200ef
12 changed files with 156 additions and 164 deletions

View File

@@ -1,4 +1,4 @@
use crate::mtterror::MTTError;
use crate::mtterror::{ErrorID, MTTError};
use isolang::Language;
use std::{collections::HashMap, fmt};
use uuid::Uuid;
@@ -94,12 +94,14 @@ impl Names {
for name in names.iter() {
let lang = name.get_language();
if languages.contains(&lang) {
return Err(MTTError::NameNotUniquePerLanguage(name.clone()));
let err = MTTError::new(NameType::None, ErrorID::NameLanguageNotUnique);
return Err(err);
} else {
languages.push(lang);
}
if self.names.contains_key(&name) {
return Err(MTTError::NameDuplicate(name.clone()));
let err = MTTError::new(NameType::None, ErrorID::NameAlreadyExists);
return Err(err);
}
}
let mut id = Uuid::new_v4();
@@ -122,7 +124,7 @@ impl Names {
match name.into() {
NameType::Name(data) => match self.names.get(&data) {
Some(id) => Ok(id.clone()),
None => Err(MTTError::NameNotFound(data.clone())),
None => Err(MTTError::new(NameType::None, ErrorID::NameNotFound)),
},
NameType::ID(data) => {
if self.ids.contains_key(&data) {
@@ -131,7 +133,7 @@ impl Names {
if data == Uuid::nil() {
Ok(data)
} else {
Err(MTTError::NameInvalidID(data))
Err(MTTError::new(NameType::None, ErrorID::NameNotFound))
}
}
}
@@ -195,8 +197,8 @@ mod names {
names.add_names(vec![name.clone()]).unwrap();
match names.add_names(vec![name.clone()]) {
Ok(data) => unreachable!("got {:?}, should have been duplicate error", data),
Err(err) => match err {
MTTError::NameDuplicate(result) => assert_eq!(result, name),
Err(err) => match err.error_id() {
ErrorID::NameAlreadyExists => {}
_ => unreachable!("got {:?}, should have been duplicate error", err),
},
}
@@ -210,8 +212,8 @@ mod names {
let mut names = Names::new();
match names.add_names(vec![name1, name2, name3.clone()]) {
Ok(data) => unreachable!("got {:?}, should have been needs to be unique", data),
Err(err) => match err {
MTTError::NameNotUniquePerLanguage(data) => assert_eq!(data, name3),
Err(err) => match err.error_id() {
ErrorID::NameLanguageNotUnique => {}
_ => unreachable!("got {:?}, should have been name needs to be unique", err),
},
}
@@ -223,8 +225,8 @@ mod names {
let names = Names::new();
match names.get_id(name.clone()) {
Ok(data) => unreachable!("got {:?}, should have been missing error", data),
Err(err) => match err {
MTTError::NameNotFound(result) => assert_eq!(result, name),
Err(err) => match err.error_id() {
ErrorID::NameNotFound => {}
_ => unreachable!("got {:?}, should have been missing error", err),
},
}
@@ -236,8 +238,8 @@ mod names {
let names = Names::new();
match names.get_id(id.clone()) {
Ok(data) => unreachable!("got {:?}, should have been missing error", data),
Err(err) => match err {
MTTError::NameInvalidID(result) => assert_eq!(result, id),
Err(err) => match err.error_id() {
ErrorID::NameNotFound => {}
_ => unreachable!("got {:?}, should have been missing error", err),
},
}