package main

type Input struct {
	Dir   string   `toml:"dir"`
	Names []string `toml:"names"`
}

type Output struct {
	Dir string `toml:"dir"`
}

type Pauta struct {
	Dir string `toml:"dir"`
}

type Eval struct {
	Problems []Problem `toml:"problemas"`
}

type Problem struct {
	Num     uint     `toml:"num"`
	Name    string   `toml:"name"`
	Inputs  string   `toml:"inputs"`
	Details []Detail `toml:"details"`
	MaxTime float32  `toml:"max_time"`
	AvgTime float32  `toml:"avg_time"`
}

type Detail struct {
	Size      uint    `toml:"size"`
	Score     float32 `toml:"score"`
	NumInputs uint    `toml:"num_inputs"`
}

type Others struct {
	NJobs   uint    `toml:"njobs"`
	Command Command `toml:"command"`
}

type Command struct {
	Activate   []string `toml:"activate"`
	Command    []string `toml:"command"`
	Deactivate []string `toml:"deactivate"`
}

type Config struct {
	Input  Input  `toml:"input"`
	Output Output `toml:"output"`
	Pauta  Pauta  `toml:"pauta"`
	Eval   Eval   `toml:"eval"`
	Others Others `toml:"others"`
}
