Expand description
§chara_card

chara_card provides thick (not yet…) abstraction layer on
character card formats and .charx in Rust.
Its primary goal is to help programs to run the same format everywhere with same behaviour.
§Features
(De)serialization/Validation:
- Full Standard Compliance
-
Content parsing
- Decorator parser
- Curly Braced Syntaxes (CBS) parser
-
Non-standard field compatibility
- RisuAI (testing…)
Evaluation:
-
Content evaluation
- Decorator evaluator
- CBS evaluator
-
Non-standard extension compatibility
- RisuAI
Packaging:
-
Extracting from
.charx -
Packaging to
.charx
§Usage
Add chara_card to your dependencies in Cargo.toml.
Parse card.json:
use chara_card::raw::CharacterCard;
fn parse_card_json(card_json: &str) {
// Parse character card from JSON string
let parsed: CharacterCard = serde_json::from_str(card_json).unwrap();
println!("{:#?}", parsed);
}Extract from .charx:
Warning
Currently,
charxmodule is unstable and API may be changed in future.
use chara_card::charx::{CharXImport, CharX};
use std::io::Cursor;
fn parse_charx(bytes: &[u8]) {
// Extract from archived bytes (.charx)
let reader = Cursor::new(bytes);
let import = CharXImport::from_reader(reader).unwrap();
let _charx = CharX::try_from(import).unwrap();
}§License
Licensed under Apache License, Version 2.0.