Dmitriy Matrenichev 7b80a747bc
feat: add protobuf encoding/decoding for Go structs
This commit adds the support for encoding/decoding Go structs with `protobuf:<n>` tags.

Closes #5940

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-08-10 16:04:08 +03:00

37 lines
1.1 KiB
Go

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
package extensions
// Manifest is the structure of the extension manifest.yaml file.
type Manifest struct {
Version string `yaml:"version"`
Metadata Metadata `yaml:"metadata"`
}
// Metadata describes base extension metadata.
//
//gotagsrewrite:gen
type Metadata struct {
Name string `yaml:"name" protobuf:"1"`
Version string `yaml:"version" protobuf:"2"`
Author string `yaml:"author" protobuf:"3"`
Description string `yaml:"description" protobuf:"4"`
Compatibility Compatibility `yaml:"compatibility" protobuf:"5"`
}
// Compatibility describes extension compatibility.
//
//gotagsrewrite:gen
type Compatibility struct {
Talos Constraint `yaml:"talos" protobuf:"1"`
}
// Constraint describes compatibility constraint.
//
//gotagsrewrite:gen
type Constraint struct {
Version string `yaml:"version" protobuf:"1"`
}