libosrs 0.1.3

An Oldschool Runescape API written in Rust
Documentation
# libosrs

An Oldschool Runescape API library written in Rust. Can serialize the output into JSON format.

## Examples

```rust
use libosrs;
use libosrs::gamemode::Gamemode;

#[tokio::main]
async fn main() {
    let name = "Soupshi";
    let mut gamemode: Gamemode = Gamemode::Auto;

    let client = libosrs::ClientOSRS::new();

    let soupshi = client.get_hiscore(name, gamemode).await.unwrap();

    println!("Overall: {:#?}", soupshi.skills.overall);
    println!("Agility level: {}", soupshi.skills.agility.level);
    println!("Agility xp: {}", soupshi.skills.agility.xp);
    println!("Vorkath rank: {}", soupshi.bosses.vorkath.rank);
    println!("Vorkath kills: {}", soupshi.bosses.vorkath.score);

    // Pass a Hiscore struct and return json
    println!("JSON output: {}", soupshi.to_json());

    // Try to retrieve a players current gamemode
    gamemode = client.get_player_gamemode(name).await;
    println!("{:#?}", gamemode);

    // Request hiscore from API and return json
    println!(
        "JSON output: {}",
        client.get_hiscore_json(name, gamemode).await
    );

    // Get Player struct and Player json
    println!("{:#?}", client.get_player(name, gamemode).await);
    println!(
        "JSON output: {}",
        client.get_player_json(name, gamemode).await
    );
}

```

## Game modes

```
Auto
Regular
Ironman
Hardcore
Ultimate
Deadman
Seasonal
Tournament
```

`Auto` will try to fetch a players current gamemode from `Regular`, `Ironman`, `Hardcore` and `Ultimate`, i.e. a player who used to be Ironman but converted to regular will output their regular game stats. Only works if they gained Xp or Boss scores after convertion.

## Struct names

See the [docs.rs](https://docs.rs/libosrs/0.1.1/libosrs/hiscore/index.html) page.

## Todo

- [ ] Blocking IO
- [x] Serialize to json without re-calling Runescape API
- [ ] Formatters
- [ ] Grand Exchange