blob: f98c4057aa45406a8359aa0fb44d8b3b6056ed47 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package datastore
import (
"github.com/authzed/spicedb/pkg/namespace"
iv1 "github.com/authzed/spicedb/pkg/proto/impl/v1"
)
// ComputeObjectTypeStats creates a list of object type stats from an input list of
// parsed object types.
func ComputeObjectTypeStats(objTypes []RevisionedNamespace) []ObjectTypeStat {
stats := make([]ObjectTypeStat, 0, len(objTypes))
for _, objType := range objTypes {
var relations, permissions uint32
for _, rel := range objType.Definition.Relation {
if namespace.GetRelationKind(rel) == iv1.RelationMetadata_PERMISSION {
permissions++
} else {
relations++
}
}
stats = append(stats, ObjectTypeStat{
NumRelations: relations,
NumPermissions: permissions,
})
}
return stats
}
|