Card64

Struct Card64 

Source
pub struct Card64(/* private fields */);
Expand description

Bitset representation of card collections.

A 64-bit bitset for efficient card set operations. Each bit represents a specific card, enabling fast membership tests and set operations.

§Memory Layout

[63, 48]:  xxxAKQJT 98765432  // Club
[47, 32]:  xxxAKQJT 98765432  // Diamond
[31, 16]:  xxxAKQJT 98765432  // Heart
[15, 0]:   xxxAKQJT 98765432  // Spade, x: unused

Implementations§

Source§

impl Card64

Source

pub const fn all<const SD: bool>() -> Self

Source

pub const fn is_empty(self) -> bool

Returns true if the set contains no cards.

Source

pub const fn set(&mut self, card: Card)

Adds the specified card to this set.

Source

pub const fn unset(&mut self, card: Card)

Removes the specified card from this set.

Source

pub fn contains(self, other: Self) -> bool

Returns true if this set contains all cards in other.

Source

pub const fn contains_card(self, card: Card) -> bool

Returns true if this set contains the specified card.

Source

pub const fn count(&self) -> CardCount

Returns the number of cards in this set.

Source

pub const fn count_by_rank(self, rank: Rank) -> CardCount

Returns the number of cards with the specified rank.

Source

pub const fn count_by_suit(self, suit: Suit) -> CardCount

Returns the number of cards with the specified suit.

Source

pub const fn from_ranks(rs: Rank16) -> Self

Creates a card set containing all specified ranks in all suits.

Source

pub const fn from_suit(suit: Suit) -> Self

Creates a card set containing all ranks in a specified suit.

Source

pub const fn ranks(self) -> Rank16

Returns the set of ranks present in this card set.

Source

pub const fn iter(self) -> CardIter

Returns an iterator over all cards in this set.

Trait Implementations§

Source§

impl BitAnd for Card64

Source§

type Output = Card64

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: Card64) -> Card64

Performs the & operation. Read more
Source§

impl BitAndAssign for Card64

Source§

fn bitand_assign(&mut self, rhs: Card64)

Performs the &= operation. Read more
Source§

impl BitOr for Card64

Source§

type Output = Card64

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: Card64) -> Card64

Performs the | operation. Read more
Source§

impl BitOrAssign<Card> for Card64

Source§

fn bitor_assign(&mut self, rhs: Card)

Performs the |= operation. Read more
Source§

impl BitOrAssign<HandN<3>> for Card64

Source§

fn bitor_assign(&mut self, rhs: Flop)

Performs the |= operation. Read more
Source§

impl BitOrAssign for Card64

Source§

fn bitor_assign(&mut self, rhs: Card64)

Performs the |= operation. Read more
Source§

impl Clone for Card64

Source§

fn clone(&self) -> Card64

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Card64

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Card64

Source§

fn default() -> Card64

Returns the “default value” for a type. Read more
Source§

impl From<&[Card]> for Card64

Source§

fn from(cards: &[Card]) -> Self

Converts to this type from the input type.
Source§

impl From<(Board, Street)> for Card64

Source§

fn from((board, street): (Board, Street)) -> Self

Converts to this type from the input type.
Source§

impl From<Board> for Card64

Source§

fn from(board: Board) -> Self

Converts to this type from the input type.
Source§

impl From<Card> for Card64

Source§

fn from(c: Card) -> Self

Converts to this type from the input type.
Source§

impl From<Card64> for Rank16

Source§

fn from(c: Card64) -> Self

Converts to this type from the input type.
Source§

impl From<Card64> for Suit4

Source§

fn from(c: Card64) -> Self

Converts to this type from the input type.
Source§

impl From<Card64> for u64

Source§

fn from(v: Card64) -> Self

Converts to this type from the input type.
Source§

impl<const N: usize> From<HandN<N>> for Card64

Source§

fn from(hand: HandN<N>) -> Self

Converts to this type from the input type.
Source§

impl From<u64> for Card64

Source§

fn from(i: u64) -> Self

Converts to this type from the input type.
Source§

impl FromIterator<Card> for Card64

Source§

fn from_iter<T: IntoIterator<Item = Card>>(iter: T) -> Self

Creates a value from an iterator. Read more
Source§

impl Hash for Card64

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Not for Card64

Source§

type Output = Card64

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl PartialEq for Card64

Source§

fn eq(&self, other: &Card64) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Card64

Source§

impl Eq for Card64

Source§

impl StructuralPartialEq for Card64

Auto Trait Implementations§

§

impl Freeze for Card64

§

impl RefUnwindSafe for Card64

§

impl Send for Card64

§

impl Sync for Card64

§

impl Unpin for Card64

§

impl UnwindSafe for Card64

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V