#deck #card #tts #object #save-file #url #shrek

shrek-deck

用于创建TTS自定义牌组对象的crate。

1个不稳定版本

0.1.0 2024年8月14日

#211 in 音频

Download history 100/week @ 2024-08-10

100 每月下载量

MIT许可

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