28 lines
452 B
Go
28 lines
452 B
Go
package spec
|
|
|
|
type Spec interface {
|
|
SpecName() Name
|
|
SpecRevision() int
|
|
SpecData() map[string]any
|
|
}
|
|
|
|
type RawSpec struct {
|
|
Name Name `json:"name"`
|
|
Revision int `json:"revision"`
|
|
Data map[string]any `json:"data"`
|
|
}
|
|
|
|
func (s *RawSpec) SpecName() Name {
|
|
return s.Name
|
|
}
|
|
|
|
func (s *RawSpec) SpecRevision() int {
|
|
return s.Revision
|
|
}
|
|
|
|
func (s *RawSpec) SpecData() map[string]any {
|
|
return s.Data
|
|
}
|
|
|
|
var _ Spec = &RawSpec{}
|