File: options.go

package info (click to toggle)
golang-github-canonical-go-dqlite 3.0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 716 kB
  • sloc: sh: 380; makefile: 5
file content (48 lines) | stat: -rw-r--r-- 1,048 bytes parent folder | download
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
40
41
42
43
44
45
46
47
48
package shell

import "github.com/canonical/go-dqlite/v3/client"

// Option that can be used to tweak shell parameters.
type Option func(*options)

// WithDialFunc sets a custom dial function for connecting to dqlite endpoints.
func WithDialFunc(dial client.DialFunc) Option {
	return func(options *options) {
		options.Dial = dial
	}
}

// WithDriverName sets a custom name for the registered dqlite driver. The
// default is "dqlite".
func WithDriverName(name string) Option {
	return func(options *options) {
		options.DriverName = name
	}
}

// WithFormat specifies the output format.
func WithFormat(format string) Option {
	return func(options *options) {
		options.Format = format
	}
}

type options struct {
	Dial       client.DialFunc
	DriverName string
	Format     string
}

// Create a client options object with sane defaults.
func defaultOptions() *options {
	return &options{
		Dial:       client.DefaultDialFunc,
		DriverName: "dqlite",
		Format:     formatTabular,
	}
}

const (
	formatTabular = "tabular"
	formatJson    = "json"
)