27 lines
984 B
OCaml
27 lines
984 B
OCaml
|
|
(** The type of an Advent of Code puzzle which can be run by Tanenbaum. *)
|
||
|
|
module type T = sig
|
||
|
|
val year : int
|
||
|
|
(** The year that this puzzle is from. *)
|
||
|
|
|
||
|
|
val day : int
|
||
|
|
(** The day that this puzzle is from. *)
|
||
|
|
|
||
|
|
(** Contains specific to the first part of the puzzle. *)
|
||
|
|
module Part_1 : sig
|
||
|
|
val run : string -> (string, string) result
|
||
|
|
(** Runs the first part of the puzzle.
|
||
|
|
|
||
|
|
This should return [Error] if something goes wrong during execution -- for example, there
|
||
|
|
was a parsing error. If [Error] was returned, Tanenbaum will ignore the [--submit] flag. *)
|
||
|
|
end
|
||
|
|
|
||
|
|
(** Contains specific to the second part of the puzzle. *)
|
||
|
|
module Part_2 : sig
|
||
|
|
val run : string -> (string, string) result
|
||
|
|
(** Runs the second part of the puzzle.
|
||
|
|
|
||
|
|
This should return [Error] if something goes wrong during execution -- for example, there
|
||
|
|
was a parsing error. If [Error] was returned, Tanenbaum will ignore the [--submit] flag. *)
|
||
|
|
end
|
||
|
|
end
|