// Copyright 2016 The Vanadium 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 vomtest

import (
	"v.io/v23/vom"
)

// vdlEntry represents a test entry, which contains a value and hex bytes.  The
// hex bytes represent the golden vom encoding of the value.  Encoding tests
// encode the value and expect to get the hex bytes, while decoding tests decode
// the hex bytes and expect to get the value.
type vdlEntry struct {
	Label      string      // Label describes the entry
	ValueLabel string      // ValueLabel describes the Value
	Value      any         // Value for vom test
	Version    vom.Version // Version of encoding
	HexType    string      // Hex bytes representing the type message(s).
	HexValue   string      // Hex bytes representing the value message.
}
