Solve threads
This commit is contained in:
@@ -2,77 +2,73 @@ use std::collections::HashMap;
|
|||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Lang {
|
pub enum Lang {
|
||||||
ja,
|
Ja,
|
||||||
en,
|
En,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct MessageLanguages {
|
pub struct MessageText {
|
||||||
ja: String,
|
ja: String,
|
||||||
en: String,
|
en: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct ErrorMessage {
|
pub struct Message {
|
||||||
map: HashMap<String, MessageLanguages>,
|
map: HashMap<String, MessageText>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ErrorMessage {
|
impl Message {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
let mut messages: HashMap<String, MessageLanguages> = HashMap::new();
|
let mut messages: HashMap<String, MessageText> = HashMap::new();
|
||||||
messages.insert(
|
messages.insert(
|
||||||
"undefined".to_string(),
|
"undefined".to_string(),
|
||||||
MessageLanguages {
|
MessageText {
|
||||||
ja: "未設定".to_string(),
|
ja: "未設定".to_string(),
|
||||||
en: "Undefined".to_string(),
|
en: "Undefined".to_string(),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
ErrorMessage { map: messages }
|
Message { map: messages }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// エラーメッセージを設定
|
/// メッセージを設定
|
||||||
pub fn insert_rule(&mut self, error_code: String, message: MessageLanguages) {
|
pub fn insert_message(&mut self, error_code: String, message: MessageText) {
|
||||||
self.map.insert(error_code, message);
|
self.map.insert(error_code, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// エラーメッセージを指定された言語で返す
|
/// メッセージを指定された言語で返す
|
||||||
pub fn return_error_message(&self, error_num: &str, lang: Lang) -> String {
|
pub fn return_error_message(&self, error_num: &str, lang: Lang) -> String {
|
||||||
let messages = if let Some(boxed_message) = self.map.get(error_num) {
|
let messages = self.map.get(error_num).unwrap_or(self.map.get("undefined").unwrap());
|
||||||
boxed_message
|
|
||||||
} else {
|
|
||||||
self.map.get("undefined").unwrap()
|
|
||||||
};
|
|
||||||
match lang {
|
match lang {
|
||||||
Lang::ja => messages.ja.clone(),
|
Lang::Ja => messages.ja.clone(),
|
||||||
Lang::en => messages.en.clone(),
|
Lang::En => messages.en.clone(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_create_error_message() {
|
fn test_create_error_message() {
|
||||||
let mut error_message = ErrorMessage::new();
|
let mut error_message = Message::new();
|
||||||
|
|
||||||
error_message.insert_rule(
|
error_message.insert_message(
|
||||||
"4103".to_string(),
|
"4103".to_string(),
|
||||||
MessageLanguages {
|
MessageText {
|
||||||
ja: "パイプライン実行をしています".to_string(),
|
ja: "パイプライン実行をしています".to_string(),
|
||||||
en: "Execute pipeline".to_string(),
|
en: "Execute pipeline".to_string(),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
let message_ja1 = error_message.return_error_message("4103", Lang::ja);
|
let message_ja1 = error_message.return_error_message("4103", Lang::Ja);
|
||||||
assert_eq!(message_ja1, "パイプライン実行をしています");
|
assert_eq!(message_ja1, "パイプライン実行をしています");
|
||||||
let message_ja2 = error_message.return_error_message("4103", Lang::ja);
|
let message_ja2 = error_message.return_error_message("4103", Lang::Ja);
|
||||||
assert_eq!(message_ja2, "パイプライン実行をしています");
|
assert_eq!(message_ja2, "パイプライン実行をしています");
|
||||||
|
|
||||||
let message_en1 = error_message.return_error_message("4103", Lang::en);
|
let message_en1 = error_message.return_error_message("4103", Lang::En);
|
||||||
assert_eq!(message_en1, "Execute pipeline");
|
assert_eq!(message_en1, "Execute pipeline");
|
||||||
let message_en2 = error_message.return_error_message("4103", Lang::en);
|
let message_en2 = error_message.return_error_message("4103", Lang::En);
|
||||||
assert_eq!(message_en2, "Execute pipeline");
|
assert_eq!(message_en2, "Execute pipeline");
|
||||||
|
|
||||||
let undef_ja = error_message.return_error_message("HOGE", Lang::ja);
|
let undef_ja = error_message.return_error_message("HOGE", Lang::Ja);
|
||||||
assert_eq!(undef_ja, "未設定");
|
assert_eq!(undef_ja, "未設定");
|
||||||
let undef_en = error_message.return_error_message("HOGE", Lang::en);
|
let undef_en = error_message.return_error_message("HOGE", Lang::En);
|
||||||
assert_eq!(undef_en, "Undefined");
|
assert_eq!(undef_en, "Undefined");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user