Skip to content

Commit 6f75487

Browse files
committed
Merge branch 'main' into font-pieces-with-tabs
2 parents c93d78e + 9114941 commit 6f75487

File tree

1 file changed

+137
-65
lines changed

1 file changed

+137
-65
lines changed

src/search_tab.rs

Lines changed: 137 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,78 @@ impl TaticsThemes {
5454

5555
TaticsThemes::Master, TaticsThemes::MasterVsMaster, TaticsThemes::SuperGM
5656
];
57+
58+
pub fn get_tag_name(&self) -> &str {
59+
match self {
60+
TaticsThemes::All => "all",
61+
TaticsThemes::Opening => "opening",
62+
TaticsThemes::Middlegame => "middlegame",
63+
TaticsThemes::Endgame => "endgame",
64+
TaticsThemes::RookEndgame => "rookEndgame",
65+
TaticsThemes::BishopEndgame => "bishopEndgame",
66+
TaticsThemes::PawnEndgame => "pawnEndgame",
67+
TaticsThemes::KnightEndgame => "knightEndgame",
68+
TaticsThemes::QueenEndgame => "queenEndgame",
69+
TaticsThemes::QueenRookEndgame => "queenRookEndgame",
70+
71+
TaticsThemes::AdvancedPawn => "advancedPawn",
72+
TaticsThemes::AtackingF2F7 => "attackingF2F7",
73+
TaticsThemes::CapturingDefender => "capturingDefender",
74+
TaticsThemes::DiscoveredAttack => "discoveredAttack",
75+
TaticsThemes::DoubleCheck => "doubleCheck",
76+
TaticsThemes::ExposedKing => "exposedKing",
77+
TaticsThemes::Fork => "fork",
78+
TaticsThemes::HangingPiece => "hangingPiece",
79+
TaticsThemes::KingsideAttack => "kingsideAttack",
80+
TaticsThemes::Pin => "pin",
81+
TaticsThemes::QueensideAttack => "queensideAttack",
82+
TaticsThemes::Sacrifice => "sacrifice",
83+
TaticsThemes::Skewer => "skewer",
84+
TaticsThemes::TrappedPiece => "trappedPiece",
85+
86+
TaticsThemes::Attraction => "attraction",
87+
TaticsThemes::Clearance => "clearance",
88+
TaticsThemes::DefensiveMove => "defensiveMove",
89+
TaticsThemes::Deflection => "deflection",
90+
TaticsThemes::Interference => "interference",
91+
TaticsThemes::Intermezzo => "intermezzo",
92+
TaticsThemes::QuietMove => "quietMove",
93+
TaticsThemes::XRayAttack =>"xRayAttack",
94+
TaticsThemes::Zugzwang => "zugzwang",
95+
96+
TaticsThemes::Mate => "mate",
97+
TaticsThemes::MateIn1 => "mateIn1",
98+
TaticsThemes::MateIn2 => "mateIn2",
99+
TaticsThemes::MateIn3 => "mateIn3",
100+
TaticsThemes::MateIn4 => "mateIn4",
101+
TaticsThemes::MateIn5 => "mateIn5",
102+
TaticsThemes::AnastasiaMate => "anastasiaMate",
103+
TaticsThemes::ArabianMate => "arabianMate",
104+
TaticsThemes::BackRankMate => "backRankMate",
105+
TaticsThemes::BodenMate => "bodenMate",
106+
TaticsThemes::DoubleBishopMate => "doubleBishopMate",
107+
TaticsThemes::DovetailMate => "dovetailMate",
108+
TaticsThemes::HookMate => "hookMate",
109+
TaticsThemes::SmotheredMate => "smotheredMate",
110+
111+
TaticsThemes::Castling => "castling",
112+
TaticsThemes::EnPassant => "enPassant",
113+
TaticsThemes::Promotion => "promotion",
114+
TaticsThemes::UnderPromotion => "underPromotion",
115+
TaticsThemes::Equality => "equality",
116+
TaticsThemes::Advantage => "advantage",
117+
TaticsThemes::Crushing => "crushing",
118+
119+
TaticsThemes::OneMove => "oneMove",
120+
TaticsThemes::Short => "short",
121+
TaticsThemes::Long => "long",
122+
TaticsThemes::VeryLong => "veryLong",
123+
124+
TaticsThemes::Master => "master",
125+
TaticsThemes::MasterVsMaster => "masterVsMaster",
126+
TaticsThemes::SuperGM => "superGM",
127+
}
128+
}
57129
}
58130

59131
impl Default for TaticsThemes {
@@ -69,72 +141,72 @@ impl std::fmt::Display for TaticsThemes {
69141
"{}",
70142
match self {
71143
TaticsThemes::All => "all",
72-
TaticsThemes::Opening => "opening",
73-
TaticsThemes::Middlegame=> "middlegame",
74-
TaticsThemes::Endgame => "endgame",
75-
TaticsThemes::RookEndgame => "rookEndgame",
76-
TaticsThemes::BishopEndgame => "bishopEndgame",
77-
TaticsThemes::PawnEndgame => "pawnEndgame",
78-
TaticsThemes::KnightEndgame => "knightEndgame",
79-
TaticsThemes::QueenEndgame => "queenEndgame",
80-
TaticsThemes::QueenRookEndgame => "queenRookEndgame",
144+
TaticsThemes::Opening => "Opening",
145+
TaticsThemes::Middlegame=> "Middlegame",
146+
TaticsThemes::Endgame => "Endgame",
147+
TaticsThemes::RookEndgame => "Rook endgame",
148+
TaticsThemes::BishopEndgame => "Bishop endgame",
149+
TaticsThemes::PawnEndgame => "Pawn endgame",
150+
TaticsThemes::KnightEndgame => "Knight endgame",
151+
TaticsThemes::QueenEndgame => "Queen endgame",
152+
TaticsThemes::QueenRookEndgame => "Queen and rook endgame",
81153

82-
TaticsThemes::AdvancedPawn => "advancedPawn",
83-
TaticsThemes::AtackingF2F7 => "attackingF2F7",
84-
TaticsThemes::CapturingDefender => "capturingDefender",
85-
TaticsThemes::DiscoveredAttack => "discoveredAttack",
86-
TaticsThemes::DoubleCheck => "doubleCheck",
87-
TaticsThemes::ExposedKing => "exposedKing",
88-
TaticsThemes::Fork => "fork",
89-
TaticsThemes::HangingPiece => "hangingPiece",
90-
TaticsThemes::KingsideAttack => "kingsideAttack",
91-
TaticsThemes::Pin => "pin",
92-
TaticsThemes::QueensideAttack => "queensideAttack",
93-
TaticsThemes::Sacrifice => "sacrifice",
94-
TaticsThemes::Skewer => "skewer",
95-
TaticsThemes::TrappedPiece => "trappedPiece",
96-
97-
TaticsThemes::Attraction => "attraction",
98-
TaticsThemes::Clearance => "clearance",
99-
TaticsThemes::DefensiveMove => "defensiveMove",
100-
TaticsThemes::Deflection => "deflection",
101-
TaticsThemes::Interference => "interference",
102-
TaticsThemes::Intermezzo => "intermezzo",
103-
TaticsThemes::QuietMove => "quietMove",
104-
TaticsThemes::XRayAttack => "xRayAttack",
105-
TaticsThemes::Zugzwang => "zugzwang",
154+
TaticsThemes::AdvancedPawn => "Advanced pawn",
155+
TaticsThemes::AtackingF2F7 => "Attacking f2/f7",
156+
TaticsThemes::CapturingDefender => "Capturing defender",
157+
TaticsThemes::DiscoveredAttack => "Discovered attack",
158+
TaticsThemes::DoubleCheck => "Double check",
159+
TaticsThemes::ExposedKing => "Exposed king",
160+
TaticsThemes::Fork => "Fork",
161+
TaticsThemes::HangingPiece => "Hanging piece",
162+
TaticsThemes::KingsideAttack => "Kingside attack",
163+
TaticsThemes::Pin => "Pin",
164+
TaticsThemes::QueensideAttack => "Queenside attack",
165+
TaticsThemes::Sacrifice => "Sacrifice",
166+
TaticsThemes::Skewer => "Skewer",
167+
TaticsThemes::TrappedPiece => "Trapped piece",
168+
169+
TaticsThemes::Attraction => "Attraction",
170+
TaticsThemes::Clearance => "Clearance",
171+
TaticsThemes::DefensiveMove => "Defensive move",
172+
TaticsThemes::Deflection => "Deflection",
173+
TaticsThemes::Interference => "Interference",
174+
TaticsThemes::Intermezzo => "Intermezzo",
175+
TaticsThemes::QuietMove => "Quiet move",
176+
TaticsThemes::XRayAttack => "X-Ray attack",
177+
TaticsThemes::Zugzwang => "Zugzwang",
106178

107-
TaticsThemes::Mate => "mate",
108-
TaticsThemes::MateIn1 => "mateIn1",
109-
TaticsThemes::MateIn2 => "mateIn2",
110-
TaticsThemes::MateIn3 => "mateIn2",
111-
TaticsThemes::MateIn4 => "mateIn4",
112-
TaticsThemes::MateIn5 => "mateIn5",
113-
TaticsThemes::AnastasiaMate => "anastasiaMate",
114-
TaticsThemes::ArabianMate => "arabianMate",
115-
TaticsThemes::BackRankMate => "backRankMate",
116-
TaticsThemes::BodenMate => "bodenMate",
117-
TaticsThemes::DoubleBishopMate => "doubleBishopMate",
118-
TaticsThemes::DovetailMate => "dovetailMate",
119-
TaticsThemes::HookMate => "hookMate",
120-
TaticsThemes::SmotheredMate => "smotheredMate",
121-
122-
TaticsThemes::Castling => "castling",
123-
TaticsThemes::EnPassant => "enPassant",
124-
TaticsThemes::Promotion => "promotion",
125-
TaticsThemes::UnderPromotion => "underPromotion",
126-
TaticsThemes::Equality => "equality",
127-
TaticsThemes::Advantage => "advantage",
128-
TaticsThemes::Crushing => "crushing",
129-
130-
TaticsThemes::OneMove => "oneMove",
131-
TaticsThemes::Short => "short",
132-
TaticsThemes::Long => "long",
133-
TaticsThemes::VeryLong => "veryLong",
134-
135-
TaticsThemes::Master => "master",
136-
TaticsThemes::MasterVsMaster => "masterVsMaster",
137-
TaticsThemes::SuperGM => "superGM",
179+
TaticsThemes::Mate => "Mate",
180+
TaticsThemes::MateIn1 => "Mate in 1",
181+
TaticsThemes::MateIn2 => "Mate in 2",
182+
TaticsThemes::MateIn3 => "Mate in 3",
183+
TaticsThemes::MateIn4 => "Mate in 4",
184+
TaticsThemes::MateIn5 => "Mate in 5",
185+
TaticsThemes::AnastasiaMate => "Anastasia mate",
186+
TaticsThemes::ArabianMate => "Arabian mate",
187+
TaticsThemes::BackRankMate => "Back-rank mate",
188+
TaticsThemes::BodenMate => "Boden's mate",
189+
TaticsThemes::DoubleBishopMate => "Double bishop mate",
190+
TaticsThemes::DovetailMate => "Dovetail mate",
191+
TaticsThemes::HookMate => "Hook mate",
192+
TaticsThemes::SmotheredMate => "Smothered mate",
193+
194+
TaticsThemes::Castling => "Castling",
195+
TaticsThemes::EnPassant => "En passant",
196+
TaticsThemes::Promotion => "Promotion",
197+
TaticsThemes::UnderPromotion => "Under promotion",
198+
TaticsThemes::Equality => "Equality",
199+
TaticsThemes::Advantage => "Advantage",
200+
TaticsThemes::Crushing => "Crushing",
201+
202+
TaticsThemes::OneMove => "One move",
203+
TaticsThemes::Short => "Short",
204+
TaticsThemes::Long => "Long",
205+
TaticsThemes::VeryLong => "Very long",
206+
207+
TaticsThemes::Master => "From games of titled players",
208+
TaticsThemes::MasterVsMaster => "From games between titled players",
209+
TaticsThemes::SuperGM => "From games of super GMs",
138210

139211
}
140212
)
@@ -266,7 +338,7 @@ impl SearchTab {
266338
if let Ok(record) = result {
267339
if record.rating >= min_rating && record.rating <= max_rating &&
268340
(theme == TaticsThemes::All ||
269-
record.themes.to_lowercase().contains(&theme.to_string().to_lowercase())) {
341+
record.themes.contains(theme.get_tag_name())) {
270342
puzzles.push(record);
271343
}
272344
}

0 commit comments

Comments
 (0)