Struct advent_solutions::advent2017::day08::Instruction [] [src]

pub struct Instruction<'a> { /* fields omitted */ }

Each instruction consists of several parts: the register to modify, whether to increase or decrease that register's value, the amount by which to increase or decrease it, and a condition. If the condition fails, skip the instruction without modifying the register. The registers all start at 0. The instructions look like this:

b inc 5 if a > 1
a inc 1 if b < 5
c dec -10 if a >= 1
c inc -20 if c == 10

These instructions would be processed as follows:

After this process, the largest value in any register is 1.

You might also encounter <= (less than or equal to) or != (not equal to). However, the CPU doesn't have the bandwidth to tell you what all the registers are named, and leaves that to you to determine.

Methods

impl<'a> Instruction<'a>
[src]

[src]

Trait Implementations

impl<'a> Copy for Instruction<'a>
[src]

impl<'a> Clone for Instruction<'a>
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<'a> PartialEq for Instruction<'a>
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

[src]

This method tests for !=.

impl<'a> Eq for Instruction<'a>
[src]

impl<'a> Debug for Instruction<'a>
[src]

[src]

Formats the value using the given formatter. Read more

impl<'a> Hash for Instruction<'a>
[src]

[src]

Feeds this value into the given [Hasher]. Read more

1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more