mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
Summary: Some old versions of `goimports` don't import deps that are go modules. Importing manually them right now. Reviewed By: apbuteau Differential Revision: D16472613 fbshipit-source-id: 6cc237f133f3058c2e7bd4ec723500b725cde0a1
30 lines
706 B
Cheetah
30 lines
706 B
Cheetah
{{ define "predicate" }}
|
|
|
|
{{ template "header" "predicate" }}
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"fbc/ent/dialect/gremlin/graph/dsl"
|
|
"fbc/ent/dialect/sql"
|
|
)
|
|
|
|
{{ range $_, $n := $.Nodes -}}
|
|
// {{ $n.Name }} is the predicate function for {{ $n.Package }} builders.
|
|
type {{ $n.Name }} func(interface{})
|
|
|
|
// {{ $n.Name }}PerDialect construct a predicate for both gremlin traversal and sql selector.
|
|
func {{ $n.Name }}PerDialect(f1 func(*sql.Selector), f2 func(*dsl.Traversal)) {{ $n.Name }} {
|
|
return {{ $n.Name }}(func (v interface{}) {
|
|
switch v := v.(type) {
|
|
case *sql.Selector:
|
|
f1(v)
|
|
case *dsl.Traversal:
|
|
f2(v)
|
|
default:
|
|
panic(fmt.Sprintf("unknown type for predicate: %T", v))
|
|
}
|
|
})
|
|
}
|
|
{{ end }}
|
|
{{ end }} |