github.com/frodejac/aoc-2022@v0.0.0-20221213081734-037c741b1c89/internal/aoc/solver.go (about)

     1  package aoc
     2  
     3  import (
     4  	"github.com/frodejac/aoc-2022/internal/aoc/day00"
     5  	"github.com/frodejac/aoc-2022/internal/aoc/day01"
     6  	"github.com/frodejac/aoc-2022/internal/aoc/day02"
     7  	"github.com/frodejac/aoc-2022/internal/aoc/day03"
     8  	"github.com/frodejac/aoc-2022/internal/aoc/day04"
     9  	"github.com/frodejac/aoc-2022/internal/aoc/day05"
    10  	"github.com/frodejac/aoc-2022/internal/aoc/day06"
    11  	"github.com/frodejac/aoc-2022/internal/aoc/day07"
    12  	"github.com/frodejac/aoc-2022/internal/aoc/day08"
    13  	"github.com/frodejac/aoc-2022/internal/aoc/day09"
    14  	"github.com/frodejac/aoc-2022/internal/aoc/day10"
    15  	"github.com/frodejac/aoc-2022/internal/aoc/day11"
    16  	"github.com/frodejac/aoc-2022/internal/aoc/day12"
    17  	"github.com/frodejac/aoc-2022/internal/aoc/day13"
    18  	"github.com/frodejac/aoc-2022/internal/aoc/day14"
    19  	"github.com/frodejac/aoc-2022/internal/aoc/day15"
    20  	"github.com/frodejac/aoc-2022/internal/aoc/day16"
    21  	"github.com/frodejac/aoc-2022/internal/aoc/day17"
    22  	"github.com/frodejac/aoc-2022/internal/aoc/day18"
    23  	"github.com/frodejac/aoc-2022/internal/aoc/day19"
    24  	"github.com/frodejac/aoc-2022/internal/aoc/day20"
    25  	"github.com/frodejac/aoc-2022/internal/aoc/day21"
    26  	"github.com/frodejac/aoc-2022/internal/aoc/day22"
    27  	"github.com/frodejac/aoc-2022/internal/aoc/day23"
    28  	"github.com/frodejac/aoc-2022/internal/aoc/day24"
    29  )
    30  
    31  type AocSolver interface {
    32  	SolvePart1() string
    33  	SolvePart2() string
    34  }
    35  
    36  type Day struct {
    37  	input []byte
    38  }
    39  
    40  func GetAocSolver(day int, input []byte) AocSolver {
    41  	switch day {
    42  	case 0:
    43  		return day00.Solver(input)
    44  	case 1:
    45  		return day01.Solver(input)
    46  	case 2:
    47  		return day02.Solver(input)
    48  	case 3:
    49  		return day03.Solver(input)
    50  	case 4:
    51  		return day04.Solver(input)
    52  	case 5:
    53  		return day05.Solver(input)
    54  	case 6:
    55  		return day06.Solver(input)
    56  	case 7:
    57  		return day07.Solver(input)
    58  	case 8:
    59  		return day08.Solver(input)
    60  	case 9:
    61  		return day09.Solver(input)
    62  	case 10:
    63  		return day10.Solver(input)
    64  	case 11:
    65  		return day11.Solver(input)
    66  	case 12:
    67  		return day12.Solver(input)
    68  	case 13:
    69  		return day13.Solver(input)
    70  	case 14:
    71  		return day14.Solver(input)
    72  	case 15:
    73  		return day15.Solver(input)
    74  	case 16:
    75  		return day16.Solver(input)
    76  	case 17:
    77  		return day17.Solver(input)
    78  	case 18:
    79  		return day18.Solver(input)
    80  	case 19:
    81  		return day19.Solver(input)
    82  	case 20:
    83  		return day20.Solver(input)
    84  	case 21:
    85  		return day21.Solver(input)
    86  	case 22:
    87  		return day22.Solver(input)
    88  	case 23:
    89  		return day23.Solver(input)
    90  	case 24:
    91  		return day24.Solver(input)
    92  	default:
    93  		panic("Day not implemented")
    94  	}
    95  }