|  | @@ -138,7 +138,8 @@ impl SimpleMove {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -pub fn generate_moves(game: &Game, side: Side, moves: &mut Vec<Move>) {
 | 
	
		
			
				|  |  | +pub fn generate_moves(game: &Game, side: Side) -> Vec<Move> {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      let mut moves: Vec<Move> = Vec::with_capacity(128);
 | 
	
		
			
				|  |  |      generate_pawn_pushes(game, side, &mut moves);
 | 
	
		
			
				|  |  |      generate_pawn_doublepushes(game, side, &mut moves);
 | 
	
	
		
			
				|  | @@ -151,6 +152,7 @@ pub fn generate_moves(game: &Game, side: Side, moves: &mut Vec<Move>) {
 | 
	
		
			
				|  |  |      generate_queen_moves(game, side, &mut moves, false);
 | 
	
		
			
				|  |  |      generate_king_moves(game, side, &mut moves, false);
 | 
	
		
			
				|  |  |      generate_castling_moves(game, side, &mut moves);
 | 
	
		
			
				|  |  | +    return moves;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -172,8 +174,7 @@ pub fn generate_possattacking_moves(game: &Game, side: Side) -> Vec<Move> {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  pub fn generate_legal_moves(game: &Game, side: Side) -> Vec<Move> {
 | 
	
		
			
				|  |  | -    let mut moves = Vec::new();
 | 
	
		
			
				|  |  | -    generate_moves(game, side, &mut moves);
 | 
	
		
			
				|  |  | +    let moves = generate_moves(game, side);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      moves.into_iter().filter(|mov| {
 | 
	
		
			
				|  |  |          let tryout = super::search::apply_move(game, *mov);
 |