Commit 09ee5611 authored by Chunchi Che's avatar Chunchi Che

Revert "Merge branch 'optimize/service/strings' into 'main'"

This reverts merge request !7
parent c9739a80
Pipeline #18818 passed with stages
in 5 minutes and 38 seconds
use diesel_derives::Queryable;
#[derive(serde::Serialize, serde::Deserialize, Queryable, Clone, Debug, Default, PartialEq, Eq)]
#[derive(serde::Serialize, Queryable, Clone, Debug, Default, PartialEq, Eq)]
#[diesel(table_name = datas)]
pub struct CardDatas {
pub id: i64,
......@@ -17,7 +17,7 @@ pub struct CardDatas {
}
// TODO: 这里字段应该命名得更清晰一点
#[derive(serde::Serialize, serde::Deserialize, Queryable, Clone, Debug, Default, PartialEq, Eq)]
#[derive(serde::Serialize, Queryable, Clone, Debug, Default, PartialEq, Eq)]
#[diesel(table_name = texts)]
pub struct CardTexts {
pub id: i64,
......@@ -40,27 +40,3 @@ pub struct CardTexts {
pub str15: Option<String>,
pub str16: Option<String>,
}
impl CardTexts {
pub fn get_str_by_offset(&self, offset: usize) -> Option<String> {
match offset {
1 => self.str1.to_owned(),
2 => self.str2.to_owned(),
3 => self.str3.to_owned(),
4 => self.str4.to_owned(),
5 => self.str5.to_owned(),
6 => self.str6.to_owned(),
7 => self.str7.to_owned(),
8 => self.str8.to_owned(),
9 => self.str9.to_owned(),
10 => self.str10.to_owned(),
11 => self.str11.to_owned(),
12 => self.str12.to_owned(),
13 => self.str13.to_owned(),
14 => self.str14.to_owned(),
15 => self.str15.to_owned(),
16 => self.str16.to_owned(),
_ => None,
}
}
}
......@@ -36,7 +36,7 @@ pub fn service(param: String) -> String {
}
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug)]
#[derive(serde::Serialize, Default, Debug)]
pub struct CardMeta {
pub id: i64,
pub data: db::CardDatas,
......
//! TODO: 这里应该做依赖注入来实现服务之间调用
mod cards;
mod deck;
mod strings;
pub use cards::{service as cards_service, CardMeta};
pub use cards::service as cards_service;
pub use deck::service as deck_service;
pub use strings::{service_maker as strings_service, strings_conf_reader};
use super::{cards_service, CardMeta};
use std::{
collections::HashMap,
fs::File,
......@@ -15,23 +14,10 @@ pub fn service_maker(strings_manager: StringsManager) -> impl Fn(String) -> Stri
let (r#type, code) = param.split_once('_').unwrap_or_default();
let code = code.parse::<i64>().unwrap_or_default();
if r#type == "!card" {
let card_code = (code >> 4) & 0x0fffffff;
let offset = code & 0xf;
let card =
serde_json::from_str::<CardMeta>(cards_service(card_code.to_string()).as_str())
.unwrap_or_default();
card.text
.get_str_by_offset(offset as usize)
.unwrap_or_default()
} else {
strings_manager
.get(r#type)
.map_or(Some("".to_string()), |hash| hash.get(&code).cloned())
.unwrap_or_default()
}
strings_manager
.get(r#type)
.map_or(Some("".to_string()), |hash| hash.get(&code).cloned())
.unwrap_or_default()
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment