package performance

// Code generated by cdproto-gen. DO NOT EDIT.

import (
	

	
	
	
)

// Metric run-time execution metric.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Performance#type-Metric
type Metric struct {
	Name  string  `json:"name"`  // Metric name.
	Value float64 `json:"value"` // Metric value.
}

// EnableTimeDomain time domain to use for collecting and reporting duration
// metrics.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/Performance#method-enable
type EnableTimeDomain string

// String returns the EnableTimeDomain as string value.
func ( EnableTimeDomain) () string {
	return string()
}

// EnableTimeDomain values.
const (
	EnableTimeDomainTimeTicks   EnableTimeDomain = "timeTicks"
	EnableTimeDomainThreadTicks EnableTimeDomain = "threadTicks"
)

// MarshalEasyJSON satisfies easyjson.Marshaler.
func ( EnableTimeDomain) ( *jwriter.Writer) {
	.String(string())
}

// MarshalJSON satisfies json.Marshaler.
func ( EnableTimeDomain) () ([]byte, error) {
	return easyjson.Marshal()
}

// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
func ( *EnableTimeDomain) ( *jlexer.Lexer) {
	 := .String()
	switch EnableTimeDomain() {
	case EnableTimeDomainTimeTicks:
		* = EnableTimeDomainTimeTicks
	case EnableTimeDomainThreadTicks:
		* = EnableTimeDomainThreadTicks

	default:
		.AddError(fmt.Errorf("unknown EnableTimeDomain value: %v", ))
	}
}

// UnmarshalJSON satisfies json.Unmarshaler.
func ( *EnableTimeDomain) ( []byte) error {
	return easyjson.Unmarshal(, )
}