78 -> std::expected<Rank, std::string>;
97struct std::formatter<
chess::board::Rank> final {
98 template <
typename ParseContext>
99 constexpr auto parse(ParseContext& ctx) ->
typename ParseContext::iterator
104 template <
typename FormatContext>
107 ->
typename FormatContext::iterator
109 return std::format_to(ctx.out(),
"{}", rank_to_char(rank));
134 if (color == Color::White)
143 if constexpr (Side == Color::White) {
145 return static_cast<Rank>(std::to_underlying(rank) + 1uz);
148 return static_cast<Rank>(std::to_underlying(rank) - 1uz);
155 if constexpr (Side == Color::White) {
157 return static_cast<Rank>(std::to_underlying(rank) - 1uz);
160 return static_cast<Rank>(std::to_underlying(rank) + 1uz);
165 -> std::expected<Rank, std::string>
178 return std::unexpected {
180 "Cannot parse Rank from character: {}",
188 constexpr std::string_view ranks {
"12345678" };
190 return ranks.at(std::to_underlying(rank));
constexpr auto prev_pawn_rank(Rank rank) noexcept -> Rank
std::uint_fast8_t BitboardIndex
auto rank_from_char(char character) -> std::expected< Rank, std::string >
constexpr auto back_rank_for(Color color) noexcept -> Rank
constexpr auto rank_to_char(Rank rank) -> char
constexpr auto next_pawn_rank(Rank rank) noexcept -> Rank
@ One
The first rank. This is the rank that white's king starts on.
@ Seven
The seventh rank. This is the rank that black's pawns start on.
@ Two
The second rank. This is the rank that white's pawns start on.
@ Eight
The back rank. This is the rank that black's king starts on.