Aryadev Chavali
0267a6f567
modes:pair: adjust Ord impl for Pair
...
Instead of doing a deep-check where we compare their best member
before their worst member, we just compare by the best member.
This allows (Joker, 4S) to be equal to (4C, 4S).
2026-04-05 04:45:51 +01:00
Aryadev Chavali
a24d85572d
modes:single|pair: make fields of Single and Pair public
...
So strange that this isn't default for tuple-like constructors. I can
kinda get it for record-like constructors, but not for this. Better
safe than sorry I guess?
2026-04-05 04:45:51 +01:00
Aryadev Chavali
5ef0b7e58a
modes:pair: implement Eq and Ord for Pair
...
If we auto-derived Ord it would look at Pair::0 first, when it should
look at Pair::1. Hence the custom implementation.
2026-04-05 04:45:51 +01:00
Aryadev Chavali
599fb44edb
modes:pair: implement Display for Pair
2026-04-05 04:45:51 +01:00
Aryadev Chavali
da60b41b97
modes:*: doc strings
2026-04-05 04:45:51 +01:00
Aryadev Chavali
439b787040
modes:pair: add doc string for Pair::new
2026-04-05 04:45:51 +01:00
Aryadev Chavali
fea8f1716d
*: fix doc strings
2026-04-05 04:45:51 +01:00
Aryadev Chavali
e1db8af26c
modes:pair: Added pair type
...
Slightly more complex pattern since we've got two cards, but still
relatively trivial.
2026-04-05 04:45:51 +01:00
Aryadev Chavali
f5fa964e55
modes:mod: use matches! instead of assert!(match...)
...
Give it up for Clippy, MVP of this codebase.
2026-04-05 04:45:51 +01:00
Aryadev Chavali
71f644043a
modes:mod|single: fix issue with footstool not taking other by reference
2026-04-05 04:45:51 +01:00
Aryadev Chavali
e401819914
modes:mod: doc for test_non_reflexivity
2026-04-05 04:45:51 +01:00
Aryadev Chavali
e46ece2622
modes:singles: refactor tests using the generic non_reflexive test.
2026-04-05 04:45:51 +01:00
Aryadev Chavali
bcd38ecdc4
modes:mod: implemented a generic tester for non_reflexivity
...
Given two "Hands", we test that the footstool condition on those two
hands are non-reflexive.
2026-04-05 04:45:51 +01:00
Aryadev Chavali
9c5ee74639
modes:single: tests for footstooling and invalid singles
2026-04-05 04:45:51 +01:00
Aryadev Chavali
d2075cd000
modes:single: implement Hand for Singles
...
Really trivial implementation.
2026-04-05 04:45:51 +01:00
Aryadev Chavali
44d8e4eba0
modes:mod: Hand trait
...
Any hand from any round mode has a chance of footstooling another hand
from that same mode. This trait (Hand) allows us to implement these
semantics (as well as any other shared semantics) for each round mode.
2026-04-05 04:45:51 +01:00
Aryadev Chavali
ca07536b37
modes: new crate representing the API for different round types
...
Single is our first one - trivial really. Only thing we need to check
is that the single isn't made up of a joker.
2026-04-05 04:45:51 +01:00