Documentation
¶
Overview ¶
Package puzzles declares common interface for puzzle solutions and functionality for register and run them.
Index ¶
Constants ¶
const (
// AOCSession env variable name.
AOCSession = "AOC_SESSION"
)
Variables ¶
var ( // ErrInvalidPuzzleName means that such puzzle not exist. ErrInvalidPuzzleName = errors.New("invalid puzzle name") // ErrInvalidYear means that such year not exist. ErrInvalidYear = errors.New("invalid year") // ErrNotImplemented signal that puzzle in not implemented yet. ErrNotImplemented = errors.New("not implemented") )
var ( // ErrYearMissed returns when year is empty. ErrYearMissed = errors.New("empty puzzle year") // ErrDayMissed returns when day is empty. ErrDayMissed = errors.New("empty puzzle day") // ErrUnknownYear returns when no puzzle find for year. ErrUnknownYear = errors.New("unknown puzzle year") // ErrUnknownDay returns when no puzzle find for day. ErrUnknownDay = errors.New("unknown puzzle day") )
Functions ¶
func DaysByYear ¶ added in v0.11.0
DaysByYear returns a sorted list of the days of the registered puzzle solvers for passed year.
func Register ¶
func Register(solver Solver)
Register makes a puzzle solver available by the provided name. If Register is called twice with the same name or if solver is nil, it panics.
func UnregisterAllSolvers ¶
UnregisterAllSolvers cleans up registered solvers. Use for testing only.
Types ¶
type Day ¶ added in v0.11.0
type Day int
Day presents here for purpose of documentation.
const ( Day01 Day // 1 Day02 // 2 Day03 // 3 Day04 // 4 Day05 // 5 Day06 // 6 Day07 // 7 Day08 // 8 Day09 // 9 Day10 // 10 Day11 // 11 Day12 // 12 Day13 // 13 Day14 // 14 Day15 // 15 Day16 // 16 Day17 // 17 Day18 // 18 Day19 // 19 Day20 // 20 Day21 // 21 Day22 // 22 Day23 // 23 Day24 // 24 Day25 // 25 )
type Result ¶
type Result struct { Year string Name string Part1 string Part2 string // contains filtered or unexported fields }
Result represents puzzle solution result.
type RunOption ¶ added in v0.14.0
type RunOption interface {
Apply(opts *runParams)
}
RunOption provides run options pattern.
func WithBenchmark ¶ added in v0.14.0
func WithBenchmark() RunOption
WithBenchmark add benchmark metric to run options.
func WithElapsed ¶ added in v0.14.0
func WithElapsed() RunOption
WithElapsed add elapsed metric to run options.
type Solver ¶
type Solver interface { Part1(input io.Reader) (string, error) Part2(input io.Reader) (string, error) Day() string Year() string }
Solver represents solutions for puzzles methods.
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
common
|
|
intcomputer
Package intcomputer provides functionality for Intcode programs calculation Intcode programs are given as a list of integers; these values are used as the initial state for the computer's memory.
|
Package intcomputer provides functionality for Intcode programs calculation Intcode programs are given as a list of integers; these values are used as the initial state for the computer's memory. |
utils
Package utils provide common used functionality to work with files, readers and so on.
|
Package utils provide common used functionality to work with files, readers and so on. |
Package input provides access to embedded puzzles input files.
|
Package input provides access to embedded puzzles input files. |
Package solutions registers solutions of puzzles.
|
Package solutions registers solutions of puzzles. |
2015/day01
Package day01 contains solution for https://adventofcode.com/2015/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2015/day/1 puzzle. |
2015/day02
Package day02 contains solution for https://adventofcode.com/2015/day/2 puzzle.
|
Package day02 contains solution for https://adventofcode.com/2015/day/2 puzzle. |
2015/day03
Package day03 contains solution for https://adventofcode.com/2015/day/3 puzzle.
|
Package day03 contains solution for https://adventofcode.com/2015/day/3 puzzle. |
2016/day01
Package day01 contains solution for https://adventofcode.com/2016/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2016/day/1 puzzle. |
2016/day02
Package day02 contains solution for https://adventofcode.com/2016/day/2 puzzle.
|
Package day02 contains solution for https://adventofcode.com/2016/day/2 puzzle. |
2017/day01
Package day01 contains solution for https://adventofcode.com/2017/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2017/day/1 puzzle. |
2017/day02
Package day02 contains solution for https://adventofcode.com/2017/day/2 puzzle.
|
Package day02 contains solution for https://adventofcode.com/2017/day/2 puzzle. |
2018/day01
Package day01 contains solution for https://adventofcode.com/2018/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2018/day/1 puzzle. |
2018/day02
Package day02 contains solution for https://adventofcode.com/2018/day/2 puzzle.
|
Package day02 contains solution for https://adventofcode.com/2018/day/2 puzzle. |
2019/day01
Package day01 contains solution for https://adventofcode.com/2019/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2019/day/1 puzzle. |
2019/day02
Package day02 contains solution for https://adventofcode.com/2019/day/2 puzzle.
|
Package day02 contains solution for https://adventofcode.com/2019/day/2 puzzle. |
2019/day03
Package day03 contains solution for https://adventofcode.com/2019/day/3 puzzle.
|
Package day03 contains solution for https://adventofcode.com/2019/day/3 puzzle. |
2019/day04
Package day04 contains solution for https://adventofcode.com/2019/day/4 puzzle.
|
Package day04 contains solution for https://adventofcode.com/2019/day/4 puzzle. |
2020/day01
Package day01 contains solution for https://adventofcode.com/2020/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2020/day/1 puzzle. |
2020/day02
Package day02 contains solution for https://adventofcode.com/2020/day/2 puzzle.
|
Package day02 contains solution for https://adventofcode.com/2020/day/2 puzzle. |
2021/day01
Package day01 contains solution for https://adventofcode.com/2021/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2021/day/1 puzzle. |
2021/day02
Package day02 contains solution for https://adventofcode.com/2021/day/2 puzzle.
|
Package day02 contains solution for https://adventofcode.com/2021/day/2 puzzle. |
2021/day03
Package day03 contains solution for https://adventofcode.com/2021/day/3 puzzle.
|
Package day03 contains solution for https://adventofcode.com/2021/day/3 puzzle. |
2021/day04
Package day04 contains solution for https://adventofcode.com/2021/day/4 puzzle.
|
Package day04 contains solution for https://adventofcode.com/2021/day/4 puzzle. |
2021/day05
Package day05 contains solution for https://adventofcode.com/2021/day/5 puzzle.
|
Package day05 contains solution for https://adventofcode.com/2021/day/5 puzzle. |
2021/day06
Package day06 contains solution for https://adventofcode.com/2021/day/6 puzzle.
|
Package day06 contains solution for https://adventofcode.com/2021/day/6 puzzle. |
2021/day07
Package day07 contains solution for https://adventofcode.com/2021/day/7 puzzle.
|
Package day07 contains solution for https://adventofcode.com/2021/day/7 puzzle. |
2022/day01
Package day01 contains solution for https://adventofcode.com/2022/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2022/day/1 puzzle. |
2023/day01
Package day01 contains solution for https://adventofcode.com/2023/day/1 puzzle.
|
Package day01 contains solution for https://adventofcode.com/2023/day/1 puzzle. |