NumberPair

Struct NumberPair 

Source
pub struct NumberPair { /* private fields */ }
Expand description

A convenience struct to represent a pair of numbers.

This struct is primarily here to be used as a stand-in for the prize values for the Dilemma game.

The default constructor will create a NumberPair with random values between 0 and 9 (inclusive) for first and between 1 and 10 (inclusive) for second.

§Example

§Using NumberPair with the new constructor

use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::new(1, 2);

assert_eq!(number_pair.first(), 1);

assert_eq!(number_pair.second(), 2);

§Using NumberPair with the default constructor

use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::default();

assert!(number_pair.first() >= 1);

assert!(number_pair.first() < 10);

assert!(number_pair.second() >= 1);

assert!(number_pair.second() < 10);

Implementations§

Source§

impl NumberPair

Source

pub const fn new(first: u32, second: u32) -> Self

Creates a new NumberPair struct.

§Arguments
  • first - The first number in the pair.
  • second - The second number in the pair.
§Example
use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::new(1, 2);

assert_eq!(number_pair.first(), 1);

assert_eq!(number_pair.second(), 2);
§Returns

A new NumberPair struct with the given values.

Source

pub fn random(min_value: u32, max_value: u32) -> Self

Creates a new NumberPair struct with random values.

§Arguments
  • min_value - The minimum value for that can be assigned to a choice.
  • max_value - The maximum value for that can be assigned to a choice.
§Example
use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::random(1, 10);

assert!(number_pair.first() >= 1);

assert!(number_pair.first() <= 10);

assert!(number_pair.second() >= 1);

assert!(number_pair.second() <= 10);
§Panics

Panics if min_value is greater than max_value.

§Returns

A new NumberPair struct with random values between min_value and max_value for each of first and second.

Source

pub const fn first(&self) -> u32

Returns the value of first.

§Example
§Using NumberPair with the new constructor
use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::new(1, 2);

assert_eq!(number_pair.first(), 1);
§Using NumberPair with the default constructor
use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::default();

assert!(number_pair.first() >= 1);

assert!(number_pair.first() < 10);
§Returns

The value of first as a u32.

Source

pub const fn second(&self) -> u32

Returns the value of second.

§Example
§Using NumberPair with the new constructor
use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::new(1, 2);

assert_eq!(number_pair.second(), 2);
§Using NumberPair with the default constructor
use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::default();

assert!(number_pair.second() >= 1);

assert!(number_pair.second() < 10);
§Returns

The value of second as a u32.

Trait Implementations§

Source§

impl Clone for NumberPair

Source§

fn clone(&self) -> NumberPair

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 NumberPair

Source§

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

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

impl Default for NumberPair

Source§

fn default() -> Self

Creates a new NumberPair struct with default values.

§Example
use dilemma_tactix_lib::NumberPair;

let number_pair = NumberPair::default();

assert!(number_pair.first() >= 1);

assert!(number_pair.first() < 10);

assert!(number_pair.second() >= 1);

assert!(number_pair.second() < 10);
§Returns

A new NumberPair struct with random values between 1 and 10 for each of first and second.

Source§

impl Display for NumberPair

Implements the Display trait for NumberPair.

This allows a NumberPair to be formatted as a string using the {} format specifier. The resulting string will be in the format “(first, second)”.

§Arguments

  • f - A mutable reference to a Formatter. This is a context in which the formatting will be done.

§Returns

This function returns a fmt::Result. If the write operation was successful, the function returns Ok(()). If the write operation failed, the function returns Err with the underlying error.

Source§

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

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

impl Hash for NumberPair

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 PartialEq for NumberPair

Source§

fn eq(&self, other: &NumberPair) -> 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 NumberPair

Source§

impl Eq for NumberPair

Source§

impl StructuralPartialEq for NumberPair

Auto Trait Implementations§

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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