-
Notifications
You must be signed in to change notification settings - Fork 1
/
log_selector.go
39 lines (30 loc) · 957 Bytes
/
log_selector.go
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
32
33
34
35
36
37
38
39
package types
import (
"context"
"database/sql/driver"
"gorm.io/gorm"
"gorm.io/gorm/clause"
"gorm.io/gorm/schema"
)
// +kubebuilder:object:generate=true
type LogSelector struct {
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Type string `json:"type,omitempty" yaml:"type,omitempty" template:"true"`
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty" template:"true"`
}
type LogSelectors []LogSelector
func (t LogSelectors) Value() (driver.Value, error) {
return GenericStructValue(t, true)
}
func (t *LogSelectors) Scan(val any) error {
return GenericStructScan(&t, val)
}
func (t LogSelectors) GormDataType() string {
return "logSelectors"
}
func (t LogSelectors) GormDBDataType(db *gorm.DB, field *schema.Field) string {
return JSONGormDBDataType(db.Dialector.Name())
}
func (t LogSelectors) GormValue(ctx context.Context, db *gorm.DB) clause.Expr {
return GormValue(t)
}