Answers

Struct Answers 

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

Stores correct and incorrect answers for a puzzle, along with hints such as “too large” and “too small”.

Implementations§

Source§

impl Answers

Source

pub fn new() -> Self

Initialize new Answers object.

Source

pub fn correct_answer_ref(&self) -> &Option<Answer>

Source

pub fn wrong_answers_ref(&self) -> &Vec<Answer>

Source

pub fn low_bounds_ref(&self) -> &Option<i128>

Source

pub fn high_bounds_ref(&self) -> &Option<i128>

Source

pub fn check(&self, answer: &Answer) -> Option<CheckResult>

Checks if this answer is correct or incorrect according to the information stored in this Answers database.

None is returned when the supplied answer does not match any known incorrect values, and the database does not have a known correct value. When a None value is returned, the caller should submit the answer as a solution to the puzzle using the Advent of Code client. The caller should then update this object with the response depending on if the client say it was correct or incorrect.

Source

pub fn add_wrong_answer(&mut self, answer: Answer)

Adds an answer to the list of known wrong answers.

Source

pub fn set_correct_answer(&mut self, answer: Answer)

Sets this answer as the known correct answer.

Source

pub fn set_low_bounds(&mut self, answer: Answer) -> i128

Sets a low boundary value in the cache.

If the cache has an existing low boundary then the highest value will be used as the new high boundary.

Any numeric answer passed to Answers::check will be returned as CheckResult::TooLow if it equals or is smaller than the low boundary.

Source

pub fn set_high_bounds(&mut self, answer: Answer) -> i128

Sets a high boundary value in the cache.

If the cache has an existing high boundary then the lowest value will be used as the new high boundary.

Any numeric answer passed to Answers::check will be returned as CheckResult::TooHigh if it equals or is larger than the high boundary.

Source

pub fn serialize_to_string(&self) -> String

Source

pub fn serialize<W: Write>(&self, writer: &mut BufWriter<W>)

Source

pub fn deserialize_from_str( text: &str, ) -> Result<Self, AnswerDeserializationError>

Source

pub fn deserialize<R: Read>( reader: &mut BufReader<R>, ) -> Result<Self, AnswerDeserializationError>

Trait Implementations§

Source§

impl Debug for Answers

Source§

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

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

impl Default for Answers

Source§

fn default() -> Self

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

impl PartialEq for Answers

Source§

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

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,