桃太郎伝説 (FC) パスワードライブラリ

パスワードとゲーム状態の相互変換を行う。

Example

```rust, no_run //! パスワード「ふ」をロードする。

use momoden_password::*;

fn main() { let password = Password::parse("ふ").unwrap(); let bytes = SerializedBytes::from_password(&password);

if let Some(savedata) = bytes.to_savedata() {
    // 生のセーブデータ(装備インデックスが不正なまま)を出力する。
    println!("raw: {savedata:?}");
    // 実際にロードされるセーブデータ(装備が変化した後)を出力する。
    let savedata_norm = savedata.normalize();
    println!("normalized: {savedata_norm:?}");
} else {
    // チェックサムが一致しない場合、to_savedata() は失敗する。
    println!("checksum mismatch");
}

} ```

```rust, no_run //! パスワード「ふ」をロードした直後の状態をパスワード化する。

use momoden_password::*;

fn main() { // パスワード「ふ」をロードし、実際にロードされるセーブデータを得る。 let password = Password::parse("ふ").unwrap(); let bytes = SerializedBytes::frompassword(&password); let savedata = bytes.tosavedata().unwrap(); let savedata = savedata.normalize();

// このセーブデータに対応するパスワードを得る。
// (パスワード「ふ」で始めてすぐ神主に話しかけたときのパスワードと一致するはず)
let bytes = SerializedBytes::from_savedata(&savedata);
let password = bytes.to_password();

println!("{}", password.display_pretty());

} ```

License

GPLv3