Struct Day14

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

2018 Day 14: Searching for a pattern in an infinite recipe list.

This implementation is based on /u/askalski’s post “Breaking the 1 billion recipes per second barrier” and accompanying gist, adapted to safe Rust without intrinsics or explicit SIMD while achieving similar performance.

The key optimization is that all the elves converge on the same subset of recipes after the first 23 recipes, allowing them to be processed in bulk using SIMD.

Implementations§

Source§

impl Day14

Source

pub fn new(input: &str, _: InputType) -> Result<Self, InputError>

Source

pub fn part1(&self) -> &str

Source

pub fn part2(&self) -> usize

Trait Implementations§

Source§

impl Clone for Day14

Source§

fn clone(&self) -> Day14

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 Day14

Source§

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

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

impl Puzzle for Day14

Source§

const YEAR: Year

Year 2018

Source§

const DAY: Day

Day 14

Source§

impl PuzzleExamples<&'static str, usize> for Day14

Source§

const EXAMPLES: &'static [(&'static str, Option<&'static str>, Option<usize>)]

Auto Trait Implementations§

§

impl Freeze for Day14

§

impl RefUnwindSafe for Day14

§

impl Send for Day14

§

impl Sync for Day14

§

impl Unpin for Day14

§

impl UnwindSafe for Day14

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.