[board] Implement some TryInto traits for Square for u8, u16, u32, and u64
This commit is contained in:
parent
3a15fca10a
commit
f27d22d57f
1 changed files with 17 additions and 0 deletions
|
@ -237,6 +237,23 @@ impl FromStr for Square {
|
|||
}
|
||||
}
|
||||
|
||||
macro_rules! try_from_integer {
|
||||
($int_type:ident) => {
|
||||
impl TryFrom<$int_type> for Square {
|
||||
type Error = SquareOutOfBoundsError;
|
||||
|
||||
fn try_from(value: $int_type) -> Result<Self, Self::Error> {
|
||||
Square::try_index(value as usize).ok_or(SquareOutOfBoundsError)
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
try_from_integer!(u8);
|
||||
try_from_integer!(u16);
|
||||
try_from_integer!(u32);
|
||||
try_from_integer!(u64);
|
||||
|
||||
impl fmt::Display for Square {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
write!(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue