# Legends of Runeterra - Deck Encoder/Decoder
Legends of Runeterra deck encoder/decoder in Rust. Port of [LorDeckCodes](https://github.com/RiotGames/LoRDeckCodes).
[](https://github.com/iulianR/lordeckcodes-rs/actions)
[![Crates.io][crates-badge]][crates-url]
[![MIT licensed][mit-badge]][mit-url]
[crates-badge]: https://img.shields.io/crates/v/lordeckcodes.svg
[crates-url]: https://crates.io/crates/lordeckcodes
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: LICENSE
## Documentation
[API Documentation](https://docs.rs/lordeckcodes)
## Usage
To use `lordeckcodes`, add this to your `Cargo.toml`:
```toml
[dependencies]
lordeckcodes = "1"
```
## Serde support
Serde support is optional and disabled by default. To enable use the feature `serde`.
```toml
[dependencies]
lordeckcodes = { version = "1", features = ["serde"] }
```
## Examples
Obtain a deck from the provided code:
```rust
use lordeckcodes::encoder;
let deck = encoder::deck_from_code("CEBAEAIBAQTQMAIAAILSQLBNGUBACAIBFYDACAAHBEHR2IBLAEBACAIFAY");
assert!(deck.is_ok());
```
Generate a code from the provided deck:
```rust
use lordeckcodes::{encoder, CardCodeAndCount, Deck, LorError};
fn main() -> Result<(), LorError> {
let deck: Deck = [
("01SI015", 3),
("01SI044", 3),
("01SI048", 3),
("01SI054", 3),
("01FR003", 3),
("01FR012", 3),
("01FR020", 3),
("01FR024", 3),
("01FR033", 3),
("01FR036", 3),
("01FR039", 3),
("01FR052", 3),
("01SI005", 2),
("01FR004", 2),
]
.iter()
.collect();
let code = encoder::code_from_deck(&deck);
assert!(code.is_ok());
Ok(())
}
```