Made MTTError a proper Error structure.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
This commit is contained in:
28
src/name.rs
28
src/name.rs
@@ -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),
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user