mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
kindsys: Return Decl from Kinds (#59075)
* kindsys: Return Decl from Kinds * Add funcs to extract DeclForGen from kinds
This commit is contained in:
@@ -29,6 +29,29 @@ func ForGen(rt *thema.Runtime, decl *kindsys.SomeDecl) (*DeclForGen, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
// RawForGen produces a [DeclForGen] from a [kindsys.Raw] kind.
|
||||
//
|
||||
// Useful for grafana-external code generators, which depend on the Kind
|
||||
// representation in registries produced by grafana core (such as
|
||||
// ["github.com/grafana/grafana/pkg/registry/corekind".NewBase]).
|
||||
func RawForGen(k kindsys.Raw) *DeclForGen {
|
||||
return &DeclForGen{
|
||||
SomeDecl: k.Decl().Some(),
|
||||
}
|
||||
}
|
||||
|
||||
// StructuredForGen produces a [DeclForGen] from a [kindsys.Structured] kind.
|
||||
//
|
||||
// Useful for grafana-external code generators, which depend on the Kind
|
||||
// representation in registries produced by grafana core (such as
|
||||
// ["github.com/grafana/grafana/pkg/registry/corekind".NewBase]).
|
||||
func StructuredForGen(k kindsys.Structured) *DeclForGen {
|
||||
return &DeclForGen{
|
||||
SomeDecl: k.Decl().Some(),
|
||||
lin: k.Lineage(),
|
||||
}
|
||||
}
|
||||
|
||||
// DeclForGen wraps [kindsys.SomeDecl] to provide trivial caching of
|
||||
// the lineage declared by the kind (nil for raw kinds).
|
||||
type DeclForGen struct {
|
||||
|
||||
@@ -90,6 +90,7 @@ func (k *Kind) Maturity() kindsys.Maturity {
|
||||
}
|
||||
|
||||
// TODO standard generated docs
|
||||
func (k *Kind) Meta() kindsys.CoreStructuredMeta {
|
||||
return k.decl.Meta
|
||||
func (k *Kind) Decl() *kindsys.Decl[kindsys.CoreStructuredMeta] {
|
||||
d := k.decl
|
||||
return &d
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ func (k *Kind) Maturity() kindsys.Maturity {
|
||||
}
|
||||
|
||||
// TODO standard generated docs
|
||||
func (k *Kind) Meta() kindsys.RawMeta {
|
||||
return k.decl.Meta
|
||||
func (k *Kind) Decl() *kindsys.Decl[kindsys.RawMeta] {
|
||||
d := k.decl
|
||||
return &d
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user