pgnparse 0.1.15

Parse PGN to Rust struct ( headers as hash map, main line moves as san, uci, fen, epd records ) or to JSON. All lichess variants are supported. Custom starting position using FEN header is supported.
Documentation
extern crate env_logger;

use pgnparse::parser::*;

fn main(){
	env_logger::init();

	let mut book = Book::new().me("chesshyperbot");

	book.parse("test.pgn");

	let pos = book.positions.get("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -");

	println!("pos for epd = {:?}", pos);

	if let Some(pos) = pos {
		let m = pos.get_random_weighted_by_plays();

		println!("random weighted by plays = {:?} , plays = {}", m, m.unwrap().plays());

		let m = pos.get_random_weighted_by_perf();

		println!("random weighted by perf = {:?} , perf = {}", m, m.unwrap().perf());

		let m = pos.get_random_mixed(50);

		println!("random mixed = {:?}", m);
	}
}