1个不稳定版本
新 0.1.0 | 2024年8月14日 |
---|
#211 in 音频
100 每月下载量
30KB
709 行
Shreck Deck
用于创建自定义TTS牌组的crate。
如何使用
首先,为您的牌创建一个类型。它必须实现GetCardInfo
特质。
enum MyCard {
Witch,
Mechanic,
JaywaltzTheLiar,
}
impl GetCardInfo for MyCard {
fn get_name(&self) -> &str {
match self {
Self::Witch => "Witch",
Self::Mechanic => "Mechanic",
Self::JaywaltzTheLiar => "Jaywaltz",
}
}
fn get_front_image(&self) -> Result<String, shrek_deck::CardError> {
/* get the url from the card's name */
}
fn get_back_image(&self) -> Result<String, shrek_deck::CardError> {
/* get the url from the card's name */
}
fn get_card_shape(&self) -> Result<CardShape, shrek_deck::CardError> {
Ok(CardShape::RoundedRectangle)
}
fn parse(string: &str) -> Result<Self, shrek_deck::parser::ParseError> {
/* how to turn a string into a card. you usually want this to turn the name of the card into the card data structure */
}
}
该crate提供了一个文件解析器。
let cards = parse_file::<BloodlessCard>("some/input/path.txt").unwrap();
然后,您可以使用该文件创建一个保存文件,使用serde序列化,并保存到您想要的位置。
let save = SaveState::new_with_deck(cards).unwrap;
let contents = serde_json::to_string_pretty(&save).unwrap();
std::fs::write("some/relative/path.json", contents).unwrap();
或直接保存到TTS对象目录。这需要您提供一个图标作为其图标。
write_to_tts_dir("some/relative/path.json", contents, include_bytes!("blood.png")).unwrap();
依赖项
~0.6–11MB
~70K SLoC