Struct Set

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

A struct representing a set of codes.

Implementations§

Source§

impl Set

Source

pub fn new_from_code(code: Code) -> Self

Create a new code set, containing only the provided code. This is a free operation.

Source

pub fn insert(&mut self, code: Code)

Insert the given code into this code set.

Source

pub fn intersected_with(self, code_set: Set) -> Set

Get a new code set, that contains only the elements contained in both this set, as well as the provided set.

Source

pub fn union_with(self, code_set: Set) -> Set

Get a new code set that contains all elements contained in either this set, or the provided set.

Source

pub fn empty() -> Set

Return an empty set.

§Example
use turing_machine_ai::code::Set;

let empty_set = Set::empty();
assert_eq!(empty_set.size(), 0);
Source

pub fn all() -> Set

Return a set containing all codes.

§Example
use turing_machine_ai::code::Set;

let complete_set = Set::all();
assert_eq!(complete_set.size(), 125);
Source

pub fn size(self) -> u32

Get the size of this code set.

§Example
use turing_machine_ai::code::Set;
assert_eq!(Set::all().size(), 125);
assert_eq!(Set::empty().size(), 0);
Source

pub fn from_closure(checker: fn(Code) -> bool) -> Self

Construct a new code set based on a closure that returns true for any code that must be in the set.

Source

pub fn contains(self, code: Code) -> bool

Returns whether the given code is part of this set.

use turing_machine_ai::code::{Set, Code};
let code_1 = Code::from_digits(1, 2, 3)?;
let code_2 = Code::from_digits(3, 3, 5)?;
let set = Set::new_from_code(code_1);
assert!(set.contains(code_1));
assert!(!set.contains(code_2));
Source

pub fn into_iter(self) -> impl Iterator<Item = Code>

Create an iterator that goes through every code in this set.

Trait Implementations§

Source§

impl Clone for Set

Source§

fn clone(&self) -> Set

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 Set

Source§

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

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

impl Default for Set

Source§

fn default() -> Set

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

impl FromIterator<Code> for Set

Source§

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

Create a new code set containing all codes in the iterator.

Source§

impl FromIterator<Set> for Set

Source§

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

Creates a value from an iterator. Read more
Source§

impl Hash for Set

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 Set

Source§

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

Source§

impl Eq for Set

Source§

impl StructuralPartialEq for Set

Auto Trait Implementations§

§

impl Freeze for Set

§

impl RefUnwindSafe for Set

§

impl Send for Set

§

impl Sync for Set

§

impl Unpin for Set

§

impl UnwindSafe for Set

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.