// 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

// TestCase represents an individual testcase for vom encoding and decoding.
type TestCase struct {
	Name       string // Name of the testcase
	Value      any    // Value to test
	Version    byte   // Version of encoding.
	Hex        string // Hex pattern representing golden vom encoding
	HexType    string // Portion of Hex representing the type message(s).
	HexValue   string // Portion of Hex representing the value message.
}
