Files
ent/entc/gen/template/predicate.tmpl
Ariel Mashraki c6b178de20 manaully import deps
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
2019-07-24 17:39:03 -07:00

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 }}