aoc2020-0.1.0.0: Development environment for Advent of Code challenges
Copyright(c) Justin Le 2018
LicenseBSD3
Maintainerjustin@jle.im
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

AOC.Challenge

Description

Gather together all challenges and collect them into a single map.

Synopsis

Documentation

type ChallengeMap = Map Day (Map Part SomeSolution) Source #

A map of days to parts to solutions.

data ChallengeSpec Source #

A specification for a specific challenge. Should consist of a day and a lowercase character.

Constructors

CS 

Fields

data Part #

Constructors

Part1 
Part2 

Instances

Instances details
Bounded Part 
Instance details

Defined in Advent.Types

Enum Part 
Instance details

Defined in Advent.Types

Methods

succ :: Part -> Part #

pred :: Part -> Part #

toEnum :: Int -> Part #

fromEnum :: Part -> Int #

enumFrom :: Part -> [Part] #

enumFromThen :: Part -> Part -> [Part] #

enumFromTo :: Part -> Part -> [Part] #

enumFromThenTo :: Part -> Part -> Part -> [Part] #

Eq Part 
Instance details

Defined in Advent.Types

Methods

(==) :: Part -> Part -> Bool #

(/=) :: Part -> Part -> Bool #

Ord Part 
Instance details

Defined in Advent.Types

Methods

compare :: Part -> Part -> Ordering #

(<) :: Part -> Part -> Bool #

(<=) :: Part -> Part -> Bool #

(>) :: Part -> Part -> Bool #

(>=) :: Part -> Part -> Bool #

max :: Part -> Part -> Part #

min :: Part -> Part -> Part #

Read Part 
Instance details

Defined in Advent.Types

Show Part 
Instance details

Defined in Advent.Types

Methods

showsPrec :: Int -> Part -> ShowS #

show :: Part -> String #

showList :: [Part] -> ShowS #

Generic Part 
Instance details

Defined in Advent.Types

Associated Types

type Rep Part :: Type -> Type #

Methods

from :: Part -> Rep Part x #

to :: Rep Part x -> Part #

FromJSON Part 
Instance details

Defined in Advent.Types

Methods

parseJSON :: Value -> Parser Part

parseJSONList :: Value -> Parser [Part]

ToJSON Part 
Instance details

Defined in Advent.Types

Methods

toJSON :: Part -> Value

toEncoding :: Part -> Encoding

toJSONList :: [Part] -> Value

toEncodingList :: [Part] -> Encoding

FromJSONKey Part 
Instance details

Defined in Advent.Types

Methods

fromJSONKey :: FromJSONKeyFunction Part

fromJSONKeyList :: FromJSONKeyFunction [Part]

ToJSONKey Part 
Instance details

Defined in Advent.Types

Methods

toJSONKey :: ToJSONKeyFunction Part

toJSONKeyList :: ToJSONKeyFunction [Part]

ToHttpApiData Part 
Instance details

Defined in Advent.Types

type Rep Part 
Instance details

Defined in Advent.Types

type Rep Part = D1 ('MetaData "Part" "Advent.Types" "advent-of-code-api-0.2.8.1-3FkUEu0aXQhIZnbzejZ5HY" 'False) (C1 ('MetaCons "Part1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Part2" 'PrefixI 'False) (U1 :: Type -> Type))

challengeMap :: ChallengeMap Source #

A map of all challenges.

lookupSolution :: ChallengeSpec -> Map Day (Map Part a) -> Maybe a Source #

Lookup up a solution from a ChallengeMap

newtype Day #

Constructors

Day 

Fields

Instances

Instances details
Bounded Day 
Instance details

Defined in Advent.Types

Methods

minBound :: Day #

maxBound :: Day #

Enum Day 
Instance details

Defined in Advent.Types

Methods

succ :: Day -> Day #

pred :: Day -> Day #

toEnum :: Int -> Day #

fromEnum :: Day -> Int #

enumFrom :: Day -> [Day] #

enumFromThen :: Day -> Day -> [Day] #

enumFromTo :: Day -> Day -> [Day] #

enumFromThenTo :: Day -> Day -> Day -> [Day] #

Eq Day 
Instance details

Defined in Advent.Types

Methods

(==) :: Day -> Day -> Bool #

(/=) :: Day -> Day -> Bool #

Ord Day 
Instance details

Defined in Advent.Types

Methods

compare :: Day -> Day -> Ordering #

(<) :: Day -> Day -> Bool #

(<=) :: Day -> Day -> Bool #

(>) :: Day -> Day -> Bool #

(>=) :: Day -> Day -> Bool #

max :: Day -> Day -> Day #

min :: Day -> Day -> Day #

Show Day 
Instance details

Defined in Advent.Types

Methods

showsPrec :: Int -> Day -> ShowS #

show :: Day -> String #

showList :: [Day] -> ShowS #

Generic Day 
Instance details

Defined in Advent.Types

Associated Types

type Rep Day :: Type -> Type #

Methods

from :: Day -> Rep Day x #

to :: Rep Day x -> Day #

FromJSON Day 
Instance details

Defined in Advent.Types

Methods

parseJSON :: Value -> Parser Day

parseJSONList :: Value -> Parser [Day]

ToJSON Day 
Instance details

Defined in Advent.Types

Methods

toJSON :: Day -> Value

toEncoding :: Day -> Encoding

toJSONList :: [Day] -> Value

toEncodingList :: [Day] -> Encoding

FromJSONKey Day 
Instance details

Defined in Advent.Types

Methods

fromJSONKey :: FromJSONKeyFunction Day

fromJSONKeyList :: FromJSONKeyFunction [Day]

ToJSONKey Day 
Instance details

Defined in Advent.Types

Methods

toJSONKey :: ToJSONKeyFunction Day

toJSONKeyList :: ToJSONKeyFunction [Day]

ToHttpApiData Day 
Instance details

Defined in Advent.Types

type Rep Day 
Instance details

Defined in Advent.Types

type Rep Day = D1 ('MetaData "Day" "Advent.Types" "advent-of-code-api-0.2.8.1-3FkUEu0aXQhIZnbzejZ5HY" 'True) (C1 ('MetaCons "Day" 'PrefixI 'True) (S1 ('MetaSel ('Just "dayFinite") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Finite 25))))

solSpec :: Name -> ChallengeSpec Source #

Get a ChallengeSpec from a given reified solution (name).

solSpec 'day02a == CS { _csDay = 1, _csPart = a }

charPart :: Char -> Maybe Part Source #

Parse a Char into a Part