From 381a0c42a89a155c59e92b269b6a5318d95fc618 Mon Sep 17 00:00:00 2001 From: MaurĂ­cio Antunes Date: Sat, 29 Oct 2022 22:38:17 -0300 Subject: feat: list exercises --- src/exercises/list.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/exercises/list.go (limited to 'src/exercises/list.go') diff --git a/src/exercises/list.go b/src/exercises/list.go new file mode 100644 index 0000000..3719527 --- /dev/null +++ b/src/exercises/list.go @@ -0,0 +1,45 @@ +package exercises + +import ( + "os" + + "github.com/pelletier/go-toml/v2" +) + +type State int + +const ( + Pending State = iota + 1 + Done +) + +func (s State) String() string { + return [...]string{"Pending", "Done"}[s-1] +} + +type Exercise struct { + Name string + Path string + Mode string + Hint string + State State +} + +type Info struct { + Exercises []Exercise +} + +func List() ([]Exercise, error) { + var info Info + + data, err := os.ReadFile("info.toml") + if err != nil { + return info.Exercises, err + } + + if err := toml.Unmarshal(data, &info); err != nil { + return info.Exercises, err + } + + return info.Exercises, nil +} -- cgit v1.2.3-70-g09d2