use chess::{Square, Rank, File};
pub trait IsBackRank {
fn is_back_rank(&self) -> bool;
}
impl IsBackRank for Square {
fn is_back_rank(&self) -> bool {
if self.get_rank() == Rank::Eighth || self.get_rank() == Rank::First {
return true;
}
false
}
}
pub trait From {
fn from_rf(rank: u8, file: u8) -> Square;
}
impl From for Square {
fn from_rf(rank: u8, file: u8) -> Square {
let rank = match rank {
0 => Rank::First,
1 => Rank::Second,
2 => Rank::Third,
3 => Rank::Fourth,
4 => Rank::Fifth,
5 => Rank::Sixth,
6 => Rank::Seventh,
7 => Rank::Eighth,
_ => panic!()
};
let file = match file {
0 => File::A,
1 => File::B,
2 => File::C,
3 => File::D,
4 => File::E,
5 => File::F,
6 => File::G,
7 => File::H,
_ => panic!()
};
Square::make_square(rank, file)
}
}