-
Notifications
You must be signed in to change notification settings - Fork 153
/
dialect.go
28 lines (23 loc) · 692 Bytes
/
dialect.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
package flux
import (
"github.com/influxdata/flux/codes"
"github.com/influxdata/flux/internal/errors"
)
// Dialect describes how to encode results.
type Dialect interface {
// Encoder creates an encoder for the results
Encoder() MultiResultEncoder
// DialectType report the type of the dialect
DialectType() DialectType
}
// DialectType is the name of a query result dialect.
type DialectType string
type CreateDialect func() Dialect
type DialectMappings map[DialectType]CreateDialect
func (m DialectMappings) Add(t DialectType, c CreateDialect) error {
if _, ok := m[t]; ok {
return errors.Newf(codes.Internal, "duplicate dialect mapping for %q", t)
}
m[t] = c
return nil
}