rustfmt
This commit is contained in:
parent
d56b9d4952
commit
32f6e72dec
1 changed files with 22 additions and 13 deletions
33
src/main.rs
33
src/main.rs
|
@ -1,7 +1,9 @@
|
||||||
use std::collections::HashMap;
|
use eyre::eyre;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use sqlx::SqlitePool;
|
use sqlx::SqlitePool;
|
||||||
use eyre::{eyre};
|
use std::collections::HashMap;
|
||||||
|
use tokio::fs;
|
||||||
|
use tokio::sync::mpsc;
|
||||||
|
|
||||||
#[derive(Deserialize, Debug, Serialize, Copy, Clone)]
|
#[derive(Deserialize, Debug, Serialize, Copy, Clone)]
|
||||||
#[serde(rename_all = "lowercase")]
|
#[serde(rename_all = "lowercase")]
|
||||||
|
@ -45,7 +47,9 @@ impl TryFrom<Monster> for ValidMonster {
|
||||||
Ok(ValidMonster {
|
Ok(ValidMonster {
|
||||||
id: value.id,
|
id: value.id,
|
||||||
name: value.name.clone(),
|
name: value.name.clone(),
|
||||||
health: value.health.ok_or(eyre!("Couldn't unwrap health for {}", value.name))?,
|
health: value
|
||||||
|
.health
|
||||||
|
.ok_or(eyre!("Couldn't unwrap health for {}", value.name))?,
|
||||||
attributes: value.attributes,
|
attributes: value.attributes,
|
||||||
attack_level: value.attack_level,
|
attack_level: value.attack_level,
|
||||||
strength_level: value.strength_level,
|
strength_level: value.strength_level,
|
||||||
|
@ -80,18 +84,16 @@ struct Monster {
|
||||||
defence_ranged: i32,
|
defence_ranged: i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
use tokio::fs;
|
|
||||||
use tokio::sync::mpsc;
|
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> eyre::Result<()> {
|
async fn main() -> eyre::Result<()> {
|
||||||
let pool = SqlitePool::connect("sqlite:monsters.db").await?;
|
let pool = SqlitePool::connect("sqlite:monsters.db").await?;
|
||||||
|
|
||||||
let f = fs::read_to_string("monsters-complete.json").await?;
|
let f = fs::read_to_string("monsters-complete.json").await?;
|
||||||
let a= serde_json::from_str::<HashMap<usize, Monster>>(&f)?;
|
let a = serde_json::from_str::<HashMap<usize, Monster>>(&f)?;
|
||||||
|
|
||||||
let validmonsters: Vec<ValidMonster> = a.into_iter()
|
let validmonsters: Vec<ValidMonster> = a
|
||||||
.filter_map(|(_, monster)| {monster.try_into().ok()})
|
.into_iter()
|
||||||
|
.filter_map(|(_, monster)| monster.try_into().ok())
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
println!("Found {} valid monsters", validmonsters.len());
|
println!("Found {} valid monsters", validmonsters.len());
|
||||||
|
@ -100,8 +102,15 @@ async fn main() -> eyre::Result<()> {
|
||||||
validmonsters.into_iter().for_each(|monster| {
|
validmonsters.into_iter().for_each(|monster| {
|
||||||
let sender = tx.clone();
|
let sender = tx.clone();
|
||||||
match sender.send(monster.clone()) {
|
match sender.send(monster.clone()) {
|
||||||
Ok(_) => {println!("Sent {} successfully", &monster.name)}
|
Ok(_) => {
|
||||||
Err(_) => {eprintln!("{}", eyre::eyre!("Couldn't send {} successfully", &monster.name))}
|
println!("Sent {} successfully", &monster.name)
|
||||||
|
}
|
||||||
|
Err(_) => {
|
||||||
|
eprintln!(
|
||||||
|
"{}",
|
||||||
|
eyre::eyre!("Couldn't send {} successfully", &monster.name)
|
||||||
|
)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -110,7 +119,7 @@ async fn main() -> eyre::Result<()> {
|
||||||
while let Some(monster) = rx.recv().await {
|
while let Some(monster) = rx.recv().await {
|
||||||
println!("Writing {}", &monster.name);
|
println!("Writing {}", &monster.name);
|
||||||
add_monster(&pool, &monster).await?;
|
add_monster(&pool, &monster).await?;
|
||||||
};
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue