// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Package schema defines the schema for Fuchsia's performance test output.
package schema

// Variant is a collection of benchmark runs with a specified configuration.
type Variant struct {
	FinishTime      int64           `json:"finish_time"`
	FBenchmarksData []BenchmarkData `json:"fbenchmarks_data"`
	VariantDesc     string          `json:"variant_desc"`
	BootArgs        []string        `json:"boot_args"`
}

// BenchmarkData is a single benchmark.
type BenchmarkData struct {
	Label   string   `json:"label"`
	Unit    string   `json:"unit"`
	Samples []Sample `json:"samples"`
}

// Sample is a samping of multiple values from a single benchmark.
type Sample struct {
	Label  string    `json:"label"`
	Values []float64 `json:"values"`
}
