-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreateReplicationSlotSourceProvider.go
More file actions
47 lines (38 loc) · 1.09 KB
/
createReplicationSlotSourceProvider.go
File metadata and controls
47 lines (38 loc) · 1.09 KB
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
package postgres
import (
"encoding/json"
"os"
)
type CreateReplicationSlotSourceProvider struct {
sources []CreateReplicationSlotSource
}
func (p *CreateReplicationSlotSourceProvider) Append(provider *CreateReplicationSlotSourceProvider) error {
p.sources = append(p.sources, provider.sources...)
return nil
}
func (p *CreateReplicationSlotSourceProvider) AppendSource(source CreateReplicationSlotSource) error {
p.sources = append(p.sources, source)
return nil
}
func (p *CreateReplicationSlotSourceProvider) Scan(buf []byte) error {
var source []CreateReplicationSlotSource
err := json.Unmarshal([]byte(buf), &source)
if err != nil {
return err
}
p.sources = append(p.sources, source...)
return nil
}
func (p *CreateReplicationSlotSourceProvider) ScanString(text string) error {
return p.Scan([]byte(text))
}
func (p *CreateReplicationSlotSourceProvider) ScanFile(filepath string) error {
buf, err := os.ReadFile(filepath)
if err != nil {
return err
}
return p.Scan(buf)
}
func (p *CreateReplicationSlotSourceProvider) Sources() []CreateReplicationSlotSource {
return p.sources
}